diff options
Diffstat (limited to 'src/test/model/x501')
-rw-r--r-- | src/test/model/x501/AttributeTypeAndValueTest.java | 4 | ||||
-rw-r--r-- | src/test/model/x501/NameTest.java | 34 |
2 files changed, 38 insertions, 0 deletions
diff --git a/src/test/model/x501/AttributeTypeAndValueTest.java b/src/test/model/x501/AttributeTypeAndValueTest.java index 7739e55..b3948fe 100644 --- a/src/test/model/x501/AttributeTypeAndValueTest.java +++ b/src/test/model/x501/AttributeTypeAndValueTest.java @@ -86,5 +86,9 @@ public class AttributeTypeAndValueTest { assertEquals("C=IT", new AttributeTypeAndValue(new BytesReader(new Byte[]{ 0x30, 0x9, 0x6, 0x3, 0x55, 0x4, 0x6, 0x13, 0x2, 0x49, 0x54 }), false).toString()); + assertEquals("CN=IT\\,\\+\\=", new AttributeTypeAndValue(ASN1Object.TAG_SEQUENCE, null, + new ObjectIdentifier(TAG, null, OID_CN), + new PrintableString(PrintableString.TAG, null, "IT,+=")) + .toString()); } } diff --git a/src/test/model/x501/NameTest.java b/src/test/model/x501/NameTest.java index 22307f2..435ed71 100644 --- a/src/test/model/x501/NameTest.java +++ b/src/test/model/x501/NameTest.java @@ -164,4 +164,38 @@ public class NameTest { assertEquals("CN=yuuta,OU=users,C=CA", TestConstants.NAME_1.toString()); assertEquals("SN=Qwq,O=IT,C=CN", TestConstants.NAME_2.toString()); } + + private static void assertParseString(String dn) throws ParseException { + assertEquals(dn, Name.parseString(dn).toString()); + } + + @Test + void testParseStringSuccess() throws ParseException { + assertParseString("CN=a"); + assertParseString("CN=a+L=b"); + assertParseString("CN=a+L=b,OU=c"); + assertParseString("CN=a+L=b,OU=c+CN=d"); + assertParseString("CN=a+L=b,OU=c+CN=d,C=e"); + assertParseString("CN=Web,OU=Computers,O=IT"); + assertParseString("CN=Web,OU=Computers,O=IT\\,Meow\\+qwq,C=CN"); + } + + @Test + void testParseStringFail() { + assertThrows(ParseException.class, () -> Name.parseString("")); + assertThrows(ParseException.class, () -> Name.parseString("C")); + assertThrows(ParseException.class, () -> Name.parseString("CN=")); + assertThrows(ParseException.class, () -> Name.parseString("CN=a+")); + assertThrows(ParseException.class, () -> Name.parseString("CN=+")); + assertThrows(ParseException.class, () -> Name.parseString("CN=,")); + assertThrows(ParseException.class, () -> Name.parseString("CN=a,C=")); + assertThrows(ParseException.class, () -> Name.parseString("CN=a,=")); + assertThrows(ParseException.class, () -> Name.parseString("CN=a,C=,")); + assertThrows(ParseException.class, () -> Name.parseString("CN=a,C+")); + assertThrows(ParseException.class, () -> Name.parseString("CN=a,C=b,OOO")); + assertThrows(ParseException.class, () -> Name.parseString("CN=a,C=b,OOO=")); + assertThrows(ParseException.class, () -> Name.parseString("CN=a,C=b,OU=+")); + assertThrows(ParseException.class, () -> Name.parseString("CN=a,C=b,OU,")); + assertThrows(ParseException.class, () -> Name.parseString("CN=a,C=b=c")); + } } |