Bump versions to 0.14.2-SNAPSHOT
[aaa.git] / aaa-tokenauthrealm / src / test / java / org / opendaylight / aaa / tokenauthrealm / auth / AuthenticationBuilderTest.java
1 /*
2  * Copyright (c) 2015 Hewlett-Packard Development Company, L.P. 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.tokenauthrealm.auth;
10
11 import static org.junit.Assert.assertEquals;
12 import static org.junit.Assert.assertFalse;
13 import static org.junit.Assert.assertNotEquals;
14 import static org.junit.Assert.assertTrue;
15
16 import java.util.Arrays;
17 import java.util.LinkedHashSet;
18 import java.util.Set;
19 import org.junit.Test;
20 import org.opendaylight.aaa.api.Authentication;
21 import org.opendaylight.aaa.api.Claim;
22
23 public class AuthenticationBuilderTest {
24     private Set<String> roles = new LinkedHashSet<>(Arrays.asList("role1", "role2"));
25     private Claim validClaim = new ClaimBuilder().setDomain("aName").setUserId("1")
26             .setClientId("2222").setUser("bob").addRole("foo").addRoles(roles).build();
27
28     @Test
29     public void testBuildWithExpiration() {
30         Authentication a1 = new AuthenticationBuilder(validClaim).setExpiration(1).build();
31         assertEquals(1, a1.expiration());
32         assertEquals("aName", a1.domain());
33         assertEquals("1", a1.userId());
34         assertEquals("2222", a1.clientId());
35         assertEquals("bob", a1.user());
36         assertTrue(a1.roles().contains("foo"));
37         assertTrue(a1.roles().containsAll(roles));
38         assertEquals(3, a1.roles().size());
39         Authentication a2 = new AuthenticationBuilder(a1).build();
40         assertNotEquals(a1, a2);
41         Authentication a3 = new AuthenticationBuilder(a1).setExpiration(1).build();
42         assertEquals(a1, a3);
43     }
44
45     @Test
46     public void testBuildWithoutExpiration() {
47         Authentication a1 = new AuthenticationBuilder(validClaim).build();
48         assertEquals(0, a1.expiration());
49         assertEquals("aName", a1.domain());
50         assertEquals("1", a1.userId());
51         assertEquals("2222", a1.clientId());
52         assertEquals("bob", a1.user());
53         assertTrue(a1.roles().contains("foo"));
54         assertTrue(a1.roles().containsAll(roles));
55         assertEquals(3, a1.roles().size());
56     }
57
58     @Test(expected = IllegalStateException.class)
59     public void testBuildWithNegativeExpiration() {
60         AuthenticationBuilder a1 = new AuthenticationBuilder(validClaim).setExpiration(-1);
61         a1.build();
62     }
63
64     @Test(expected = IllegalStateException.class)
65     public void testBuildWithNullClaim() {
66         AuthenticationBuilder a1 = new AuthenticationBuilder(null);
67         a1.build();
68     }
69
70     @Test
71     public void testToString() {
72         Authentication a1 = new AuthenticationBuilder(validClaim).setExpiration(1).build();
73         assertEquals(
74                 "expiration:1,clientId:2222,userId:1,userName:bob,domain:aName,roles:[foo, role1, role2]",
75                 a1.toString());
76     }
77
78     @Test
79     public void testEquals() {
80         Authentication a1 = new AuthenticationBuilder(validClaim).setExpiration(1).build();
81         assertTrue(a1.equals(a1));
82         Authentication a2 = new AuthenticationBuilder(a1).setExpiration(1).build();
83         assertTrue(a1.equals(a2));
84         assertTrue(a2.equals(a1));
85         Authentication a3 = new AuthenticationBuilder(validClaim).setExpiration(1).build();
86         assertTrue(a1.equals(a3));
87         assertTrue(a3.equals(a2));
88         assertTrue(a1.equals(a2));
89     }
90
91     @Test
92     public void testNotEquals() {
93         Authentication a1 = new AuthenticationBuilder(validClaim).setExpiration(1).build();
94         assertFalse(a1.equals(null));
95         assertFalse(a1.equals("wrong object"));
96         Authentication a2 = new AuthenticationBuilder(a1).build();
97         assertFalse(a1.equals(a2));
98         assertFalse(a2.equals(a1));
99         Authentication a3 = new AuthenticationBuilder(validClaim).setExpiration(1).build();
100         assertFalse(a1.equals(a2));
101         assertTrue(a1.equals(a3));
102         assertFalse(a2.equals(a3));
103         Authentication a4 = new AuthenticationBuilder(validClaim).setExpiration(9).build();
104         assertFalse(a1.equals(a4));
105         assertFalse(a4.equals(a1));
106         Authentication a5 = new AuthenticationBuilder(a1).setExpiration(9).build();
107         assertFalse(a1.equals(a5));
108         assertFalse(a5.equals(a1));
109     }
110
111     @Test
112     public void testHashCode() {
113         Authentication a1 = new AuthenticationBuilder(validClaim).setExpiration(1).build();
114         assertEquals(a1.hashCode(), a1.hashCode());
115         Authentication a2 = new AuthenticationBuilder(a1).setExpiration(1).build();
116         assertTrue(a1.equals(a2));
117         assertEquals(a1.hashCode(), a2.hashCode());
118         Authentication a3 = new AuthenticationBuilder(validClaim).setExpiration(1).build();
119         assertTrue(a1.equals(a3));
120         assertEquals(a1.hashCode(), a3.hashCode());
121         assertEquals(a2.hashCode(), a3.hashCode());
122         Authentication a4 = new AuthenticationBuilder(a1).setExpiration(9).build();
123         assertFalse(a1.equals(a4));
124         assertNotEquals(a1.hashCode(), a4.hashCode());
125         Authentication a5 = new AuthenticationBuilder(a1).build();
126         assertFalse(a1.equals(a5));
127         assertNotEquals(a1.hashCode(), a5.hashCode());
128     }
129 }