2 * Copyright (c) 2015 Hewlett-Packard Development Company, L.P. and others. All rights reserved.
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
9 package org.opendaylight.aaa;
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;
16 import java.util.Arrays;
17 import java.util.LinkedHashSet;
19 import org.junit.Test;
20 import org.opendaylight.aaa.api.Authentication;
21 import org.opendaylight.aaa.api.Claim;
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();
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();
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());
58 @Test(expected = IllegalStateException.class)
59 public void testBuildWithNegativeExpiration() {
60 AuthenticationBuilder a1 = new AuthenticationBuilder(validClaim).setExpiration(-1);
64 @Test(expected = IllegalStateException.class)
65 public void testBuildWithNullClaim() {
66 AuthenticationBuilder a1 = new AuthenticationBuilder(null);
71 public void testToString() {
72 Authentication a1 = new AuthenticationBuilder(validClaim).setExpiration(1).build();
74 "expiration:1,clientId:2222,userId:1,userName:bob,domain:aName,roles:[foo, role1, role2]",
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));
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));
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());