package de.persosim.simulator.perso; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import java.io.UnsupportedEncodingException; import org.junit.Test; import de.persosim.simulator.test.PersoSimTestCase; import de.persosim.simulator.tlv.ConstructedTlvDataObject; import de.persosim.simulator.tlv.TlvTag; import de.persosim.simulator.utils.HexString; //FIXME rename this test class public class DefaultPersoTestPkiTemplateTest extends PersoSimTestCase { /** * Positive test: test generation of TLV structure for data group containing ASN.1 data type CommunityID. */ @Test public void testGetCommunityIdDgTlv() { ConstructedTlvDataObject received = AbstractProfile.getCommunityIdDgTlv(new TlvTag((byte) 0x72), "02760503150000"); ConstructedTlvDataObject expected = new ConstructedTlvDataObject(HexString.toByteArray("7209040702760503150000")); assertArrayEquals(expected.toByteArray(), received.toByteArray()); } /** * Positive test: test generation of empty TLV structure for data group containing ASN.1 data type CommunityID. */ @Test public void testGetCommunityIdDgTlv_Empty() { ConstructedTlvDataObject received = AbstractProfile.getCommunityIdDgTlv(new TlvTag((byte) 0x72), ""); ConstructedTlvDataObject expected = new ConstructedTlvDataObject(HexString.toByteArray("72020400")); assertArrayEquals(expected.toByteArray(), received.toByteArray()); } /** * Positive test: test generation of TLV structure for data group containing ASN.1 data type Date. */ @Test public void testGetDateDgTlv() { ConstructedTlvDataObject received = AbstractProfile.getDateDgTlv(new TlvTag((byte) 0x63), "20201031"); ConstructedTlvDataObject expected = new ConstructedTlvDataObject(HexString.toByteArray("630A12083230323031303331")); assertArrayEquals(expected.toByteArray(), received.toByteArray()); } /** * Positive test: test generation of TLV structure for data group containing ASN.1 data type GeneralPlace. * @throws UnsupportedEncodingException */ @Test public void testGetGeneralPlaceDgTlv() throws UnsupportedEncodingException { ConstructedTlvDataObject received = AbstractProfile.getGeneralPlaceDgTlv(new TlvTag((byte) 0x71), "HEIDESTRASSE 17", "K\u00D6LN", null, "D", "51147"); ConstructedTlvDataObject expected = new ConstructedTlvDataObject(HexString.toByteArray("712C302AAA110C0F484549444553545241535345203137AB070C054BC3964C4EAD03130144AE0713053531313437")); assertArrayEquals(expected.toByteArray(), received.toByteArray()); } /** * Positive test: test generation of empty TLV structure for data group containing ASN.1 data type GeneralPlace. * @throws UnsupportedEncodingException */ @Test public void testGetGeneralPlaceDgTlv_Empty() throws UnsupportedEncodingException { ConstructedTlvDataObject received = AbstractProfile.getGeneralPlaceDgTlv(new TlvTag((byte) 0x71), null, null, null, null, null); ConstructedTlvDataObject expected = new ConstructedTlvDataObject(HexString.toByteArray("7125A2230C216B65696E65204861757074776F686E756E6720696E20446575747363686C616E64")); assertArrayEquals(expected.toByteArray(), received.toByteArray()); } /** * Positive test: test generation of TLV structure for data group containing ASN.1 data type GeneralPlace for a single location descriptor. * @throws UnsupportedEncodingException */ @Test public void testGetGeneralPlaceDgTlv_Simple() throws UnsupportedEncodingException { ConstructedTlvDataObject received = AbstractProfile.getGeneralPlaceDgTlv(new TlvTag((byte) 0x69), null, "BERLIN", null, null, null); ConstructedTlvDataObject expected = new ConstructedTlvDataObject(HexString.toByteArray("690AA1080C064245524C494E")); assertArrayEquals(expected.toByteArray(), received.toByteArray()); } /** * Positive test: test generation of TLV structure for data group containing ASN.1 data type ICAOString. */ @Test public void testGetIcaoStringDgTlv() { ConstructedTlvDataObject received = AbstractProfile.getIcaoStringDgTlv(new TlvTag((byte) 0x61), "ID"); ConstructedTlvDataObject expected = new ConstructedTlvDataObject(HexString.toByteArray("610413024944")); assertArrayEquals(expected.toByteArray(), received.toByteArray()); } /** * Positive test: test generation of TLV structure for data group containing ASN.1 data type IssuingState. */ @Test public void testGetIssuingStateDgTlv() { ConstructedTlvDataObject received = AbstractProfile.getIssuingStateDgTlv(new TlvTag((byte) 0x62), "D"); ConstructedTlvDataObject expected = new ConstructedTlvDataObject(HexString.toByteArray("6203130144")); assertArrayEquals(expected.toByteArray(), received.toByteArray()); } /** * Positive test: test generation of TLV structure for data group containing ASN.1 data type UTF8String. */ @Test public void testGetUtf8StringDgTlv() { ConstructedTlvDataObject received = AbstractProfile.getUtf8StringDgTlv(new TlvTag((byte) 0x64), "ERIKA"); ConstructedTlvDataObject expected = new ConstructedTlvDataObject(HexString.toByteArray("64070C054552494B41")); assertArrayEquals(expected.toByteArray(), received.toByteArray()); } /** * Positive test: test generation of MRZ line 1 of 3. */ @Test public void testGetMrzLine1Of3() { String received = AbstractProfile.getMrzLine1of3("ID", "D", "000000001"); String expected = "IDD<<0000000011<<<<<<<<<<<<<<<"; assertEquals(expected, received); } /** * Positive test: test generation of MRZ line 2 of 3. */ @Test public void testGetMrzLine2Of3() { String received = AbstractProfile.getMrzLine2of3("IDD<<0000000011<<<<<<<<<<<<<<<", "19640812", "F", "20201031", "D"); String expected = "6408125F2010315D<<<<<<<<<<<<<8"; assertEquals(expected, received); } }