diff options
Diffstat (limited to 'core/src/test/java/org/spongycastle/asn1/test/Iso4217CurrencyCodeUnitTest.java')
-rw-r--r-- | core/src/test/java/org/spongycastle/asn1/test/Iso4217CurrencyCodeUnitTest.java | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/core/src/test/java/org/spongycastle/asn1/test/Iso4217CurrencyCodeUnitTest.java b/core/src/test/java/org/spongycastle/asn1/test/Iso4217CurrencyCodeUnitTest.java new file mode 100644 index 00000000..1c197804 --- /dev/null +++ b/core/src/test/java/org/spongycastle/asn1/test/Iso4217CurrencyCodeUnitTest.java @@ -0,0 +1,142 @@ +package org.spongycastle.asn1.test; + +import org.spongycastle.asn1.ASN1Primitive; +import org.spongycastle.asn1.x509.qualified.Iso4217CurrencyCode; +import org.spongycastle.util.test.SimpleTest; + +public class Iso4217CurrencyCodeUnitTest + extends SimpleTest +{ + private static final String ALPHABETIC_CURRENCY_CODE = "AUD"; + private static final int NUMERIC_CURRENCY_CODE = 1; + + public String getName() + { + return "Iso4217CurrencyCode"; + } + + public void performTest() + throws Exception + { + // + // alphabetic + // + Iso4217CurrencyCode cc = new Iso4217CurrencyCode(ALPHABETIC_CURRENCY_CODE); + + checkNumeric(cc, ALPHABETIC_CURRENCY_CODE); + + cc = Iso4217CurrencyCode.getInstance(cc); + + checkNumeric(cc, ALPHABETIC_CURRENCY_CODE); + + ASN1Primitive obj = cc.toASN1Object(); + + cc = Iso4217CurrencyCode.getInstance(obj); + + checkNumeric(cc, ALPHABETIC_CURRENCY_CODE); + + // + // numeric + // + cc = new Iso4217CurrencyCode(NUMERIC_CURRENCY_CODE); + + checkNumeric(cc, NUMERIC_CURRENCY_CODE); + + cc = Iso4217CurrencyCode.getInstance(cc); + + checkNumeric(cc, NUMERIC_CURRENCY_CODE); + + obj = cc.toASN1Object(); + + cc = Iso4217CurrencyCode.getInstance(obj); + + checkNumeric(cc, NUMERIC_CURRENCY_CODE); + + cc = Iso4217CurrencyCode.getInstance(null); + + if (cc != null) + { + fail("null getInstance() failed."); + } + + try + { + Iso4217CurrencyCode.getInstance(new Object()); + + fail("getInstance() failed to detect bad object."); + } + catch (IllegalArgumentException e) + { + // expected + } + + try + { + new Iso4217CurrencyCode("ABCD"); + + fail("constructor failed to detect out of range currencycode."); + } + catch (IllegalArgumentException e) + { + // expected + } + + try + { + new Iso4217CurrencyCode(0); + + fail("constructor failed to detect out of range small numeric code."); + } + catch (IllegalArgumentException e) + { + // expected + } + + try + { + new Iso4217CurrencyCode(1000); + + fail("constructor failed to detect out of range large numeric code."); + } + catch (IllegalArgumentException e) + { + // expected + } + } + + private void checkNumeric( + Iso4217CurrencyCode cc, + String code) + { + if (!cc.isAlphabetic()) + { + fail("non-alphabetic code found when one expected."); + } + + if (!cc.getAlphabetic().equals(code)) + { + fail("string codes don't match."); + } + } + + private void checkNumeric( + Iso4217CurrencyCode cc, + int code) + { + if (cc.isAlphabetic()) + { + fail("alphabetic code found when one not expected."); + } + + if (cc.getNumeric() != code) + { + fail("numeric codes don't match."); + } + } + + public static void main( + String[] args) + { + runTest(new Iso4217CurrencyCodeUnitTest()); + } +} |