1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.mina.integration.spring;
21
22 import java.util.Arrays;
23 import java.util.LinkedList;
24
25 import org.apache.mina.common.DefaultIoFilterChainBuilder;
26 import org.apache.mina.common.IoFilter;
27 import org.apache.mina.common.IoFilterChain;
28 import org.easymock.MockControl;
29
30 import junit.framework.TestCase;
31
32
33
34
35
36
37
38 public class DefaultIoFilterChainBuilderFactoryBeanTest extends TestCase {
39 MockControl mockChain;
40
41 IoFilterChain chain;
42
43 IoFilter[] filters;
44
45 protected void setUp() throws Exception {
46 super.setUp();
47
48 mockChain = MockControl.createControl(IoFilterChain.class);
49 chain = (IoFilterChain) mockChain.getMock();
50 filters = new IoFilter[] {
51 (IoFilter) MockControl.createControl(IoFilter.class).getMock(),
52 (IoFilter) MockControl.createControl(IoFilter.class).getMock(),
53 (IoFilter) MockControl.createControl(IoFilter.class).getMock() };
54 }
55
56 public void testUnnamedFilters() throws Exception {
57 chain.addLast("prefix0", filters[0]);
58 chain.addLast("prefix1", filters[1]);
59 chain.addLast("prefix2", filters[2]);
60
61 mockChain.replay();
62
63 DefaultIoFilterChainBuilderFactoryBean factory = new DefaultIoFilterChainBuilderFactoryBean();
64 factory.setFilters(Arrays.asList(filters));
65 factory.setFilterNamePrefix("prefix");
66 DefaultIoFilterChainBuilder builder = (DefaultIoFilterChainBuilder) factory
67 .createInstance();
68 builder.buildFilterChain(chain);
69
70 mockChain.verify();
71 }
72
73 public void testIllegalObjectsInFilterList() throws Exception {
74 LinkedList mappings = new LinkedList();
75 mappings.add(new IoFilterMapping("f0", filters[0]));
76 mappings.add(new Object());
77 DefaultIoFilterChainBuilderFactoryBean factory = new DefaultIoFilterChainBuilderFactoryBean();
78 try {
79 factory.setFilters(mappings);
80 fail("Illegal object in list of filters. IllegalArgumentException expected.");
81 } catch (IllegalArgumentException iae) {
82 }
83 }
84
85 public void testNamedAndUnnamedFilters() throws Exception {
86 LinkedList mappings = new LinkedList();
87 mappings.add(new IoFilterMapping("f0", filters[0]));
88 mappings.add(filters[1]);
89 mappings.add(new IoFilterMapping("f2", filters[2]));
90
91 chain.addLast("f0", filters[0]);
92 chain.addLast("filter1", filters[1]);
93 chain.addLast("f2", filters[2]);
94
95 mockChain.replay();
96
97 DefaultIoFilterChainBuilderFactoryBean factory = new DefaultIoFilterChainBuilderFactoryBean();
98 factory.setFilters(mappings);
99 DefaultIoFilterChainBuilder builder = (DefaultIoFilterChainBuilder) factory
100 .createInstance();
101 builder.buildFilterChain(chain);
102
103 mockChain.verify();
104 }
105 }