1#
2# Copyright (c) ZeroC, Inc. All rights reserved.
3#
4
5import sys, string, re, traceback, Ice, Test
6
7def test(b):
8    if not b:
9        raise RuntimeError('test assertion failed')
10
11def allTests(helper, communicator):
12    ref = "test:{0}".format(helper.getTestEndpoint())
13    base = communicator.stringToProxy(ref)
14    test(base)
15
16    proxy = Test.TestIntfPrx.checkedCast(base)
17    test(proxy)
18
19    sys.stdout.write("testing enum values... ")
20    sys.stdout.flush()
21
22    test(Test.ByteEnum.benum1.value == 0);
23    test(Test.ByteEnum.benum2.value == 1);
24    test(Test.ByteEnum.benum3.value == Test.ByteConst1);
25    test(Test.ByteEnum.benum4.value == Test.ByteConst1 + 1);
26    test(Test.ByteEnum.benum5.value == Test.ShortConst1);
27    test(Test.ByteEnum.benum6.value == Test.ShortConst1 + 1);
28    test(Test.ByteEnum.benum7.value == Test.IntConst1);
29    test(Test.ByteEnum.benum8.value == Test.IntConst1 + 1);
30    test(Test.ByteEnum.benum9.value == Test.LongConst1);
31    test(Test.ByteEnum.benum10.value == Test.LongConst1 + 1);
32    test(Test.ByteEnum.benum11.value == Test.ByteConst2);
33
34    test(Test.ByteEnum.valueOf(0) == Test.ByteEnum.benum1);
35    test(Test.ByteEnum.valueOf(1) == Test.ByteEnum.benum2);
36    test(Test.ByteEnum.valueOf(Test.ByteConst1) == Test.ByteEnum.benum3);
37    test(Test.ByteEnum.valueOf(Test.ByteConst1 + 1) == Test.ByteEnum.benum4);
38    test(Test.ByteEnum.valueOf(Test.ShortConst1) == Test.ByteEnum.benum5);
39    test(Test.ByteEnum.valueOf(Test.ShortConst1 + 1) == Test.ByteEnum.benum6);
40    test(Test.ByteEnum.valueOf(Test.IntConst1) == Test.ByteEnum.benum7);
41    test(Test.ByteEnum.valueOf(Test.IntConst1 + 1) == Test.ByteEnum.benum8);
42    test(Test.ByteEnum.valueOf(Test.LongConst1) == Test.ByteEnum.benum9);
43    test(Test.ByteEnum.valueOf(Test.LongConst1 + 1) == Test.ByteEnum.benum10);
44    test(Test.ByteEnum.valueOf(Test.ByteConst2) == Test.ByteEnum.benum11);
45
46    test(Test.ShortEnum.senum1.value == 3);
47    test(Test.ShortEnum.senum2.value == 4);
48    test(Test.ShortEnum.senum3.value == Test.ByteConst1);
49    test(Test.ShortEnum.senum4.value == Test.ByteConst1 + 1);
50    test(Test.ShortEnum.senum5.value == Test.ShortConst1);
51    test(Test.ShortEnum.senum6.value == Test.ShortConst1 + 1);
52    test(Test.ShortEnum.senum7.value == Test.IntConst1);
53    test(Test.ShortEnum.senum8.value == Test.IntConst1 + 1);
54    test(Test.ShortEnum.senum9.value == Test.LongConst1);
55    test(Test.ShortEnum.senum10.value == Test.LongConst1 + 1);
56    test(Test.ShortEnum.senum11.value == Test.ShortConst2);
57
58    test(Test.ShortEnum.valueOf(3) == Test.ShortEnum.senum1);
59    test(Test.ShortEnum.valueOf(4) == Test.ShortEnum.senum2);
60    test(Test.ShortEnum.valueOf(Test.ByteConst1) == Test.ShortEnum.senum3);
61    test(Test.ShortEnum.valueOf(Test.ByteConst1 + 1) == Test.ShortEnum.senum4);
62    test(Test.ShortEnum.valueOf(Test.ShortConst1) == Test.ShortEnum.senum5);
63    test(Test.ShortEnum.valueOf(Test.ShortConst1 + 1) == Test.ShortEnum.senum6);
64    test(Test.ShortEnum.valueOf(Test.IntConst1) == Test.ShortEnum.senum7);
65    test(Test.ShortEnum.valueOf(Test.IntConst1 + 1) == Test.ShortEnum.senum8);
66    test(Test.ShortEnum.valueOf(Test.LongConst1) == Test.ShortEnum.senum9);
67    test(Test.ShortEnum.valueOf(Test.LongConst1 + 1) == Test.ShortEnum.senum10);
68    test(Test.ShortEnum.valueOf(Test.ShortConst2) == Test.ShortEnum.senum11);
69
70    test(Test.IntEnum.ienum1.value == 0);
71    test(Test.IntEnum.ienum2.value == 1);
72    test(Test.IntEnum.ienum3.value == Test.ByteConst1);
73    test(Test.IntEnum.ienum4.value == Test.ByteConst1 + 1);
74    test(Test.IntEnum.ienum5.value == Test.ShortConst1);
75    test(Test.IntEnum.ienum6.value == Test.ShortConst1 + 1);
76    test(Test.IntEnum.ienum7.value == Test.IntConst1);
77    test(Test.IntEnum.ienum8.value == Test.IntConst1 + 1);
78    test(Test.IntEnum.ienum9.value == Test.LongConst1);
79    test(Test.IntEnum.ienum10.value == Test.LongConst1 + 1);
80    test(Test.IntEnum.ienum11.value == Test.IntConst2);
81    test(Test.IntEnum.ienum12.value == Test.LongConst2);
82
83    test(Test.IntEnum.valueOf(0) == Test.IntEnum.ienum1);
84    test(Test.IntEnum.valueOf(1) == Test.IntEnum.ienum2);
85    test(Test.IntEnum.valueOf(Test.ByteConst1) == Test.IntEnum.ienum3);
86    test(Test.IntEnum.valueOf(Test.ByteConst1 + 1) == Test.IntEnum.ienum4);
87    test(Test.IntEnum.valueOf(Test.ShortConst1) == Test.IntEnum.ienum5);
88    test(Test.IntEnum.valueOf(Test.ShortConst1 + 1) == Test.IntEnum.ienum6);
89    test(Test.IntEnum.valueOf(Test.IntConst1) == Test.IntEnum.ienum7);
90    test(Test.IntEnum.valueOf(Test.IntConst1 + 1) == Test.IntEnum.ienum8);
91    test(Test.IntEnum.valueOf(Test.LongConst1) == Test.IntEnum.ienum9);
92    test(Test.IntEnum.valueOf(Test.LongConst1 + 1) == Test.IntEnum.ienum10);
93    test(Test.IntEnum.valueOf(Test.IntConst2) == Test.IntEnum.ienum11);
94    test(Test.IntEnum.valueOf(Test.LongConst2) == Test.IntEnum.ienum12);
95
96    test(Test.SimpleEnum.red.value == 0);
97    test(Test.SimpleEnum.green.value == 1);
98    test(Test.SimpleEnum.blue.value == 2);
99
100    test(Test.SimpleEnum.valueOf(0) == Test.SimpleEnum.red);
101    test(Test.SimpleEnum.valueOf(1) == Test.SimpleEnum.green);
102    test(Test.SimpleEnum.valueOf(2) == Test.SimpleEnum.blue);
103
104    print("ok")
105
106    sys.stdout.write("testing enum operations... ")
107    sys.stdout.flush()
108
109    test(proxy.opByte(Test.ByteEnum.benum1) == (Test.ByteEnum.benum1, Test.ByteEnum.benum1));
110    test(proxy.opByte(Test.ByteEnum.benum11) == (Test.ByteEnum.benum11, Test.ByteEnum.benum11));
111
112    test(proxy.opShort(Test.ShortEnum.senum1) == (Test.ShortEnum.senum1, Test.ShortEnum.senum1));
113    test(proxy.opShort(Test.ShortEnum.senum11) == (Test.ShortEnum.senum11, Test.ShortEnum.senum11));
114
115    test(proxy.opInt(Test.IntEnum.ienum1) == (Test.IntEnum.ienum1, Test.IntEnum.ienum1));
116    test(proxy.opInt(Test.IntEnum.ienum11) == (Test.IntEnum.ienum11, Test.IntEnum.ienum11));
117    test(proxy.opInt(Test.IntEnum.ienum12) == (Test.IntEnum.ienum12, Test.IntEnum.ienum12));
118
119    test(proxy.opSimple(Test.SimpleEnum.green) == (Test.SimpleEnum.green, Test.SimpleEnum.green));
120
121    print("ok")
122
123    sys.stdout.write("testing enum sequences operations... ")
124    sys.stdout.flush()
125
126    b1 = [ Test.ByteEnum.benum1, Test.ByteEnum.benum2, Test.ByteEnum.benum3, Test.ByteEnum.benum4, Test.ByteEnum.benum5,
127           Test.ByteEnum.benum6, Test.ByteEnum.benum7, Test.ByteEnum.benum8, Test.ByteEnum.benum9, Test.ByteEnum.benum10,
128           Test.ByteEnum.benum11 ]
129
130    (b2, b3) = proxy.opByteSeq(b1)
131
132    for i in range(len(b1)):
133        test(b1[i] == b2[i])
134        test(b1[i] == b3[i])
135
136    s1 = [ Test.ShortEnum.senum1, Test.ShortEnum.senum2, Test.ShortEnum.senum3, Test.ShortEnum.senum4,
137           Test.ShortEnum.senum5, Test.ShortEnum.senum6, Test.ShortEnum.senum7, Test.ShortEnum.senum8,
138           Test.ShortEnum.senum9, Test.ShortEnum.senum10, Test.ShortEnum.senum11 ]
139
140    (s2, s3) = proxy.opShortSeq(s1)
141
142    for i in range(len(s1)):
143        test(s1[i] == s2[i])
144        test(s1[i] == s3[i])
145
146    i1 = [ Test.IntEnum.ienum1, Test.IntEnum.ienum2, Test.IntEnum.ienum3, Test.IntEnum.ienum4,
147           Test.IntEnum.ienum5, Test.IntEnum.ienum6, Test.IntEnum.ienum7, Test.IntEnum.ienum8,
148           Test.IntEnum.ienum9, Test.IntEnum.ienum10, Test.IntEnum.ienum11 ]
149
150    (i2, i3) = proxy.opIntSeq(i1)
151
152    for i in range(len(i1)):
153        test(i1[i] == i2[i])
154        test(i1[i] == i3[i])
155
156    s1 = [ Test.SimpleEnum.red, Test.SimpleEnum.green, Test.SimpleEnum.blue ]
157
158    (s2, s3) = proxy.opSimpleSeq(s1)
159
160    for i in range(len(s1)):
161        test(s1[i] == s2[i])
162        test(s1[i] == s3[i])
163    print("ok")
164
165    return proxy
166