1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.core;
21
22 import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
23 import org.apache.mina.core.filterchain.IoFilter;
24 import org.apache.mina.core.filterchain.IoFilterAdapter;
25 import org.apache.mina.core.filterchain.IoFilterChain.Entry;
26 import org.apache.mina.filter.util.NoopFilter;
27 import org.junit.After;
28 import org.junit.Before;
29 import org.junit.Test;
30
31 import static org.junit.Assert.assertEquals;
32 import static org.junit.Assert.assertSame;
33
34
35
36
37
38
39
40 public class DefaultIoFilterChainBuilderTest {
41 @Before
42 public void setUp() throws Exception {
43 }
44
45 @After
46 public void tearDown() throws Exception {
47 }
48
49 @Test
50 public void testAdd() throws Exception {
51 DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();
52
53 builder.addFirst("A", new NoopFilter());
54 builder.addLast("B", new NoopFilter());
55 builder.addFirst("C", new NoopFilter());
56 builder.addLast("D", new NoopFilter());
57 builder.addBefore("B", "E", new NoopFilter());
58 builder.addBefore("C", "F", new NoopFilter());
59 builder.addAfter("B", "G", new NoopFilter());
60 builder.addAfter("D", "H", new NoopFilter());
61
62 String actual = "";
63 for (Entry e : builder.getAll()) {
64 actual += e.getName();
65 }
66
67 assertEquals("FCAEBGDH", actual);
68 }
69
70 @Test
71 public void testGet() throws Exception {
72 DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();
73
74 IoFilter filterA = new NoopFilter();
75 IoFilter filterB = new NoopFilter();
76 IoFilter filterC = new NoopFilter();
77 IoFilter filterD = new NoopFilter();
78
79 builder.addFirst("A", filterA);
80 builder.addLast("B", filterB);
81 builder.addBefore("B", "C", filterC);
82 builder.addAfter("A", "D", filterD);
83
84 assertSame(filterA, builder.get("A"));
85 assertSame(filterB, builder.get("B"));
86 assertSame(filterC, builder.get("C"));
87 assertSame(filterD, builder.get("D"));
88 }
89
90 @Test
91 public void testRemove() throws Exception {
92 DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();
93
94 builder.addLast("A", new NoopFilter());
95 builder.addLast("B", new NoopFilter());
96 builder.addLast("C", new NoopFilter());
97 builder.addLast("D", new NoopFilter());
98 builder.addLast("E", new NoopFilter());
99
100 builder.remove("A");
101 builder.remove("E");
102 builder.remove("C");
103 builder.remove("B");
104 builder.remove("D");
105
106 assertEquals(0, builder.getAll().size());
107 }
108
109 @Test
110 public void testClear() throws Exception {
111 DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();
112
113 builder.addLast("A", new NoopFilter());
114 builder.addLast("B", new NoopFilter());
115 builder.addLast("C", new NoopFilter());
116 builder.addLast("D", new NoopFilter());
117 builder.addLast("E", new NoopFilter());
118
119 builder.clear();
120
121 assertEquals(0, builder.getAll().size());
122 }
123
124 @Test
125 public void testToString() {
126 DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();
127
128
129 assertEquals("{ empty }", builder.toString());
130
131
132 builder.addLast("A", new IoFilterAdapter() {
133 @Override
134 public String toString() {
135 return "B";
136 }
137 });
138 assertEquals("{ (A:B) }", builder.toString());
139
140
141 builder.addLast("C", new IoFilterAdapter() {
142 @Override
143 public String toString() {
144 return "D";
145 }
146 });
147 assertEquals("{ (A:B), (C:D) }", builder.toString());
148 }
149 }