ICE 3.4.2
[php5-ice-freebsdport.git] / java / test / Slice / structure / Client.java
blob1fe0f164307fe2b285ecf08e8bc312e3cdba56aa
1 // **********************************************************************
2 //
3 // Copyright (c) 2003-2011 ZeroC, Inc. All rights reserved.
4 //
5 // This copy of Ice is licensed to you under the terms described in the
6 // ICE_LICENSE file included in this distribution.
7 //
8 // **********************************************************************
10 package test.Slice.structure;
12 import test.Slice.structure.Test.S1;
13 import test.Slice.structure.Test.S2;
14 import test.Slice.structure.Test.C;
15 import java.util.ArrayList;
16 import java.util.Map;
17 import java.util.HashMap;
19 public class Client
21 private static void test(boolean b)
23 if(!b)
25 throw new RuntimeException();
29 private static void allTests(Ice.Communicator communicator)
31 System.out.print("testing equals() for Slice structures... ");
32 System.out.flush();
35 // Define some default values.
37 C def_cls = new C(5);
38 S1 def_s = new S1("name");
39 String[] def_ss = new String[]{ "one", "two", "three" };
40 ArrayList<Integer> def_il = new ArrayList<Integer>();
41 def_il.add(1);
42 def_il.add(2);
43 def_il.add(3);
44 Map<String, String> def_sd = new HashMap<String, String>();
45 def_sd.put("abc", "def");
46 Ice.ObjectPrx def_prx = communicator.stringToProxy("test");
47 S2 def_s2 = new S2(true, (byte)98, (short)99, 100, 101, (float)1.0, 2.0, "string", def_ss, def_il, def_sd,
48 def_s, def_cls, def_prx);
51 // Compare default-constructed structures.
54 test(new S2().equals(new S2()));
58 // Change one primitive member at a time.
61 S2 v;
63 v = (S2)def_s2.clone();
64 test(v.equals(def_s2));
66 v = (S2)def_s2.clone();
67 v.bo = false;
68 test(!v.equals(def_s2));
70 v = (S2)def_s2.clone();
71 v.by--;
72 test(!v.equals(def_s2));
74 v = (S2)def_s2.clone();
75 v.sh--;
76 test(!v.equals(def_s2));
78 v = (S2)def_s2.clone();
79 v.i--;
80 test(!v.equals(def_s2));
82 v = (S2)def_s2.clone();
83 v.l--;
84 test(!v.equals(def_s2));
86 v = (S2)def_s2.clone();
87 v.f--;
88 test(!v.equals(def_s2));
90 v = (S2)def_s2.clone();
91 v.d--;
92 test(!v.equals(def_s2));
94 v = (S2)def_s2.clone();
95 v.str = "";
96 test(!v.equals(def_s2));
100 // String member
103 S2 v1, v2;
105 v1 = (S2)def_s2.clone();
106 v1.str = new String(def_s2.str);
107 test(v1.equals(def_s2));
109 v1 = (S2)def_s2.clone();
110 v2 = (S2)def_s2.clone();
111 v1.str = null;
112 test(!v1.equals(v2));
114 v1 = (S2)def_s2.clone();
115 v2 = (S2)def_s2.clone();
116 v2.str = null;
117 test(!v1.equals(v2));
119 v1 = (S2)def_s2.clone();
120 v2 = (S2)def_s2.clone();
121 v1.str = null;
122 v2.str = null;
123 test(v1.equals(v2));
127 // Sequence member
130 S2 v1, v2;
132 v1 = (S2)def_s2.clone();
133 v1.ss = (String[])def_s2.ss.clone();
134 test(v1.equals(def_s2));
136 v1 = (S2)def_s2.clone();
137 v2 = (S2)def_s2.clone();
138 v1.ss = null;
139 test(!v1.equals(v2));
141 v1 = (S2)def_s2.clone();
142 v2 = (S2)def_s2.clone();
143 v2.ss = null;
144 test(!v1.equals(v2));
148 // Custom sequence member
151 S2 v1, v2;
153 v1 = (S2)def_s2.clone();
154 v1.il = new ArrayList<Integer>(def_s2.il);
155 test(v1.equals(def_s2));
157 v1 = (S2)def_s2.clone();
158 v1.il = new ArrayList<Integer>();
159 test(!v1.equals(def_s2));
161 v1 = (S2)def_s2.clone();
162 v2 = (S2)def_s2.clone();
163 v1.il = null;
164 test(!v1.equals(v2));
166 v1 = (S2)def_s2.clone();
167 v2 = (S2)def_s2.clone();
168 v2.il = null;
169 test(!v1.equals(v2));
173 // Dictionary member
176 S2 v1, v2;
178 v1 = (S2)def_s2.clone();
179 v1.sd = new HashMap<String, String>(def_s2.sd);
180 test(v1.equals(def_s2));
182 v1 = (S2)def_s2.clone();
183 v1.sd = new HashMap<String, String>();
184 test(!v1.equals(def_s2));
186 v1 = (S2)def_s2.clone();
187 v2 = (S2)def_s2.clone();
188 v1.sd = null;
189 test(!v1.equals(v2));
191 v1 = (S2)def_s2.clone();
192 v2 = (S2)def_s2.clone();
193 v2.sd = null;
194 test(!v1.equals(v2));
198 // Struct member
201 S2 v1, v2;
203 v1 = (S2)def_s2.clone();
204 v1.s = (S1)def_s2.s.clone();
205 test(v1.equals(def_s2));
207 v1 = (S2)def_s2.clone();
208 v1.s = new S1("name");
209 test(v1.equals(def_s2));
211 v1 = (S2)def_s2.clone();
212 v1.s = new S1("noname");
213 test(!v1.equals(def_s2));
215 v1 = (S2)def_s2.clone();
216 v2 = (S2)def_s2.clone();
217 v1.s = null;
218 test(!v1.equals(v2));
220 v1 = (S2)def_s2.clone();
221 v2 = (S2)def_s2.clone();
222 v2.s = null;
223 test(!v1.equals(v2));
227 // Class member
230 S2 v1, v2;
232 v1 = (S2)def_s2.clone();
233 v1.cls = (C)def_s2.cls.clone();
234 test(!v1.equals(def_s2));
236 v1 = (S2)def_s2.clone();
237 v2 = (S2)def_s2.clone();
238 v1.cls = null;
239 test(!v1.equals(v2));
241 v1 = (S2)def_s2.clone();
242 v2 = (S2)def_s2.clone();
243 v2.cls = null;
244 test(!v1.equals(v2));
248 // Proxy member
251 S2 v1, v2;
253 v1 = (S2)def_s2.clone();
254 v1.prx = communicator.stringToProxy("test");
255 test(v1.equals(def_s2));
257 v1 = (S2)def_s2.clone();
258 v1.prx = communicator.stringToProxy("test2");
259 test(!v1.equals(def_s2));
261 v1 = (S2)def_s2.clone();
262 v2 = (S2)def_s2.clone();
263 v1.prx = null;
264 test(!v1.equals(v2));
266 v1 = (S2)def_s2.clone();
267 v2 = (S2)def_s2.clone();
268 v2.prx = null;
269 test(!v1.equals(v2));
272 System.out.println("ok");
275 private static int run(String[] args, Ice.Communicator communicator)
277 allTests(communicator);
279 return 0;
282 public static void main(String[] args)
284 int status = 0;
285 Ice.Communicator communicator = null;
289 Ice.StringSeqHolder argsH = new Ice.StringSeqHolder(args);
290 communicator = Ice.Util.initialize(argsH);
291 status = run(argsH.value, communicator);
293 catch(Exception ex)
295 ex.printStackTrace();
296 status = 1;
299 if(communicator != null)
303 communicator.destroy();
305 catch(Ice.LocalException ex)
307 ex.printStackTrace();
308 status = 1;
312 System.gc();
313 System.exit(status);