package com.opengamma.analytics.financial.forex.derivative;
import static org.testng.AssertJUnit.assertEquals;
import org.testng.annotations.Test;
import org.threeten.bp.ZonedDateTime;
import com.opengamma.analytics.util.time.TimeCalculator;
import com.opengamma.util.money.Currency;
import com.opengamma.util.test.TestGroup;
import com.opengamma.util.time.DateUtils;
/**
* Test.
*/
@Test(groups = TestGroup.UNIT)
public class ForexNonDeliverableOptionTest {
private static final Currency KRW = Currency.of("KRW");
private static final Currency USD = Currency.EUR;
private static final ZonedDateTime FIXING_DATE = DateUtils.getUTCDate(2012, 5, 2);
private static final ZonedDateTime PAYMENT_DATE = DateUtils.getUTCDate(2012, 5, 4);
private static final double NOMINAL_USD = 1000000; // 1m
private static final double STRIKE_USD_KRW = 1123.45;
private static final ZonedDateTime REFERENCE_DATE = DateUtils.getUTCDate(2011, 11, 10);
private static final double FIXING_TIME = TimeCalculator.getTimeBetween(REFERENCE_DATE, FIXING_DATE);
private static final double PAYMENT_TIME = TimeCalculator.getTimeBetween(REFERENCE_DATE, PAYMENT_DATE);
private static final ForexNonDeliverableForward NDF = new ForexNonDeliverableForward(KRW, USD, NOMINAL_USD, STRIKE_USD_KRW, FIXING_TIME, PAYMENT_TIME);
private static final boolean IS_CALL = true;
private static final boolean IS_LONG = true;
private static final ForexNonDeliverableOption NDO = new ForexNonDeliverableOption(NDF, IS_CALL, IS_LONG);
@Test(expectedExceptions = IllegalArgumentException.class)
public void testNullFX() {
new ForexNonDeliverableOption(null, IS_CALL, IS_LONG);
}
@Test
public void getter() {
assertEquals("Forex non-deliverable option - getter", NDF, NDO.getUnderlyingNDF());
assertEquals("Forex non-deliverable option - getter", IS_CALL, NDO.isCall());
assertEquals("Forex non-deliverable option - getter", IS_LONG, NDO.isLong());
}
}