Money { @Nonnull public Money withCurrency(@Nonnull final Currency currency) { return new Money(currency, amount); } Money(
            @Nonnull final Currency currency,
            @Nonnull final Integer amount); @SuppressWarnings({"ConstantConditions", "UnusedDeclaration"}) @Deprecated private  Money(); @Nonnull Currency getCurrency(); @Nonnull Integer getAmount(); @Nonnull Money withCurrency(@Nonnull final Currency currency); @Nonnull Money withAmount(@Nonnull final Integer amount); boolean canEqual(@Nonnull final Object obj); @Override boolean equals(@Nullable final Object obj); @Override int hashCode(); @Override String toString();  }
@Test public void testWithCurrency() { LOG.info("testWithCurrency"); Assert.assertTrue(y1.equals(x.withCurrency(y1).getCurrency())); Assert.assertNotNull(y.withCurrency(x1).getCurrency()); }