/** * Test a private no-arg constructor the primary purpose of increasing test coverage. * * @param clazz the class to test */ public static void coverPrivateConstructor(Class<?> clazz) { assertNotNull(clazz, "coverPrivateConstructor() called with null class"); AtomicBoolean isPrivate = new AtomicBoolean(false); ignoreThrows(() -> { Constructor<?> con = clazz.getDeclaredConstructor(); isPrivate.set(Modifier.isPrivate(con.getModifiers())); con.setAccessible(true); con.newInstance(); }); assertTrue(isPrivate.get(), "No-arg constructor must be private"); }
ignoreThrows(() -> { Method method = clazz.getDeclaredMethod("values"); method.setAccessible(true); }); for (E val : clazz.getEnumConstants()) { ignoreThrows(() -> { Method method = clazz.getDeclaredMethod("valueOf", String.class); method.setAccessible(true); }); ignoreThrows(() -> { Method method = clazz.getDeclaredMethod("valueOf", String.class); method.setAccessible(true); method.invoke(null, ""); }); ignoreThrows(() -> { Method method = clazz.getDeclaredMethod("valueOf", String.class); method.setAccessible(true);
/** * Asserts that a class is a well-defined utility class. * <p> * Must be final and with one zero-arg private constructor. * All public methods must be static. * * @param clazz the class to test */ public static void assertUtilityClass(Class<?> clazz) { assertNotNull(clazz, "assertUtilityClass() called with null class"); assertTrue(Modifier.isFinal(clazz.getModifiers()), "Utility class must be final"); assertEquals(clazz.getDeclaredConstructors().length, 1, "Utility class must have one constructor"); Constructor<?> con = clazz.getDeclaredConstructors()[0]; assertEquals(con.getParameterTypes().length, 0, "Utility class must have zero-arg constructor"); assertTrue(Modifier.isPrivate(con.getModifiers()), "Utility class must have private constructor"); for (Method method : clazz.getDeclaredMethods()) { if (Modifier.isPublic(method.getModifiers())) { assertTrue(Modifier.isStatic(method.getModifiers()), "Utility class public methods must be static"); } } // coverage ignoreThrows(() -> { con.setAccessible(true); con.newInstance(); }); }
ignoreThrows(() -> test.presentValue(SwapDummyData.FIXED_RATE_PAYMENT_PERIOD_REC_GBP, MOCK_PROV)); ignoreThrows(() -> test.presentValue(kapp, MOCK_PROV)); ignoreThrows(() -> test.presentValue(mockPaymentPeriod, MOCK_PROV)); ignoreThrows(() -> test.forecastValue(SwapDummyData.FIXED_RATE_PAYMENT_PERIOD_REC_GBP, MOCK_PROV)); ignoreThrows(() -> test.forecastValue(kapp, MOCK_PROV)); ignoreThrows(() -> test.forecastValue(mockPaymentPeriod, MOCK_PROV)); ignoreThrows(() -> test.pvbp(SwapDummyData.FIXED_RATE_PAYMENT_PERIOD_REC_GBP, MOCK_PROV)); ignoreThrows(() -> test.pvbp(kapp, MOCK_PROV)); ignoreThrows(() -> test.pvbp(mockPaymentPeriod, MOCK_PROV)); ignoreThrows(() -> test.presentValueSensitivity(SwapDummyData.FIXED_RATE_PAYMENT_PERIOD_REC_GBP, MOCK_PROV)); ignoreThrows(() -> test.presentValueSensitivity(kapp, MOCK_PROV)); ignoreThrows(() -> test.presentValueSensitivity(mockPaymentPeriod, MOCK_PROV)); ignoreThrows(() -> test.forecastValueSensitivity(SwapDummyData.FIXED_RATE_PAYMENT_PERIOD_REC_GBP, MOCK_PROV)); ignoreThrows(() -> test.forecastValueSensitivity(kapp, MOCK_PROV)); ignoreThrows(() -> test.forecastValueSensitivity(mockPaymentPeriod, MOCK_PROV)); ignoreThrows(() -> test.pvbpSensitivity(SwapDummyData.FIXED_RATE_PAYMENT_PERIOD_REC_GBP, MOCK_PROV)); ignoreThrows(() -> test.pvbpSensitivity(kapp, MOCK_PROV)); ignoreThrows(() -> test.pvbpSensitivity(mockPaymentPeriod, MOCK_PROV)); ignoreThrows(() -> test.accruedInterest(SwapDummyData.FIXED_RATE_PAYMENT_PERIOD_REC_GBP, MOCK_PROV)); ignoreThrows(() -> test.accruedInterest(kapp, MOCK_PROV)); ignoreThrows(() -> test.accruedInterest(mockPaymentPeriod, MOCK_PROV)); ignoreThrows(() -> test.explainPresentValue(SwapDummyData.FIXED_RATE_PAYMENT_PERIOD_REC_GBP, MOCK_PROV, explain));
ignoreThrows(() -> test.rateSensitivity(fixed, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(ibor, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(iborInt, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(iborAvg, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(onCpd, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(onBrlCpd, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(onAvg, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(onAvgDly, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(inflationMonthly, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(inflationInterp, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(inflationEndMonth, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(inflationEndInterp, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.rateSensitivity(mock, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV)); ignoreThrows(() -> test.explainRate(fixed, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(ibor, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(iborInt, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(iborAvg, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(onCpd, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(onBrlCpd, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(onAvg, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(onAvgDly, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(inflationMonthly, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(inflationInterp, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(inflationEndMonth, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(inflationEndInterp, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain)); ignoreThrows(() -> test.explainRate(mock, ACCRUAL_START_DATE, ACCRUAL_END_DATE, MOCK_PROV, explain));