1// 2// Copyright (c) ZeroC, Inc. All rights reserved. 3// 4 5import {Ice} from "ice"; 6import {Test} from "./generated" 7import {TestHelper} from "../../../Common/TestHelper" 8const test = TestHelper.test; 9 10export class Client extends TestHelper 11{ 12 async allTests() 13 { 14 const out = this.getWriter(); 15 const communicator = this.communicator(); 16 17 out.write("testing stringToProxy... "); 18 const ref = "test:" + this.getTestEndpoint(); 19 const base = communicator.stringToProxy(ref); 20 test(base !== null); 21 out.writeLine("ok"); 22 23 out.write("testing checked cast... "); 24 const proxy = await Test.TestIntfPrx.checkedCast(base); 25 test(proxy !== null); 26 test(proxy.equals(base)); 27 out.writeLine("ok"); 28 29 out.write("testing enum values... "); 30 test(Test.ByteEnum.benum1.value === 0); 31 test(Test.ByteEnum.benum2.value === 1); 32 test(Test.ByteEnum.benum3.value === Test.ByteConst1); 33 test(Test.ByteEnum.benum4.value === Test.ByteConst1 + 1); 34 test(Test.ByteEnum.benum5.value === Test.ShortConst1); 35 test(Test.ByteEnum.benum6.value === Test.ShortConst1 + 1); 36 test(Test.ByteEnum.benum7.value === Test.IntConst1); 37 test(Test.ByteEnum.benum8.value === Test.IntConst1 + 1); 38 test(Test.ByteEnum.benum9.value === Test.LongConst1.low); 39 test(Test.ByteEnum.benum10.value === Test.LongConst1.low + 1); 40 test(Test.ByteEnum.benum11.value === Test.ByteConst2); 41 42 test(Test.ByteEnum.valueOf(0) === Test.ByteEnum.benum1); 43 test(Test.ByteEnum.valueOf(1) === Test.ByteEnum.benum2); 44 test(Test.ByteEnum.valueOf(Test.ByteConst1) === Test.ByteEnum.benum3); 45 test(Test.ByteEnum.valueOf(Test.ByteConst1 + 1) === Test.ByteEnum.benum4); 46 test(Test.ByteEnum.valueOf(Test.ShortConst1) === Test.ByteEnum.benum5); 47 test(Test.ByteEnum.valueOf(Test.ShortConst1 + 1) === Test.ByteEnum.benum6); 48 test(Test.ByteEnum.valueOf(Test.IntConst1) === Test.ByteEnum.benum7); 49 test(Test.ByteEnum.valueOf(Test.IntConst1 + 1) === Test.ByteEnum.benum8); 50 test(Test.ByteEnum.valueOf(Test.LongConst1.low) === Test.ByteEnum.benum9); 51 test(Test.ByteEnum.valueOf(Test.LongConst1.low + 1) === Test.ByteEnum.benum10); 52 test(Test.ByteEnum.valueOf(Test.ByteConst2) === Test.ByteEnum.benum11); 53 54 test(Test.ShortEnum.senum1.value === 3); 55 test(Test.ShortEnum.senum2.value === 4); 56 test(Test.ShortEnum.senum3.value === Test.ByteConst1); 57 test(Test.ShortEnum.senum4.value === Test.ByteConst1 + 1); 58 test(Test.ShortEnum.senum5.value === Test.ShortConst1); 59 test(Test.ShortEnum.senum6.value === Test.ShortConst1 + 1); 60 test(Test.ShortEnum.senum7.value === Test.IntConst1); 61 test(Test.ShortEnum.senum8.value === Test.IntConst1 + 1); 62 test(Test.ShortEnum.senum9.value === Test.LongConst1.low); 63 test(Test.ShortEnum.senum10.value === Test.LongConst1.low + 1); 64 test(Test.ShortEnum.senum11.value === Test.ShortConst2); 65 66 test(Test.ShortEnum.valueOf(3) === Test.ShortEnum.senum1); 67 test(Test.ShortEnum.valueOf(4) === Test.ShortEnum.senum2); 68 test(Test.ShortEnum.valueOf(Test.ByteConst1) === Test.ShortEnum.senum3); 69 test(Test.ShortEnum.valueOf(Test.ByteConst1 + 1) === Test.ShortEnum.senum4); 70 test(Test.ShortEnum.valueOf(Test.ShortConst1) === Test.ShortEnum.senum5); 71 test(Test.ShortEnum.valueOf(Test.ShortConst1 + 1) === Test.ShortEnum.senum6); 72 test(Test.ShortEnum.valueOf(Test.IntConst1) === Test.ShortEnum.senum7); 73 test(Test.ShortEnum.valueOf(Test.IntConst1 + 1) === Test.ShortEnum.senum8); 74 test(Test.ShortEnum.valueOf(Test.LongConst1.low) === Test.ShortEnum.senum9); 75 test(Test.ShortEnum.valueOf(Test.LongConst1.low + 1) === Test.ShortEnum.senum10); 76 test(Test.ShortEnum.valueOf(Test.ShortConst2) === Test.ShortEnum.senum11); 77 78 test(Test.IntEnum.ienum1.value === 0); 79 test(Test.IntEnum.ienum2.value === 1); 80 test(Test.IntEnum.ienum3.value === Test.ByteConst1); 81 test(Test.IntEnum.ienum4.value === Test.ByteConst1 + 1); 82 test(Test.IntEnum.ienum5.value === Test.ShortConst1); 83 test(Test.IntEnum.ienum6.value === Test.ShortConst1 + 1); 84 test(Test.IntEnum.ienum7.value === Test.IntConst1); 85 test(Test.IntEnum.ienum8.value === Test.IntConst1 + 1); 86 test(Test.IntEnum.ienum9.value === Test.LongConst1.low); 87 test(Test.IntEnum.ienum10.value === Test.LongConst1.low + 1); 88 test(Test.IntEnum.ienum11.value === Test.IntConst2); 89 test(Test.IntEnum.ienum12.value === Test.LongConst2.low); 90 91 test(Test.IntEnum.valueOf(0) === Test.IntEnum.ienum1); 92 test(Test.IntEnum.valueOf(1) === Test.IntEnum.ienum2); 93 test(Test.IntEnum.valueOf(Test.ByteConst1) === Test.IntEnum.ienum3); 94 test(Test.IntEnum.valueOf(Test.ByteConst1 + 1) === Test.IntEnum.ienum4); 95 test(Test.IntEnum.valueOf(Test.ShortConst1) === Test.IntEnum.ienum5); 96 test(Test.IntEnum.valueOf(Test.ShortConst1 + 1) === Test.IntEnum.ienum6); 97 test(Test.IntEnum.valueOf(Test.IntConst1) === Test.IntEnum.ienum7); 98 test(Test.IntEnum.valueOf(Test.IntConst1 + 1) === Test.IntEnum.ienum8); 99 test(Test.IntEnum.valueOf(Test.LongConst1.low) === Test.IntEnum.ienum9); 100 test(Test.IntEnum.valueOf(Test.LongConst1.low + 1) === Test.IntEnum.ienum10); 101 test(Test.IntEnum.valueOf(Test.IntConst2) === Test.IntEnum.ienum11); 102 test(Test.IntEnum.valueOf(Test.LongConst2.low) === Test.IntEnum.ienum12); 103 104 test(Test.SimpleEnum.red.value === 0); 105 test(Test.SimpleEnum.green.value === 1); 106 test(Test.SimpleEnum.blue.value === 2); 107 108 test(Test.SimpleEnum.valueOf(0) === Test.SimpleEnum.red); 109 test(Test.SimpleEnum.valueOf(1) === Test.SimpleEnum.green); 110 test(Test.SimpleEnum.valueOf(2) === Test.SimpleEnum.blue); 111 112 out.writeLine("ok"); 113 114 out.write("testing enum operations... "); 115 { 116 const [ret, b1] = await proxy.opByte(Test.ByteEnum.benum1); 117 test(ret === b1); 118 test(ret === Test.ByteEnum.benum1); 119 } 120 121 { 122 const [ret, b11] = await proxy.opByte(Test.ByteEnum.benum11); 123 test(ret === b11); 124 test(ret === Test.ByteEnum.benum11); 125 } 126 127 { 128 const [ret, s1] = await proxy.opShort(Test.ShortEnum.senum1); 129 test(ret === s1); 130 test(ret === Test.ShortEnum.senum1); 131 } 132 133 { 134 const [ret, s11] = await proxy.opShort(Test.ShortEnum.senum11); 135 test(ret === s11); 136 test(ret === Test.ShortEnum.senum11); 137 } 138 139 { 140 const [ret, i1] = await proxy.opInt(Test.IntEnum.ienum1); 141 test(ret === i1); 142 test(ret === Test.IntEnum.ienum1); 143 } 144 145 { 146 const [ret, i11] = await proxy.opInt(Test.IntEnum.ienum11); 147 test(ret === i11); 148 test(ret === Test.IntEnum.ienum11); 149 } 150 151 { 152 const [ret, i12] = await proxy.opInt(Test.IntEnum.ienum12); 153 test(ret === i12); 154 test(ret === Test.IntEnum.ienum12); 155 } 156 157 { 158 const [ret, g] = await proxy.opSimple(Test.SimpleEnum.green); 159 test(ret === g); 160 test(ret === Test.SimpleEnum.green); 161 } 162 out.writeLine("ok"); 163 await proxy.shutdown(); 164 } 165 166 async run(args:string[]) 167 { 168 let communicator:Ice.Communicator; 169 try 170 { 171 [communicator] = this.initialize(args); 172 await this.allTests(); 173 } 174 finally 175 { 176 if(communicator) 177 { 178 await communicator.destroy(); 179 } 180 } 181 } 182} 183