### Question:
Payment implements FxConvertible<Payment>, ImmutableBean, Serializable { public static Payment of(Currency currency, double amount, LocalDate date) { return new Payment(CurrencyAmount.of(currency, amount), date); } private  Payment(
      CurrencyAmount value,
      LocalDate date); static Payment of(Currency currency, double amount, LocalDate date); static Payment of(CurrencyAmount value, LocalDate date); static Payment ofPay(CurrencyAmount value, LocalDate date); static Payment ofReceive(CurrencyAmount value, LocalDate date); Currency getCurrency(); double getAmount(); Payment adjustDate(TemporalAdjuster adjuster); Payment negated(); @Override Payment convertedTo(Currency resultCurrency, FxRateProvider rateProvider); static Payment.Meta meta(); static Payment.Builder builder(); @Override Payment.Meta metaBean(); CurrencyAmount getValue(); LocalDate getDate(); Builder toBuilder(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }### Answer:
@Test public void coverage() { Payment test = Payment.of(GBP_P1000, DATE_2015_06_30); coverImmutableBean(test); Payment test2 = Payment.of(EUR_P1600, DATE_2015_06_29); coverBeanEquals(test, test2); }
@Test public void test_serialization() { Payment test = Payment.of(GBP_P1000, DATE_2015_06_30); assertSerialization(test); }