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
56 /***
57 * @author koichik
58 */
59 public class DeployerTest extends S2TestCase {
60 private S2Container container;
61 private int containerCount;
62 private int componentDefCount;
63 private List serviceComponents = new ArrayList();
64 private List handlerComponents = new ArrayList();
65 private List wsddFileNames = new ArrayList();
66
67 public DeployerTest(String name) {
68 super(name);
69 }
70
71 public void setUp() {
72 containerCount = 0;
73 componentDefCount = 0;
74 serviceComponents.clear();
75 handlerComponents.clear();
76 wsddFileNames.clear();
77 }
78
79 public void testForEach0() {
80 Deployer deployer = new DeployCounter();
81 deployer.forEach(container);
82 assertEquals(1, containerCount);
83 assertEquals(0, componentDefCount);
84 }
85
86 public void testForEach1() {
87 include("DeployerTest.forEach1.dicon");
88 Deployer deployer = new DeployCounter();
89 deployer.forEach(container);
90 assertEquals(2, containerCount);
91 assertEquals(1, componentDefCount);
92 }
93
94 public void testForEach2() {
95 include("DeployerTest.forEach1.dicon");
96 include("DeployerTest.forEach2.dicon");
97 Deployer deployer = new DeployCounter();
98 deployer.forEach(container);
99 assertEquals(4, containerCount);
100 assertEquals(4, componentDefCount);
101 }
102
103 public void testProcessContainer0() {
104 createTestDeployer().forEach(container);
105 assertEquals(0, wsddFileNames.size());
106 }
107
108 public void testProcessContainer1() {
109 include("DeployerTest.processContainer1.dicon");
110 createTestDeployer().forEach(container);
111 assertEquals(2, wsddFileNames.size());
112 assertEquals("foo.wsdd", wsddFileNames.get(0));
113 assertEquals("bar.wsdd", wsddFileNames.get(1));
114 }
115
116 public void testProcessComponent0() {
117 createTestDeployer().forEach(container);
118 assertEquals(0, serviceComponents.size());
119 assertEquals(0, handlerComponents.size());
120 }
121
122 public void testProcessComponent1() {
123 include("DeployerTest.processComponent1.dicon");
124 createTestDeployer().forEach(container);
125 assertEquals(2, serviceComponents.size());
126 assertEquals(1, handlerComponents.size());
127 }
128
129 private class DeployCounter extends Deployer {
130 public void process(S2Container container) {
131 ++containerCount;
132 }
133
134 public void process(ComponentDef compoenentDef) {
135 ++componentDefCount;
136 }
137 };
138
139 private Deployer createTestDeployer() {
140 Deployer deployer = new Deployer();
141 deployer.serviceDeployer = new ItemDeployer() {
142 public void deploy(ComponentDef componentDef, MetaDef metaDef) {
143 serviceComponents.add(componentDef);
144 }
145 };
146 deployer.handlerDeployer = new ItemDeployer() {
147 public void deploy(ComponentDef componentDef, MetaDef metaDef) {
148 handlerComponents.add(componentDef);
149 }
150 };
151 deployer.wsddDeployer = new ItemDeployer() {
152 public void deploy(ComponentDef componentDef, MetaDef metaDef) {
153 wsddFileNames.add(metaDef.getValue());
154 }
155 };
156 return deployer;
157 }
158 }