1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.shiro.web.filter.mgt;
20
21 import org.apache.shiro.util.CollectionUtils;
22 import org.apache.shiro.web.filter.authc.UserFilter;
23 import org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter;
24 import org.apache.shiro.web.filter.authz.PortFilter;
25 import org.apache.shiro.web.filter.authz.RolesAuthorizationFilter;
26 import org.apache.shiro.web.filter.authz.SslFilter;
27 import org.junit.Test;
28
29 import javax.servlet.Filter;
30 import javax.servlet.FilterChain;
31 import java.util.*;
32
33 import static org.easymock.EasyMock.createNiceMock;
34 import static org.junit.Assert.*;
35
36
37
38
39
40
41 public class SimpleNamedFilterListTest {
42
43 @Test
44 public void testNewInstance() {
45 @SuppressWarnings({"MismatchedQueryAndUpdateOfCollection"})
46 SimpleNamedFilterList list = new SimpleNamedFilterList("test");
47 assertNotNull(list.getName());
48 assertEquals("test", list.getName());
49 }
50
51 @Test(expected = IllegalArgumentException.class)
52 public void testNewInstanceNameless() {
53 new SimpleNamedFilterList(null);
54 }
55
56 @Test
57 public void testNewInstanceBackingList() {
58 new SimpleNamedFilterList("test", new ArrayList<Filter>());
59 }
60
61 @Test(expected = NullPointerException.class)
62 public void testNewInstanceNullBackingList() {
63 new SimpleNamedFilterList("test", null);
64 }
65
66
67
68
69
70 @Test
71 public void testListMethods() {
72 FilterChain mock = createNiceMock(FilterChain.class);
73 Filter filter = createNiceMock(Filter.class);
74
75 NamedFilterList list = new SimpleNamedFilterList("test");
76 list.add(filter);
77 FilterChain chain = list.proxy(mock);
78 assertNotNull(chain);
79 assertNotSame(mock, chain);
80
81 Filter singleFilter = new SslFilter();
82 List<? extends Filter> multipleFilters = CollectionUtils.asList(new PortFilter(), new UserFilter());
83
84 list.add(0, singleFilter);
85 assertEquals(2, list.size());
86 assertTrue(list.get(0) instanceof SslFilter);
87 assertTrue(Arrays.equals(list.toArray(), new Object[]{singleFilter, filter}));
88
89 list.addAll(multipleFilters);
90 assertEquals(4, list.size());
91 assertTrue(list.get(2) instanceof PortFilter);
92 assertTrue(list.get(3) instanceof UserFilter);
93
94 list.addAll(0, CollectionUtils.asList(new PermissionsAuthorizationFilter(), new RolesAuthorizationFilter()));
95 assertEquals(6, list.size());
96 assertTrue(list.get(0) instanceof PermissionsAuthorizationFilter);
97 assertTrue(list.get(1) instanceof RolesAuthorizationFilter);
98 assertEquals(2, list.indexOf(singleFilter));
99 assertEquals(multipleFilters, list.subList(4, list.size()));
100
101 assertTrue(list.contains(singleFilter));
102 assertTrue(list.containsAll(multipleFilters));
103
104 assertFalse(list.isEmpty());
105 list.clear();
106 assertTrue(list.isEmpty());
107
108 list.add(singleFilter);
109 Iterator i = list.iterator();
110 assertTrue(i.hasNext());
111 assertEquals(i.next(), singleFilter);
112
113 ListIterator li = list.listIterator();
114 assertTrue(li.hasNext());
115 assertEquals(li.next(), singleFilter);
116
117 li = list.listIterator(0);
118 assertTrue(li.hasNext());
119 assertEquals(li.next(), singleFilter);
120
121 list.set(0, singleFilter);
122 assertEquals(list.get(0), singleFilter);
123
124 Filter[] filters = new Filter[list.size()];
125 filters = list.toArray(filters);
126 assertEquals(1, filters.length);
127 assertEquals(filters[0], singleFilter);
128
129 assertEquals(0, list.lastIndexOf(singleFilter));
130
131 list.remove(singleFilter);
132 assertTrue(list.isEmpty());
133
134 list.add(singleFilter);
135 list.remove(0);
136 assertTrue(list.isEmpty());
137
138 list.add(singleFilter);
139 list.addAll(multipleFilters);
140 assertEquals(3, list.size());
141 list.removeAll(multipleFilters);
142 assertEquals(1, list.size());
143 assertEquals(list.get(0), singleFilter);
144
145 list.addAll(multipleFilters);
146 assertEquals(3, list.size());
147 list.retainAll(multipleFilters);
148 assertEquals(2, list.size());
149
150 assertEquals(new ArrayList(list), multipleFilters);
151 }
152
153
154 }