public virtual void test_currencyExposure_FxResetNotionalExchange() { MultiCurrencyAmount expected = MultiCurrencyAmount.of(Currency.GBP, 0.0123d); SwapPaymentEventPricer <FxResetNotionalExchange> mockCalledFn = mock(typeof(SwapPaymentEventPricer)); when(mockCalledFn.currencyExposure(SwapDummyData.FX_RESET_NOTIONAL_EXCHANGE_REC_USD, MOCK_PROV)).thenReturn(expected); DispatchingSwapPaymentEventPricer test = new DispatchingSwapPaymentEventPricer(MOCK_NOTIONAL_EXG, mockCalledFn); assertEquals(test.currencyExposure(SwapDummyData.FX_RESET_NOTIONAL_EXCHANGE_REC_USD, MOCK_PROV), expected); }
//------------------------------------------------------------------------- public virtual MultiCurrencyAmount currencyExposure(SwapPaymentEvent paymentEvent, RatesProvider provider) { // dispatch by runtime type if (paymentEvent is NotionalExchange) { return(notionalExchangePricer.currencyExposure((NotionalExchange)paymentEvent, provider)); } else if (paymentEvent is FxResetNotionalExchange) { return(fxResetNotionalExchangePricer.currencyExposure((FxResetNotionalExchange)paymentEvent, provider)); } else { throw new System.ArgumentException("Unknown PaymentEvent type: " + paymentEvent.GetType().Name); } }