//------------------------------------------------------------------------- private void assertMCA(MultiCurrencyAmount actual, params CurrencyAmount[] expected) { assertEquals(actual.size(), expected.Length); assertEquals(actual.Amounts.size(), expected.Length); assertEquals(actual.Amounts, ImmutableSet.copyOf(expected)); ISet <Currency> currencies = new HashSet <Currency>(); foreach (CurrencyAmount expectedAmount in expected) { currencies.Add(expectedAmount.Currency); assertEquals(actual.contains(expectedAmount.Currency), true); assertEquals(actual.getAmount(expectedAmount.Currency), expectedAmount); assertEquals(actual.getAmountOrZero(expectedAmount.Currency), expectedAmount); } assertEquals(actual.Currencies, currencies); Currency nonExisting = Currency.of("FRZ"); assertEquals(actual.contains(nonExisting), false); assertThrowsIllegalArg(() => actual.getAmount(nonExisting)); assertEquals(actual.getAmountOrZero(nonExisting), CurrencyAmount.zero(nonExisting)); }