### Question:
NotionalExchange implements SwapPaymentEvent, ImmutableBean, Serializable { public static NotionalExchange of(CurrencyAmount paymentAmount, LocalDate paymentDate) { return new NotionalExchange(Payment.of(paymentAmount, paymentDate)); } private  NotionalExchange(
      Payment payment); static NotionalExchange of(CurrencyAmount paymentAmount, LocalDate paymentDate); static NotionalExchange of(Payment payment); @Override LocalDate getPaymentDate(); CurrencyAmount getPaymentAmount(); @Override Currency getCurrency(); @Override NotionalExchange adjustPaymentDate(TemporalAdjuster adjuster); static NotionalExchange.Meta meta(); @Override NotionalExchange.Meta metaBean(); Payment getPayment(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void test_of_null() { assertThatIllegalArgumentException() .isThrownBy(() -> NotionalExchange.of(GBP_1000, null)); assertThatIllegalArgumentException() .isThrownBy(() -> NotionalExchange.of(null, DATE_2014_06_30)); assertThatIllegalArgumentException() .isThrownBy(() -> NotionalExchange.of(null, null)); }
@Test public void coverage() { NotionalExchange test = NotionalExchange.of(GBP_1000, DATE_2014_06_30); coverImmutableBean(test); NotionalExchange test2 = NotionalExchange.of(CurrencyAmount.of(GBP, 200d), date(2014, 1, 15)); coverBeanEquals(test, test2); }
@Test public void test_serialization() { NotionalExchange test = NotionalExchange.of(GBP_1000, DATE_2014_06_30); assertSerialization(test); }