package model.asn1; import model.asn1.exceptions.ParseException; import model.asn1.parsing.BytesReader; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertArrayEquals; import static org.junit.jupiter.api.Assertions.assertThrows; public class OctetStringTest { @Test void testConstructor() { assertArrayEquals(new Byte[]{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}, new OctetString(OctetString.TAG, null, new Byte[]{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}) .getBytes()); assertArrayEquals(new Byte[]{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}, new OctetString(OctetString.TAG, null, new Byte[]{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}) .encodeValueDER()); } @Test void testEncode() throws ParseException { assertArrayEquals(new Byte[]{0x04, 0x06, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05}, new OctetString(OctetString.TAG, null, new Byte[]{0x00, 0x01, 0x02, 0x03, 0x04, 0x05}) .encodeDER()); } @Test void testParse() throws ParseException { assertArrayEquals(new Byte[]{0x0A, 0x0B, 0x0C}, new OctetString(new BytesReader(new Byte[]{0x4, 3, 0x0A, 0x0B, 0x0C}), false) .getBytes()); } @Test void testParseFail() { // EOF assertThrows(ParseException.class, () -> new OctetString(new BytesReader(new Byte[]{0x4, 2, 0x0}), false)); } }