Fix packaging for shiro bundle
[aaa.git] / aaa-shiro / impl / src / test / java / org / opendaylight / aaa / shiro / filters / AuthenticationTokenUtilsTest.java
1 /*
2  * Copyright (c) 2016 - 2017 Brocade Communications Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.aaa.shiro.filters;
10
11 import static org.junit.Assert.*;
12
13 import org.apache.shiro.authc.AuthenticationToken;
14 import org.apache.shiro.authc.UsernamePasswordToken;
15 import org.junit.Test;
16
17 /**
18  * Tests authentication token output utilities.
19  */
20 public class AuthenticationTokenUtilsTest {
21
22     /**
23      * A sample non-UsernamePasswordToken implementation for testing.
24      */
25     private final class NotUsernamePasswordToken implements AuthenticationToken {
26
27         @Override
28         public Object getPrincipal() {
29             return null;
30         }
31
32         @Override
33         public Object getCredentials() {
34             return null;
35         }
36     }
37
38     @Test
39     public void testIsUsernamePasswordToken() throws Exception {
40         // null test
41         final AuthenticationToken nullUsernamePasswordToken = null;
42         assertFalse(AuthenticationTokenUtils.isUsernamePasswordToken(nullUsernamePasswordToken));
43
44         // alternate implementation of AuthenticationToken
45         final AuthenticationToken notUsernamePasswordToken = new NotUsernamePasswordToken();
46         assertFalse(AuthenticationTokenUtils.isUsernamePasswordToken(notUsernamePasswordToken));
47
48         // positive test case
49         final AuthenticationToken positiveUsernamePasswordToken = new UsernamePasswordToken();
50         assertTrue(AuthenticationTokenUtils.isUsernamePasswordToken(positiveUsernamePasswordToken));
51
52     }
53
54     @Test
55     public void testExtractUsername() throws Exception {
56         // null test
57         final AuthenticationToken nullAuthenticationToken = null;
58         assertEquals(AuthenticationTokenUtils.DEFAULT_TOKEN,
59                 AuthenticationTokenUtils.extractUsername(nullAuthenticationToken));
60
61         // non-UsernamePasswordToken test
62         final AuthenticationToken notUsernamePasswordToken = new NotUsernamePasswordToken();
63         assertEquals(AuthenticationTokenUtils.DEFAULT_TOKEN,
64                 AuthenticationTokenUtils.extractUsername(notUsernamePasswordToken));
65
66         // null username test
67         final UsernamePasswordToken nullUsername = new UsernamePasswordToken();
68         nullUsername.setUsername(null);
69         assertEquals(AuthenticationTokenUtils.DEFAULT_USERNAME,
70                 AuthenticationTokenUtils.extractUsername(nullUsername));
71
72         // positive test
73         final UsernamePasswordToken positiveUsernamePasswordToken = new UsernamePasswordToken();
74         final String testUsername = "testUser1";
75         positiveUsernamePasswordToken.setUsername(testUsername);
76         assertEquals(testUsername, AuthenticationTokenUtils.extractUsername(positiveUsernamePasswordToken));
77     }
78
79     @Test
80     public void testExtractHostname() throws Exception {
81         // null test
82         final AuthenticationToken nullAuthenticationToken = null;
83         assertEquals(AuthenticationTokenUtils.DEFAULT_HOSTNAME,
84                 AuthenticationTokenUtils.extractHostname(nullAuthenticationToken));
85
86         // non-UsernamePasswordToken test
87         final AuthenticationToken notUsernamePasswordToken = new NotUsernamePasswordToken();
88         assertEquals(AuthenticationTokenUtils.DEFAULT_HOSTNAME,
89                 AuthenticationTokenUtils.extractHostname(notUsernamePasswordToken));
90
91         // null hostname test
92         final UsernamePasswordToken nullHostname = new UsernamePasswordToken();
93         nullHostname.setHost(null);
94         assertEquals(AuthenticationTokenUtils.DEFAULT_HOSTNAME,
95                 AuthenticationTokenUtils.extractHostname(nullHostname));
96
97         // positive test
98         final UsernamePasswordToken positiveUsernamePasswordToken = new UsernamePasswordToken();
99         final String testUsername = "testHostname1";
100         positiveUsernamePasswordToken.setHost(testUsername);
101         assertEquals(testUsername, AuthenticationTokenUtils.extractHostname(positiveUsernamePasswordToken));
102     }
103
104     @Test
105     public void testGenerateUnsuccessfulAuthenticationMessage() throws Exception {
106         final UsernamePasswordToken unsuccessfulToken = new UsernamePasswordToken();
107         unsuccessfulToken.setUsername("unsuccessfulUser1");
108         unsuccessfulToken.setHost("unsuccessfulHost1");
109         assertEquals("Unsuccessful authentication attempt by unsuccessfulUser1 from unsuccessfulHost1",
110                 AuthenticationTokenUtils.generateUnsuccessfulAuthenticationMessage(unsuccessfulToken));
111     }
112
113     @Test
114     public void testGenerateSuccessfulAuthenticationMessage() throws Exception {
115         final UsernamePasswordToken successfulToken = new UsernamePasswordToken();
116         successfulToken.setUsername("successfulUser1");
117         successfulToken.setHost("successfulHost1");
118         assertEquals("Successful authentication attempt by successfulUser1 from successfulHost1",
119                 AuthenticationTokenUtils.generateSuccessfulAuthenticationMessage(successfulToken));
120     }
121 }