1   package com.atlassian.security.auth.trustedapps;
2   
3   import com.atlassian.security.auth.trustedapps.request.TrustedRequest;
4   
5   import org.junit.Test;
6   
7   import static org.mockito.Mockito.mock;
8   import static org.mockito.Mockito.verify;
9   import static org.mockito.Mockito.when;
10  
11  /**
12   * Testing {@link TrustedApplicationUtils}
13   */
14  public class TestTrustedApplicationUtils
15  {
16      @Test
17      public void testAddRequestParameters()
18      {
19          final String id = "some id";
20          final String certificate = "some cert";
21          final String secretKey = "some secret key";
22          final String magic = "some magic number";
23  
24          EncryptedCertificate mockEncryptedCertificate = mock(EncryptedCertificate.class);
25          TrustedRequest trustedRequest = mock(TrustedRequest.class);
26  
27          when(mockEncryptedCertificate.getID()).thenReturn(id);
28          when(mockEncryptedCertificate.getCertificate()).thenReturn(certificate);
29          when(mockEncryptedCertificate.getSecretKey()).thenReturn(secretKey);
30          when(mockEncryptedCertificate.getMagicNumber()).thenReturn(magic);
31          when(mockEncryptedCertificate.getProtocolVersion()).thenReturn(Integer.valueOf(1));
32  
33          TrustedApplicationUtils.addRequestParameters(mockEncryptedCertificate, trustedRequest);
34  
35          verify(trustedRequest).addRequestParameter(TrustedApplicationUtils.Header.Request.ID, id);
36          verify(trustedRequest).addRequestParameter(TrustedApplicationUtils.Header.Request.CERTIFICATE, certificate);
37          verify(trustedRequest).addRequestParameter(TrustedApplicationUtils.Header.Request.SECRET_KEY, secretKey);
38          verify(trustedRequest).addRequestParameter(TrustedApplicationUtils.Header.Request.MAGIC, magic);
39          verify(trustedRequest).addRequestParameter(TrustedApplicationUtils.Header.Request.VERSION, TrustedApplicationUtils.Constant.VERSION.toString());
40      }
41      
42      @Test
43      public void addRequestParametersIncludesSignature()
44      {
45          EncryptedCertificate mockEncryptedCertificate = mock(EncryptedCertificate.class);
46          TrustedRequest trustedRequest = mock(TrustedRequest.class);
47          
48          when(mockEncryptedCertificate.getSignature()).thenReturn("base64-encoded-rsa-signature");
49          
50          TrustedApplicationUtils.addRequestParameters(mockEncryptedCertificate, trustedRequest);
51          
52          verify(trustedRequest).addRequestParameter(TrustedApplicationUtils.Header.Request.SIGNATURE, "base64-encoded-rsa-signature");
53      }
54  }