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