package model.ca; import model.asn1.ASN1Object; import model.asn1.ObjectIdentifier; import model.asn1.PrintableString; import model.asn1.exceptions.ParseException; import model.x501.AttributeTypeAndValue; import model.x501.Name; import model.x501.RelativeDistinguishedName; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; public class TemplateTest { @Test void testConstructor() throws ParseException { Template template = new Template("123", true, (Name) null, 123); assertEquals("123", template.getName()); assertTrue(template.isEnabled()); assertNull(template.getSubject()); assertEquals(123, template.getValidity()); template = new Template("123", true, new Name(ASN1Object.TAG_SEQUENCE, null, new RelativeDistinguishedName[]{ new RelativeDistinguishedName(ASN1Object.TAG_SET, null, new AttributeTypeAndValue[]{ new AttributeTypeAndValue(ASN1Object.TAG_SEQUENCE, null, new ObjectIdentifier(ObjectIdentifier.TAG, null, ObjectIdentifier.OID_CN), new PrintableString(PrintableString.TAG, null, "Test"))}), new RelativeDistinguishedName(ASN1Object.TAG_SET, null, new AttributeTypeAndValue[]{ new AttributeTypeAndValue(ASN1Object.TAG_SEQUENCE, null, new ObjectIdentifier(ObjectIdentifier.TAG, null, ObjectIdentifier.OID_C), new PrintableString(PrintableString.TAG, null, "CA"))})}), 123); assertEquals("CN=Test,C=CA", template.getSubject().toString()); template = new Template("123", true, (String) null, 123); assertNull(template.getSubject()); } @Test void testSetSubject() throws ParseException { Template template = new Template("123", true, "ABC", 123); assertEquals("CN=ABC,C=CA", template.getSubject().toString()); assertThrows(ParseException.class, () -> new Template("123", true, "*", 123)); } }