summaryrefslogtreecommitdiffstats
path: root/src/test/java/org/uic/barcode/test/AsnLevelDynamicContentTest.java
blob: 955066dc9a5e841d352afa261a552b92f420f560 (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
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.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);
	
		
		
	}

	@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);
		
	}
	
	
	
}