private void checkValues( MonetaryValue mv, int amount, int exponent) { if (mv.getAmount().intValue() != amount) { fail("amounts don't match."); } if (mv.getExponent().intValue() != exponent) { fail("exponents don't match."); } Iso4217CurrencyCode cc = mv.getCurrency(); if (!cc.getAlphabetic().equals(CURRENCY_CODE)) { fail("currency code wrong"); } }
public void performTest() throws Exception { MonetaryValue mv = new MonetaryValue(new Iso4217CurrencyCode(CURRENCY_CODE), TEST_AMOUNT, ZERO_EXPONENT); checkValues(mv, TEST_AMOUNT, ZERO_EXPONENT); mv = MonetaryValue.getInstance(mv); checkValues(mv, TEST_AMOUNT, ZERO_EXPONENT); ASN1InputStream aIn = new ASN1InputStream(mv.toASN1Object().getEncoded()); ASN1Sequence seq = (ASN1Sequence)aIn.readObject(); mv = MonetaryValue.getInstance(seq); checkValues(mv, TEST_AMOUNT, ZERO_EXPONENT); mv = MonetaryValue.getInstance(null); if (mv != null) { fail("null getInstance() failed."); } try { MonetaryValue.getInstance(new Object()); fail("getInstance() failed to detect bad object."); } catch (IllegalArgumentException e) { // expected } }
private String getMonetaryValueStringValue(ASN1Encodable asn1Encodable, int baseIndentLevel) { // @formatter:off /* MonetaryValue ::= SEQUENCE { currency Iso4217CurrencyCode, amount INTEGER, exponent INTEGER } Iso4217CurrencyCode ::= CHOICE { alphabetic PrintableString, numeric INTEGER(1..999) } */ // @formatter:on StringBuilder sb = new StringBuilder(); MonetaryValue monetaryValue = MonetaryValue.getInstance(asn1Encodable); BigInteger amount = monetaryValue.getAmount(); Iso4217CurrencyCode currency = monetaryValue.getCurrency(); BigInteger exponent = monetaryValue.getExponent(); if (currency != null) { String currencyString = currency.isAlphabetic() ? currency.getAlphabetic() : "" + currency.getNumeric(); sb.append(INDENT.toString(baseIndentLevel)); sb.append(MessageFormat.format(res.getString("QCEuLimitValue.Currency"), currencyString)); sb.append(NEWLINE); } if (amount != null) { sb.append(INDENT.toString(baseIndentLevel)); sb.append(MessageFormat.format(res.getString("QCEuLimitValue.Amount"), amount.toString())); sb.append(NEWLINE); } if (exponent != null) { sb.append(INDENT.toString(baseIndentLevel)); sb.append(MessageFormat.format(res.getString("QCEuLimitValue.Exponent"), exponent.toString())); sb.append(NEWLINE); } return sb.toString(); }