import org.junit.Test;
import club.wpia.gigi.GigiApiException;
-import club.wpia.gigi.dbObjects.Certificate;
-import club.wpia.gigi.dbObjects.Digest;
+import club.wpia.gigi.dbObjects.Certificate.AttachmentType;
import club.wpia.gigi.dbObjects.Certificate.CSRType;
import club.wpia.gigi.testUtils.ClientBusinessTest;
c.setLoginEnabled(false);
assertFalse(c.isLoginEnabled());
}
+
+ @Test
+ public void testAttachment() throws GeneralSecurityException, IOException, GigiApiException {
+ KeyPair kp = generateKeypair();
+ String key = generatePEMCSR(kp, "CN=testmail@example.com");
+ Certificate c = new Certificate(u, u, Certificate.buildDN("CN", "testmail@example.com"), Digest.SHA256, key, CSRType.CSR, getClientProfile());
+ assertNull(c.getAttachment(AttachmentType.CRT));
+ assertNull(c.getAttachment(AttachmentType.CSR));
+ c.addAttachment(AttachmentType.CSR, "a");
+ assertNull(c.getAttachment(AttachmentType.CRT));
+ assertEquals("a", c.getAttachment(AttachmentType.CSR));
+ try {
+ c.addAttachment(AttachmentType.CSR, "different CSR");
+ fail("double add attachment must fail");
+ } catch (GigiApiException e) {
+ // expected
+ }
+ assertNull(c.getAttachment(AttachmentType.CRT));
+ assertEquals("a", c.getAttachment(AttachmentType.CSR));
+ try {
+ c.addAttachment(AttachmentType.CRT, null);
+ fail("attachment must not be null");
+ } catch (GigiApiException e) {
+ // expected
+ }
+ assertNull(c.getAttachment(AttachmentType.CRT));
+ assertEquals("a", c.getAttachment(AttachmentType.CSR));
+ c.addAttachment(AttachmentType.CRT, "b");
+ assertEquals("a", c.getAttachment(AttachmentType.CSR));
+ assertEquals("b", c.getAttachment(AttachmentType.CRT));
+ try {
+ c.addAttachment(AttachmentType.CRT, "different CRT");
+ fail("double add attachment must fail");
+ } catch (GigiApiException e) {
+ // expected
+ }
+ assertEquals("a", c.getAttachment(AttachmentType.CSR));
+ assertEquals("b", c.getAttachment(AttachmentType.CRT));
+ }
}