/** * Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.product.credit; import static com.opengamma.strata.collect.TestHelper.assertSerialization; import static com.opengamma.strata.collect.TestHelper.assertThrowsIllegalArg; import static com.opengamma.strata.collect.TestHelper.coverImmutableBean; import static org.testng.Assert.assertEquals; import org.testng.annotations.Test; import com.opengamma.strata.basics.currency.Currency; import com.opengamma.strata.basics.currency.CurrencyAmount; import com.opengamma.strata.basics.date.DayCounts; import com.opengamma.strata.basics.schedule.Frequency; import com.opengamma.strata.basics.schedule.RollConventions; import com.opengamma.strata.basics.schedule.StubConvention; /** * Test. */ @Test public class PeriodicPaymentsTest { public void test_of() { PeriodicPayments expected = PeriodicPayments.builder() .notional(CurrencyAmount.of(Currency.USD, 100_000_000d)) .coupon(0.00100) .dayCount(DayCounts.ACT_360) .paymentFrequency(Frequency.P3M) .stubConvention(StubConvention.SHORT_INITIAL) .rollConvention(RollConventions.DAY_20) .build(); assertEquals(sut(), expected); } public void test_builder_notEnoughData() { assertThrowsIllegalArg(() -> PeriodicPayments.builder().build()); } //------------------------------------------------------------------------- public void coverage() { coverImmutableBean(sut()); } public void test_serialization() { assertSerialization(sut()); } static PeriodicPayments sut() { return PeriodicPayments.of( CurrencyAmount.of(Currency.USD, 100_000_000d), 0.00100, DayCounts.ACT_360, Frequency.P3M, StubConvention.SHORT_INITIAL, RollConventions.DAY_20); } static PeriodicPayments sut2() { return PeriodicPayments.of( CurrencyAmount.of(Currency.USD, 200_000_000d), 0.00200, DayCounts.ACT_365F, Frequency.P6M, StubConvention.SHORT_FINAL, RollConventions.EOM); } }