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 junit.framework.Assert;
23 import junit.framework.TestCase;
24
25 import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
26 import org.apache.mina.core.filterchain.IoFilter;
27 import org.apache.mina.core.filterchain.IoFilterAdapter;
28 import org.apache.mina.core.filterchain.IoFilterChain.Entry;
29
30
31
32
33
34
35
36 public class DefaultIoFilterChainBuilderTest extends TestCase {
37 public static void main(String[] args) {
38 junit.textui.TestRunner.run(DefaultIoFilterChainBuilderTest.class);
39 }
40
41 @Override
42 protected void setUp() throws Exception {
43 }
44
45 @Override
46 protected void tearDown() throws Exception {
47 }
48
49 public void testAdd() throws Exception {
50 DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();
51
52 builder.addFirst("A", new IoFilterAdapter());
53 builder.addLast("B", new IoFilterAdapter());
54 builder.addFirst("C", new IoFilterAdapter());
55 builder.addLast("D", new IoFilterAdapter());
56 builder.addBefore("B", "E", new IoFilterAdapter());
57 builder.addBefore("C", "F", new IoFilterAdapter());
58 builder.addAfter("B", "G", new IoFilterAdapter());
59 builder.addAfter("D", "H", new IoFilterAdapter());
60
61 String actual = "";
62 for (Entry e : builder.getAll()) {
63 actual += e.getName();
64 }
65
66 Assert.assertEquals("FCAEBGDH", actual);
67 }
68
69 public void testGet() throws Exception {
70 DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();
71
72 IoFilter filterA = new IoFilterAdapter();
73 IoFilter filterB = new IoFilterAdapter();
74 IoFilter filterC = new IoFilterAdapter();
75 IoFilter filterD = new IoFilterAdapter();
76
77 builder.addFirst("A", filterA);
78 builder.addLast("B", filterB);
79 builder.addBefore("B", "C", filterC);
80 builder.addAfter("A", "D", filterD);
81
82 Assert.assertSame(filterA, builder.get("A"));
83 Assert.assertSame(filterB, builder.get("B"));
84 Assert.assertSame(filterC, builder.get("C"));
85 Assert.assertSame(filterD, builder.get("D"));
86 }
87
88 public void testRemove() throws Exception {
89 DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();
90
91 builder.addLast("A", new IoFilterAdapter());
92 builder.addLast("B", new IoFilterAdapter());
93 builder.addLast("C", new IoFilterAdapter());
94 builder.addLast("D", new IoFilterAdapter());
95 builder.addLast("E", new IoFilterAdapter());
96
97 builder.remove("A");
98 builder.remove("E");
99 builder.remove("C");
100 builder.remove("B");
101 builder.remove("D");
102
103 Assert.assertEquals(0, builder.getAll().size());
104 }
105
106 public void testClear() throws Exception {
107 DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();
108
109 builder.addLast("A", new IoFilterAdapter());
110 builder.addLast("B", new IoFilterAdapter());
111 builder.addLast("C", new IoFilterAdapter());
112 builder.addLast("D", new IoFilterAdapter());
113 builder.addLast("E", new IoFilterAdapter());
114
115 builder.clear();
116
117 Assert.assertEquals(0, builder.getAll().size());
118 }
119
120 public void testToString() {
121 DefaultIoFilterChainBuilder builder = new DefaultIoFilterChainBuilder();
122
123
124 Assert.assertEquals("{ empty }", builder.toString());
125
126
127 builder.addLast("A", new IoFilterAdapter() {
128 @Override
129 public String toString() {
130 return "B";
131 }
132 });
133 Assert.assertEquals("{ (A:B) }", builder.toString());
134
135
136 builder.addLast("C", new IoFilterAdapter() {
137 @Override
138 public String toString() {
139 return "D";
140 }
141 });
142 Assert.assertEquals("{ (A:B), (C:D) }", builder.toString());
143 }
144 }