blob: 7e36489974007192e348ccc8e2fa73edd3d83561 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
package org.uic.barcode.test;
import org.junit.Before;
import org.junit.Test;
import org.uic.barcode.asn1.uper.UperEncoder;
import org.uic.barcode.dynamicContent.fdc1.ExtensionData;
import org.uic.barcode.dynamicContent.fdc1.TimeStamp;
import org.uic.barcode.dynamicContent.fdc1.UicDynamicContentDataFDC1;
import org.uic.barcode.logger.LoggerFactory;
import org.uic.barcode.dynamicContent.fdc1.GeoCoordinateType;
public class AsnLevelDynamicContentTest {
UicDynamicContentDataFDC1 asn = null;
@Before public void initialize() {
asn = new UicDynamicContentDataFDC1();
asn.setAppId("appID");
asn.setChallengeString("challenge string");
ExtensionData asnE1 = new ExtensionData();
asnE1.setExtensionData(UperEncoder.bytesFromHexString("82DA"));
asnE1.setExtensionId("challenge_extension_id1");
asn.setDynamicContentExtension(asnE1);
asn.getExtensions().add(asnE1);
ExtensionData asnE2 = new ExtensionData();
asnE2.setExtensionData(UperEncoder.bytesFromHexString("83DA"));
asnE2.setExtensionId("phone");
asn.getExtensions().add(asnE2);
ExtensionData asnE3 = new ExtensionData();
asnE3.setExtensionData(UperEncoder.bytesFromHexString("84DA"));
asnE3.setExtensionId("pass");
asn.getExtensions().add(asnE3);
asn.setGeoCoordinate(new GeoCoordinateType());
asn.getGeoCoordinate().setLongitude( 12345L);
asn.getGeoCoordinate().setLatitude( 56789L);
TimeStamp t = new TimeStamp();
t.setTime(100L);
t.setDay(20L);
asn.setTimeStamp(t);
}
@Before public void prepare() {
LoggerFactory.setActivateConsoleLog(true);
}
@Test public void testDynamicContentEncoding() {
byte[] encodedBytes = UperEncoder.encode(asn);
String encoding = UperEncoder.hexStringFromBytes(encodedBytes);
String expectedEncoding = "7C170F0E126204C00C800230390300DDD504017A20C6D0C2D8D8CADCCECA40E6E8E4D2DCCE2F8F461D9B32EECF96FE5F1D32EEE7A77EEBFA72310282DA05E1A37EECA0507B409C30F3E60509B42F8F461D9B32EECF96FE5F1D32EEE7A77EEBFA72310282DA";
assert(expectedEncoding.equals(encoding));
}
@Test public void testDynamicContentDecoding() {
String encoding = "7C170F0E126204C00C800230390300DDD504017A20C6D0C2D8D8CADCCECA40E6E8E4D2DCCE2F8F461D9B32EECF96FE5F1D32EEE7A77EEBFA72310282DA05E1A37EECA0507B409C30F3E60509B42F8F461D9B32EECF96FE5F1D32EEE7A77EEBFA72310282DA";
UicDynamicContentDataFDC1 asn = UperEncoder.decode(UperEncoder.bytesFromHexString(encoding), UicDynamicContentDataFDC1.class);
assert("appID".equals(asn.getAppId()));
assert("challenge string".equals(asn.getChallengeString()));
ExtensionData asnE1 = asn.getDynamicContentExtension();
assert(UperEncoder.hexStringFromBytes(asnE1.getExtensionData()).equals("82DA"));
assert(asnE1.getExtensionId().equals("challenge_extension_id1"));
assert(asn.getExtensions().size() == 4);
assert(UperEncoder.hexStringFromBytes(asn.getExtensions().get(0).getExtensionData()).equals("6368616C6C656E676520737472696E67"));
assert(asn.getExtensions().get(0).getExtensionId().equals("="));
assert(UperEncoder.hexStringFromBytes(asn.getExtensions().get(1).getExtensionData()).equals("82DA"));
assert(asn.getExtensions().get(1).getExtensionId().equals("challenge_extension_id1"));
assert(UperEncoder.hexStringFromBytes(asn.getExtensions().get(2).getExtensionData()).equals("83DA"));
assert(asn.getExtensions().get(2).getExtensionId().equals("phone"));
assert(UperEncoder.hexStringFromBytes(asn.getExtensions().get(3).getExtensionData()).equals("84DA"));
assert(asn.getExtensions().get(3).getExtensionId().equals("pass"));
assert(asn.getGeoCoordinate() != null);
assert(asn.getGeoCoordinate().getLongitude() == 12345L);
assert(asn.getGeoCoordinate().getLatitude() == 56789L);
assert(asn.getTimeStamp() != null);
assert(asn.getTimeStamp().getDay() == 20L);
assert(asn.getTimeStamp().getTime() == 100L);
}
}
|