1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 package org.seasar.remoting.axis.deployer;
47
48 import java.util.ArrayList;
49 import java.util.List;
50
51 import org.seasar.extension.unit.S2TestCase;
52 import org.seasar.framework.container.ComponentDef;
53 import org.seasar.framework.container.MetaDef;
54 import org.seasar.framework.container.S2Container;
55 import org.seasar.framework.container.impl.MetaDefImpl;
56
57 /***
58 * @author koichik
59 */
60 public class AxisDeployerTest extends S2TestCase {
61 private S2Container container;
62 private int containerCount;
63 private int componentDefCount;
64 private List serviceComponents = new ArrayList();
65 private List handlerComponents = new ArrayList();
66 private List wsddFileNames = new ArrayList();
67
68 public AxisDeployerTest(String name) {
69 super(name);
70 }
71
72 public void setUp() {
73 containerCount = 0;
74 componentDefCount = 0;
75 serviceComponents.clear();
76 handlerComponents.clear();
77 wsddFileNames.clear();
78 }
79
80 public void testForEach0() {
81 AxisDeployer deployer = new DeployCounter();
82 deployer.forEach(container);
83 assertEquals(1, containerCount);
84 assertEquals(0, componentDefCount);
85 }
86
87 public void testForEach1() {
88 include("AxisDeployerTest.forEach1.dicon");
89 AxisDeployer deployer = new DeployCounter();
90 deployer.forEach(container);
91 assertEquals(2, containerCount);
92 assertEquals(1, componentDefCount);
93 }
94
95 public void testForEach2() {
96 include("AxisDeployerTest.forEach1.dicon");
97 include("AxisDeployerTest.forEach2.dicon");
98 AxisDeployer deployer = new DeployCounter();
99 deployer.forEach(container);
100 assertEquals(4, containerCount);
101 assertEquals(4, componentDefCount);
102 }
103
104 public void testProcessContainer0() {
105 createTestDeployer().forEach(container);
106 assertEquals(0, wsddFileNames.size());
107 }
108
109 public void testProcessContainer1() {
110 include("AxisDeployerTest.processContainer1.dicon");
111 createTestDeployer().forEach(container);
112 assertEquals(2, wsddFileNames.size());
113 assertEquals("foo.wsdd", wsddFileNames.get(0));
114 assertEquals("bar.wsdd", wsddFileNames.get(1));
115 }
116
117 public void testProcessComponent0() {
118 createTestDeployer().forEach(container);
119 assertEquals(0, serviceComponents.size());
120 assertEquals(0, handlerComponents.size());
121 }
122
123 public void testProcessComponent1() {
124 include("AxisDeployerTest.processComponent1.dicon");
125 createTestDeployer().forEach(container);
126 assertEquals(2, serviceComponents.size());
127 assertEquals(1, handlerComponents.size());
128 }
129
130 public void testGetLocalName() {
131 AxisDeployer deployer = new AxisDeployer();
132 assertEquals("1", "service", deployer.getLocalName(new MetaDefImpl("axis-service")));
133 assertEquals("2", "handler", deployer.getLocalName(new MetaDefImpl("s2-axis:handler")));
134 assertNull("3", deployer.getLocalName(new MetaDefImpl("axis-")));
135 assertNull("4", deployer.getLocalName(new MetaDefImpl("s2-axis:")));
136 assertNull("5", deployer.getLocalName(new MetaDefImpl("hoge")));
137 }
138
139 private class DeployCounter extends AxisDeployer {
140 public void process(S2Container container) {
141 ++containerCount;
142 }
143
144 public void process(ComponentDef compoenentDef) {
145 ++componentDefCount;
146 }
147 };
148
149 private AxisDeployer createTestDeployer() {
150 AxisDeployer deployer = new AxisDeployer();
151 deployer.serviceDeployer = new ItemDeployer() {
152 public void deploy(ComponentDef componentDef, MetaDef metaDef) {
153 serviceComponents.add(componentDef);
154 }
155 };
156 deployer.handlerDeployer = new ItemDeployer() {
157 public void deploy(ComponentDef componentDef, MetaDef metaDef) {
158 handlerComponents.add(componentDef);
159 }
160 };
161 deployer.wsddDeployer = new ItemDeployer() {
162 public void deploy(ComponentDef componentDef, MetaDef metaDef) {
163 wsddFileNames.add(metaDef.getValue());
164 }
165 };
166 return deployer;
167 }
168 }