package de.persosim.simulator.tlv; import static org.junit.Assert.*; import org.junit.Test; import de.persosim.simulator.utils.HexString; public class TlvDataObjectContainerTest implements TlvConstants { /** * Positive test: get the first occurrence of a given tag from a * {@link TlvDataObjectContainer} containing more than one child with the * same tag. */ @Test public void testGetTlvDataObject_firstOccurence() { PrimitiveTlvDataObject child1 = new PrimitiveTlvDataObject(HexString.toByteArray("020101")); PrimitiveTlvDataObject child2 = new PrimitiveTlvDataObject(HexString.toByteArray("020102")); TlvDataObjectContainer container = new TlvDataObjectContainer(child1, child2); assertEquals(child1, container.getTlvDataObject(TAG_INTEGER)); } /** * Positive test: get the second occurrence of a given tag from a * {@link TlvDataObjectContainer} containing more than one child with the * same tag. */ @Test public void testGetTlvDataObject_secondOccurence() { PrimitiveTlvDataObject child1 = new PrimitiveTlvDataObject(HexString.toByteArray("020101")); PrimitiveTlvDataObject child2 = new PrimitiveTlvDataObject(HexString.toByteArray("020102")); TlvDataObjectContainer container = new TlvDataObjectContainer(child1, child2); assertEquals(child2, container.getTlvDataObject(new TlvTagIdentifier(TAG_INTEGER, 1))); } /** * Negative test: get the third occurrence of a given tag from a * {@link TlvDataObjectContainer} containing only two children with the * expected tag. */ @Test public void testGetTlvDataObject_missingThirdOccurence() { PrimitiveTlvDataObject child1 = new PrimitiveTlvDataObject(HexString.toByteArray("020101")); PrimitiveTlvDataObject child2 = new PrimitiveTlvDataObject(HexString.toByteArray("020102")); TlvDataObjectContainer container = new TlvDataObjectContainer(child1, child2); assertNull(container.getTlvDataObject(new TlvTagIdentifier(TAG_INTEGER, 2))); } /** * Positive test: get the second occurrence of a given tag from a * {@link TlvDataObjectContainer} containing more than one child with the * same tag. */ @Test public void testGetTlvDataObject_TlvPath_secondOccurence() { PrimitiveTlvDataObject child1 = new PrimitiveTlvDataObject(HexString.toByteArray("020101")); PrimitiveTlvDataObject child2 = new PrimitiveTlvDataObject(HexString.toByteArray("020102")); TlvDataObjectContainer container = new TlvDataObjectContainer(child1, child2); assertEquals(child2, container.getTlvDataObject(new TlvPath(new TlvTagIdentifier(TAG_INTEGER, 1)))); } }