1
1
// **********************************************************************
3
// Copyright (c) 2003-2010 ZeroC, Inc. All rights reserved.
3
// Copyright (c) 2003-2011 ZeroC, Inc. All rights reserved.
5
5
// This copy of Ice is licensed to you under the terms described in the
6
6
// ICE_LICENSE file included in this distribution.
22
22
throw new System.Exception();
26
26
private class Callback
28
28
internal Callback()
33
33
public virtual void check()
46
51
public virtual void called()
50
56
Debug.Assert(!_called);
56
66
private bool _called;
67
private readonly IceUtilInternal.Monitor _m = new IceUtilInternal.Monitor();
59
70
private class AsyncCallback
61
72
public void response_SBaseAsObject(Ice.Object o)
82
93
AllTests.test(sbskd.sbskd.Equals("SBSKnownDerived.sbskd"));
86
97
public void response_SBSKnownDerivedAsSBSKnownDerived(SBSKnownDerived sbskd)
88
99
AllTests.test(sbskd.sbskd.Equals("SBSKnownDerived.sbskd"));
89
100
callback.called();
92
103
public void response_SBSUnknownDerivedAsSBase(SBase sb)
94
105
AllTests.test(sb.sb.Equals("SBSUnknownDerived.sb"));
95
106
callback.called();
98
109
public void response_SUnknownAsObject(Ice.Object o)
100
111
AllTests.test(false);
103
114
public void exception_SUnknownAsObject(Ice.Exception exc)
105
116
AllTests.test(exc.GetType().FullName.Equals("Ice.NoObjectFactoryException"));
106
117
callback.called();
109
120
public void response_oneElementCycle(B b)
111
122
AllTests.test(b != null);
114
125
AllTests.test(b.pb == b);
115
126
callback.called();
118
129
public void response_twoElementCycle(B b1)
120
131
AllTests.test(b1 != null);
121
132
AllTests.test(b1.ice_id().Equals("::Test::B"));
122
133
AllTests.test(b1.sb.Equals("B1.sb"));
125
136
AllTests.test(b2 != null);
126
137
AllTests.test(b2.ice_id().Equals("::Test::B"));
197
208
AllTests.test(d1 != null);
198
209
AllTests.test(d1.sd1.Equals("D1.sd1"));
199
210
AllTests.test(d1.pd1 == b2);
201
212
AllTests.test(b2 != null);
202
213
AllTests.test(b2.ice_id().Equals("::Test::B")); // No factory, must be sliced
203
214
AllTests.test(b2.sb.Equals("D2.sb"));
204
215
AllTests.test(b2.pb == b1);
205
216
callback.called();
208
219
public void response_paramTest2(B b2, B b1)
210
221
AllTests.test(b1 != null);
215
226
AllTests.test(d1 != null);
216
227
AllTests.test(d1.sd1.Equals("D1.sd1"));
217
228
AllTests.test(d1.pd1 == b2);
219
230
AllTests.test(b2 != null);
220
231
AllTests.test(b2.ice_id().Equals("::Test::B")); // No factory, must be sliced
221
232
AllTests.test(b2.sb.Equals("D2.sb"));
222
233
AllTests.test(b2.pb == b1);
223
234
callback.called();
226
237
public void response_returnTest1(B r, B p1, B p2)
228
239
AllTests.test(r == p1);
229
240
callback.called();
232
243
public void response_returnTest2(B r, B p1, B p2)
234
245
AllTests.test(r == p1);
235
246
callback.called();
238
249
public void response_returnTest3(B b)
241
252
callback.called();
244
255
public void response_paramTest3(B ret, B p1, B p2)
246
257
AllTests.test(p1 != null);
247
258
AllTests.test(p1.sb.Equals("D2.sb (p1 1)"));
248
259
AllTests.test(p1.pb == null);
249
260
AllTests.test(p1.ice_id().Equals("::Test::B"));
251
262
AllTests.test(p2 != null);
252
263
AllTests.test(p2.sb.Equals("D2.sb (p2 1)"));
253
264
AllTests.test(p2.pb == null);
254
265
AllTests.test(p2.ice_id().Equals("::Test::B"));
256
267
AllTests.test(ret != null);
257
268
AllTests.test(ret.sb.Equals("D1.sb (p2 2)"));
258
269
AllTests.test(ret.pb == null);
259
270
AllTests.test(ret.ice_id().Equals("::Test::D1"));
260
271
callback.called();
263
274
public void response_paramTest4(B ret, B b)
265
276
AllTests.test(b != null);
266
277
AllTests.test(b.sb.Equals("D4.sb (1)"));
267
278
AllTests.test(b.pb == null);
268
279
AllTests.test(b.ice_id().Equals("::Test::B"));
270
281
AllTests.test(ret != null);
271
282
AllTests.test(ret.sb.Equals("B.sb (2)"));
272
283
AllTests.test(ret.pb == null);
273
284
AllTests.test(ret.ice_id().Equals("::Test::B"));
274
285
callback.called();
277
288
public void response_sequenceTest(SS ss)
280
291
callback.called();
283
294
public void response_dictionaryTest(Dictionary<int, B> r, Dictionary<int, B> bout)
285
296
this.rbdict = (Dictionary<int, B>)r;
286
297
this.obdict = (Dictionary<int, B>)bout;
287
298
callback.called();
290
301
public void exception_throwBaseAsBase(Ice.Exception exc)
393
404
public Dictionary<int, B> rbdict;
394
405
public Dictionary<int, B> obdict;
396
407
private Callback callback = new Callback();
399
410
public static TestIntfPrx allTests(Ice.Communicator communicator, bool collocated)
401
412
Console.Out.Write("testing stringToProxy... ");
404
415
Ice.ObjectPrx basePrx = communicator.stringToProxy(r);
405
416
test(basePrx != null);
406
417
Console.Out.WriteLine("ok");
408
419
Console.Out.Write("testing checked cast... ");
409
420
Console.Out.Flush();
410
421
TestIntfPrx testPrx = TestIntfPrxHelper.checkedCast(basePrx);
411
422
test(testPrx != null);
412
423
test(testPrx.Equals(basePrx));
413
424
Console.Out.WriteLine("ok");
415
426
Console.Out.Write("base as Object... ");
416
427
Console.Out.Flush();
1105
1116
B ret = testPrx.paramTest3(out p1, out p2);
1107
1118
test(p1 != null);
1108
1119
test(p1.sb.Equals("D2.sb (p1 1)"));
1109
1120
test(p1.pb == null);
1110
1121
test(p1.ice_id().Equals("::Test::B"));
1112
1123
test(p2 != null);
1113
1124
test(p2.sb.Equals("D2.sb (p2 1)"));
1114
1125
test(p2.pb == null);
1115
1126
test(p2.ice_id().Equals("::Test::B"));
1117
1128
test(ret != null);
1118
1129
test(ret.sb.Equals("D1.sb (p2 2)"));
1119
1130
test(ret.pb == null);
1203
1214
Console.Out.WriteLine("ok");
1205
1216
Console.Out.Write("param ptr slicing, instance marshaled in unknown derived as base (AMI)... ");
1206
1217
Console.Out.Flush();
1208
1219
B b1 = new B();
1209
1220
b1.sb = "B.sb(1)";
1212
1223
D3 d3 = new D3();
1213
1224
d3.sb = "D3.sb";
1215
1226
d3.sd3 = "D3.sd3";
1218
1229
B b2 = new B();
1219
1230
b2.sb = "B.sb(2)";
1222
1233
AsyncCallback cb = new AsyncCallback();
1223
1234
testPrx.begin_returnTest3(d3, b2).whenCompleted(cb.response_returnTest3, cb.exception);
1227
1238
test(rv != null);
1228
1239
test(rv.ice_id().Equals("::Test::B"));
1229
1240
test(rv.sb.Equals("D3.sb"));
1230
1241
test(rv.pb == rv);
1232
1243
Console.Out.WriteLine("ok");
1234
1245
Console.Out.Write("param ptr slicing, instance marshaled in unknown derived as derived... ");
1235
1246
Console.Out.Flush();
1273
1284
d11.sb = "D1.sb(1)";
1275
1286
d11.sd1 = "D1.sd1(1)";
1277
1288
D3 d3 = new D3();
1278
1289
d3.sb = "D3.sb";
1280
1291
d3.sd3 = "D3.sd3";
1283
1294
D1 d12 = new D1();
1284
1295
d12.sb = "D1.sb(2)";
1286
1297
d12.sd1 = "D1.sd1(2)";
1289
1300
AsyncCallback cb = new AsyncCallback();
1290
1301
testPrx.begin_returnTest3(d3, d12).whenCompleted(cb.response_returnTest3, cb.exception);
1294
1305
test(rv != null);
1295
1306
test(rv.ice_id().Equals("::Test::B"));
1296
1307
test(rv.sb.Equals("D3.sb"));
1297
1308
test(rv.pb == rv);
1299
1310
Console.Out.WriteLine("ok");
1301
1312
Console.Out.Write("sequence slicing... ");
1302
1313
Console.Out.Flush();
1308
1319
B ss1b = new B();
1309
1320
ss1b.sb = "B.sb";
1310
1321
ss1b.pb = ss1b;
1312
1323
D1 ss1d1 = new D1();
1313
1324
ss1d1.sb = "D1.sb";
1314
1325
ss1d1.sd1 = "D1.sd1";
1315
1326
ss1d1.pb = ss1b;
1317
1328
D3 ss1d3 = new D3();
1318
1329
ss1d3.sb = "D3.sb";
1319
1330
ss1d3.sd3 = "D3.sd3";
1320
1331
ss1d3.pb = ss1b;
1322
1333
B ss2b = new B();
1323
1334
ss2b.sb = "B.sb";
1324
1335
ss2b.pb = ss1b;
1326
1337
D1 ss2d1 = new D1();
1327
1338
ss2d1.sb = "D1.sb";
1328
1339
ss2d1.sd1 = "D1.sd1";
1329
1340
ss2d1.pb = ss2b;
1331
1342
D3 ss2d3 = new D3();
1332
1343
ss2d3.sb = "D3.sb";
1333
1344
ss2d3.sd3 = "D3.sd3";
1334
1345
ss2d3.pb = ss2b;
1336
1347
ss1d1.pd1 = ss2b;
1337
1348
ss1d3.pd3 = ss2d1;
1339
1350
ss2d1.pd1 = ss1d3;
1340
1351
ss2d3.pd3 = ss1d1;
1342
1353
SS1 ss1 = new SS1();
1343
1354
ss1.s = new BSeq(3);
1344
1355
ss1.s.Add(ss1b);
1345
1356
ss1.s.Add(ss1d1);
1346
1357
ss1.s.Add(ss1d3);
1348
1359
SS2 ss2 = new SS2();
1349
1360
ss2.s = new BSeq(3);
1350
1361
ss2.s.Add(ss2b);
1351
1362
ss2.s.Add(ss2d1);
1352
1363
ss2.s.Add(ss2d3);
1354
1365
ss = testPrx.sequenceTest(ss1, ss2);
1357
1368
test(ss.c1 != null);
1358
1369
B ss1b2 = ss.c1.s[0];
1359
1370
B ss1d2 = ss.c1.s[1];
1360
1371
test(ss.c2 != null);
1361
1372
B ss1d4 = ss.c1.s[2];
1363
1374
test(ss.c2 != null);
1364
1375
B ss2b2 = ss.c2.s[0];
1365
1376
B ss2d2 = ss.c2.s[1];
1366
1377
B ss2d4 = ss.c2.s[2];
1368
1379
test(ss1b2.pb == ss1b2);
1369
1380
test(ss1d2.pb == ss1b2);
1370
1381
test(ss1d4.pb == ss1b2);
1372
1383
test(ss2b2.pb == ss1b2);
1373
1384
test(ss2d2.pb == ss2b2);
1374
1385
test(ss2d4.pb == ss2b2);
1376
1387
test(ss1b2.ice_id().Equals("::Test::B"));
1377
1388
test(ss1d2.ice_id().Equals("::Test::D1"));
1378
1389
test(ss1d4.ice_id().Equals("::Test::B"));
1380
1391
test(ss2b2.ice_id().Equals("::Test::B"));
1381
1392
test(ss2d2.ice_id().Equals("::Test::D1"));
1382
1393
test(ss2d4.ice_id().Equals("::Test::B"));
1449
1460
B ss1d5 = ss.c1.s[1];
1450
1461
test(ss.c2 != null);
1451
1462
B ss1d6 = ss.c1.s[2];
1453
1464
test(ss.c2 != null);
1454
1465
B ss2b3 = ss.c2.s[0];
1455
1466
B ss2d5 = ss.c2.s[1];
1456
1467
B ss2d6 = ss.c2.s[2];
1458
1469
test(ss1b3.pb == ss1b3);
1459
1470
test(ss1d6.pb == ss1b3);
1460
1471
test(ss1d6.pb == ss1b3);
1462
1473
test(ss2b3.pb == ss1b3);
1463
1474
test(ss2d6.pb == ss2b3);
1464
1475
test(ss2d6.pb == ss2b3);
1466
1477
test(ss1b3.ice_id().Equals("::Test::B"));
1467
1478
test(ss1d5.ice_id().Equals("::Test::D1"));
1468
1479
test(ss1d6.ice_id().Equals("::Test::B"));
1470
1481
test(ss2b3.ice_id().Equals("::Test::B"));
1471
1482
test(ss2d5.ice_id().Equals("::Test::D1"));
1472
1483
test(ss2d6.ice_id().Equals("::Test::B"));
1474
1485
Console.Out.WriteLine("ok");
1476
1487
Console.Out.Write("dictionary slicing... ");
1477
1488
Console.Out.Flush();