### Question:
Money implements FxConvertible<Money>, Comparable<Money>, Serializable { public CurrencyAmount toCurrencyAmount() { return CurrencyAmount.of(this.getCurrency(), this.getAmount().doubleValue()); } private  Money(Currency currency, BigDecimal amount); static Money zero(Currency currency); static Money of(CurrencyAmount currencyAmount); static Money of(Currency currency, double amount); static Money of(Currency currency, BigDecimal amount); @FromString static Money parse(String amountStr); Currency getCurrency(); BigDecimal getAmount(); Money plus(Money amountToAdd); Money minus(Money amountToSubtract); Money multipliedBy(long valueToMultiplyBy); boolean isZero(); boolean isPositive(); boolean isNegative(); CurrencyAmount toCurrencyAmount(); Money convertedTo(Currency resultCurrency, BigDecimal fxRate); @Override Money convertedTo(Currency resultCurrency, FxRateProvider rateProvider); @Override int compareTo(Money other); @Override boolean equals(Object obj); @Override int hashCode(); @Override @ToString String toString();  }### Answer:
@Test public void testToCurrencyAmount() throws Exception { Money base = Money.of(GBP, 200.23); assertThat(base.toCurrencyAmount()).isEqualTo(CurrencyAmount.of(GBP, 200.23)); assertThat(base.toCurrencyAmount().toMoney()).isEqualTo(base); }