1 package com.atlassian.security.auth.trustedapps;
2
3 import java.security.PublicKey;
4
5 import junit.framework.TestCase;
6
7 public class TestDefaultTrustedApplication extends TestCase
8 {
9 public void testProductionCtor() throws Exception
10 {
11 final PublicKey key = new MockKey();
12 final String id = "TestDefaultTrustedApplication:id";
13 final RequestConditions conditions = RequestConditions.builder().setCertificateTimeout(13256L).build();
14
15
16 TrustedApplication app = new DefaultTrustedApplication(key, id, conditions);
17 assertSame(key, app.getPublicKey());
18 assertEquals(id, app.getID());
19 }
20
21 public void testProductionCtorThrowsNullKey() throws Exception
22 {
23 final PublicKey key = null;
24 final String id = "TestDefaultTrustedApplication:id";
25 final RequestConditions conditions = RequestConditions.builder().setCertificateTimeout(13256L).build();
26 try
27 {
28 new DefaultTrustedApplication(key, id, conditions);
29 fail("Should have thrown IllegalArgEx");
30 }
31 catch (IllegalArgumentException yay)
32 {
33 }
34 }
35
36 public void testProductionCtorThrowsNullId() throws Exception
37 {
38 final PublicKey key = new MockKey();
39 final String id = null;
40 final RequestConditions conditions = RequestConditions.builder().setCertificateTimeout(13256L).build();
41 try
42 {
43 new DefaultTrustedApplication(key, id, conditions);
44 fail("Should have thrown IllegalArgEx");
45 }
46 catch (IllegalArgumentException yay)
47 {
48 }
49 }
50
51 public void testProductionCtorThrowsNullRequestConditions() throws Exception
52 {
53 final PublicKey key = new MockKey();
54 final String id = "TestDefaultTrustedApplication:id";
55 try
56 {
57 new DefaultTrustedApplication(key, id, null);
58 fail("Should have thrown IllegalArgEx");
59 }
60 catch (IllegalArgumentException yay)
61 {
62 }
63 }
64
65 public void testTimeout()
66 {
67 final ApplicationCertificate certificate =
68 new DefaultApplicationCertificate("foo", "joe", System.currentTimeMillis());
69
70 assertValidCertificate(certificate, 0L);
71 assertValidCertificate(certificate, 10000L);
72 assertValidCertificate(certificate, Long.MAX_VALUE);
73
74 assertExpiredCertificate(certificate, -1L);
75 assertExpiredCertificate(certificate, Long.MIN_VALUE);
76 }
77
78 private void assertValidCertificate(final ApplicationCertificate certificate, long timeout)
79 {
80 try
81 {
82 DefaultTrustedApplication.checkCertificateExpiry(certificate, timeout);
83 }
84 catch (InvalidCertificateException e)
85 {
86 fail("Certificate should be valid.");
87 }
88 }
89
90 private void assertExpiredCertificate(final ApplicationCertificate certificate, long timeout)
91 {
92 try
93 {
94 DefaultTrustedApplication.checkCertificateExpiry(certificate, timeout);
95 fail("Certificate should be expired.");
96 }
97 catch (InvalidCertificateException e)
98 {
99 }
100 }
101 }