View Javadoc

1   package com.atlassian.asap.service.core.impl;
2   
3   import org.junit.Rule;
4   import org.junit.Test;
5   import org.junit.rules.ExpectedException;
6   import org.mockito.junit.MockitoJUnit;
7   import org.mockito.junit.MockitoRule;
8   
9   import java.util.Optional;
10  
11  import static com.atlassian.asap.service.api.TokenValidator.Policy.REJECT;
12  import static com.atlassian.asap.service.api.ValidationResult.Decision.ABSTAIN;
13  import static com.atlassian.asap.service.api.ValidationResult.Decision.REJECTED;
14  import static java.util.Optional.empty;
15  import static org.junit.Assert.assertThat;
16  import static org.mockito.Matchers.anyString;
17  import static org.mockito.Mockito.never;
18  import static org.mockito.Mockito.verify;
19  import static org.mockito.Mockito.verifyZeroInteractions;
20  import static org.mockito.Mockito.when;
21  
22  public class TokenValidatorImplRejectPolicyTest extends AbstractTokenValidatorImplTest {
23      @Rule
24      public final MockitoRule mockitoRule = MockitoJUnit.rule();
25      @Rule
26      public final ExpectedException thrown = ExpectedException.none();
27  
28      @Test
29      public void noTokenReturnsAbstain() {
30          tokenValidator.policy(REJECT);
31  
32          assertThat(tokenValidator.validate(empty()), result(ABSTAIN));
33  
34          verifyZeroInteractions(jwtParser, jwtValidator);
35      }
36  
37      @Test
38      public void wrongHeaderPrefixReturnsAbstain() throws Exception {
39          tokenValidator.policy(REJECT);
40  
41          assertThat(tokenValidator.validate(Optional.of("Not a jwt")), result(ABSTAIN));
42  
43          verifyZeroInteractions(jwtParser, jwtValidator);
44      }
45  
46      @Test
47      public void invalidTokenReturnsAbstain() throws Exception {
48          tokenValidator.policy(REJECT);
49          when(jwtParser.determineUnverifiedIssuer(TOKEN)).thenReturn(empty());
50  
51          assertThat(tokenValidator.validate(HEADER), result(ABSTAIN));
52  
53          verify(jwtValidator, never()).readAndValidate(anyString());
54      }
55  
56      @Test
57      public void readableTokenReturnsRejected() throws Exception {
58          tokenValidator.policy(REJECT);
59          when(jwtParser.determineUnverifiedIssuer(TOKEN)).thenReturn(Optional.of(ISSUER));
60  
61          assertThat(tokenValidator.validate(HEADER), result(REJECTED, ISSUER));
62  
63          verify(jwtValidator, never()).readAndValidate(anyString());
64      }
65  }