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