### Question:
ConversionOperators { public static MonetaryOperator exchange(CurrencyUnit currencyUnit){ return new ExchangeCurrencyOperator(Objects.requireNonNull(currencyUnit)); } private  ConversionOperators(); static MonetaryOperator exchange(CurrencyUnit currencyUnit); static Collector<MonetaryAmount, MonetarySummaryStatistics, MonetarySummaryStatistics> summarizingMonetary(
			CurrencyUnit currencyUnit, ExchangeRateProvider provider);  }### Answer:
@Test(expectedExceptions = NullPointerException.class) public void shouldReturnErrorWhenExchangeCurrencyIsNull() { ConversionOperators.exchange(null); }
@Test public void shouldExchangeCurrencyPositiveValue() { CurrencyUnit real = Monetary.getCurrency("BRL"); MonetaryAmount money = Money.parse("EUR 2.35"); MonetaryAmount result = ConversionOperators.exchange(real).apply(money); assertNotNull(result); assertEquals(result.getCurrency(), real); assertEquals(2.35d, result.getNumber().doubleValue()); }
@Test public void shouldExchangeCurrencyNegativeValue() { CurrencyUnit real = Monetary.getCurrency("BRL"); MonetaryAmount money = Money.parse("BHD -1.345"); MonetaryAmount result = ConversionOperators.exchange(real).apply(money); assertNotNull(result); assertEquals(result.getCurrency(), real); assertEquals(-1.345d, result.getNumber().doubleValue()); }