summaryrefslogtreecommitdiffstats
path: root/src/net/gcdc/asn1/test/UperEncodeStringTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/gcdc/asn1/test/UperEncodeStringTest.java')
-rw-r--r--src/net/gcdc/asn1/test/UperEncodeStringTest.java33
1 files changed, 25 insertions, 8 deletions
diff --git a/src/net/gcdc/asn1/test/UperEncodeStringTest.java b/src/net/gcdc/asn1/test/UperEncodeStringTest.java
index 521075c..29e6c99 100644
--- a/src/net/gcdc/asn1/test/UperEncodeStringTest.java
+++ b/src/net/gcdc/asn1/test/UperEncodeStringTest.java
@@ -6,6 +6,7 @@ import java.util.logging.Level;
import net.gcdc.asn1.datatypes.Asn1Optional;
import net.gcdc.asn1.datatypes.CharacterRestriction;
+import net.gcdc.asn1.datatypes.FieldOrder;
import net.gcdc.asn1.datatypes.RestrictedString;
import net.gcdc.asn1.datatypes.Sequence;
@@ -31,9 +32,11 @@ public class UperEncodeStringTest {
@Sequence
public static class TestRecord {
+ @FieldOrder(order = 0)
@RestrictedString(CharacterRestriction.UTF8String)
@Asn1Optional() String valueUtf8;
+ @FieldOrder(order = 1)
@RestrictedString(CharacterRestriction.IA5String)
@Asn1Optional() String valueIA5;
@@ -48,29 +51,41 @@ public class UperEncodeStringTest {
@Test public void testEncode() throws IllegalArgumentException, IllegalAccessException {
- TestRecord record = new TestRecord("Müller", "Meier");
+
+ //Teststring: AêñüC
+ String original = new String("A" + "\u00ea" + "\u00f1" + "\u00fc" + "C");
+
+ TestRecord record = new TestRecord(original, "Meier");
byte[] encoded = UperEncoder.encode(record);
String hex = UperEncoder.hexStringFromBytes(encoded);
UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex));
- assertEquals("C1D370EF1B1B195C8166E5D39790",hex);
+ assertEquals("C21070EAB0EC70EF10C166E5D39790",hex);
+
}
@Test public void testEncodeUtf8() throws IllegalArgumentException, IllegalAccessException {
- TestRecord record = new TestRecord("你好吗", "Meier");
+
+ //"你好吗"
+ String original = new String("\u00e4" + "\u00bd" + "\u00a0" + "\u00e5" + "\u00a5" + "\u00bd" + "\u00e5" + "\u0090" + "\u0097");
+ TestRecord record = new TestRecord(original, "Meier");
byte[] encoded = UperEncoder.encode(record);
String hex = UperEncoder.hexStringFromBytes(encoded);
UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex));
- assertEquals("C2792F6839696F796425C166E5D39790",hex);
+ assertEquals("C4B0E930AF70A830E970A970AF70E970A430A5C166E5D39790",hex);
}
@Test public void testDecode() throws IllegalArgumentException, IllegalAccessException {
- TestRecord record = new TestRecord("Müller", "Meier");
+
+ //Teststring: AêñüC
+ String original = new String("A" + "\u00ea" + "\u00f1" + "\u00fc" + "C");
+
+ TestRecord record = new TestRecord(original, "Meier");
byte[] encoded = UperEncoder.encode(record);
String hex = UperEncoder.hexStringFromBytes(encoded);
UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex));
- assertEquals("C1D370EF1B1B195C8166E5D39790",hex);
+ assertEquals("C21070EAB0EC70EF10C166E5D39790",hex);
TestRecord result = UperEncoder.decode(encoded, TestRecord.class);
assertEquals(result.valueUtf8,record.valueUtf8);
assertEquals(result.valueIA5,record.valueIA5);
@@ -78,11 +93,13 @@ public class UperEncodeStringTest {
@Test public void testDecodeUtf8() throws IllegalArgumentException, IllegalAccessException {
- TestRecord record = new TestRecord("你好吗", "Meier");
+ //"你好吗"
+ String original = new String("\u00e4" + "\u00bd" + "\u00a0" + "\u00e5" + "\u00a5" + "\u00bd" + "\u00e5" + "\u0090" + "\u0097");
+ TestRecord record = new TestRecord(original, "Meier");
byte[] encoded = UperEncoder.encode(record);
String hex = UperEncoder.hexStringFromBytes(encoded);
UperEncoder.logger.log(Level.FINEST,String.format("data hex: %s", hex));
- assertEquals("C2792F6839696F796425C166E5D39790",hex);
+ assertEquals("C4B0E930AF70A830E970A970AF70E970A430A5C166E5D39790",hex);
TestRecord result = UperEncoder.decode(encoded, TestRecord.class);
assertEquals(result.valueUtf8,record.valueUtf8);
assertEquals(result.valueIA5,record.valueIA5);