Sync with 5.4.0
[deliverable/titan.core.git] / regression_test / XML / TTCNandXML / EnumTest.ttcnpp
CommitLineData
970ed795 1/******************************************************************************
3abe9331 2 * Copyright (c) 2000-2015 Ericsson Telecom AB
970ed795
EL
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 ******************************************************************************/
8module EnumTest {
9
10modulepar boolean EnumTest_verbose := false;
11#define verbose EnumTest_verbose
12
13#include "../macros.ttcnin"
14
15type enumerated PrimesUnder31 { int2(2), int3(3), int5(5), int7(7), int11(11),
16 int13(13), int17(17), int19(19), int23(23), int29(29) }
17
18type enumerated NumbersUnder31 { int2(2), int3(3), int5(5), int7(7), int11(11),
19 int13(13), int17(17), int19(19), int23(23), int29(29) }
20with {
21 variant "useNumber"
22}
23
24type record of PrimesUnder31 Primes;
25type record of NumbersUnder31 Numbers;
26
27type record of PrimesUnder31 PrimesList with { variant "list" };
28type record of NumbersUnder31 NumbersList with { variant "list" };
29
30type component SAP {}
31
32/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
33
34DECLARE_XER_ENCODERS(PrimesUnder31, p31)
35DECLARE_EXER_ENCODERS(PrimesUnder31, p31)
36
37DECLARE_XER_ENCODERS(Primes, p)
38DECLARE_EXER_ENCODERS(Primes, p)
39
40DECLARE_XER_ENCODERS(PrimesList, pl)
41DECLARE_EXER_ENCODERS(PrimesList, pl)
42
43DECLARE_XER_ENCODERS(NumbersUnder31, n31)
44DECLARE_EXER_ENCODERS(NumbersUnder31, n31)
45
46DECLARE_XER_ENCODERS(Numbers, n)
47DECLARE_EXER_ENCODERS(Numbers, n)
48
49DECLARE_XER_ENCODERS(NumbersList, nrl)
50DECLARE_EXER_ENCODERS(NumbersList, nrl)
51
52/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
53
54const PrimesUnder31 p7 := int7;
55const NumbersUnder31 n23 := int23;
56
57const universal charstring p7_str_b :=
58"<PrimesUnder31><int7/></PrimesUnder31>\n\n";
59
60const universal charstring p7_str :=
61"<PrimesUnder31>int7</PrimesUnder31>\n\n";
62
63const universal charstring n23_str_b :=
64"<NumbersUnder31><int23/></NumbersUnder31>\n\n";
65
66const universal charstring n23_str :=
67"<NumbersUnder31>23</NumbersUnder31>\n\n";
68
69testcase bxer_enc_enum() runs on SAP
70{
71 CHECK_METHOD(bxer_enc_p31, p7 , p7_str_b);
72 CHECK_METHOD(bxer_enc_n31, n23, n23_str_b);
73}
74
75testcase bxer_dec_enum() runs on SAP
76{
77 CHECK_DECODE(bxer_dec_p31, p7_str_b , PrimesUnder31 , p7);
78 CHECK_DECODE(bxer_dec_n31, n23_str_b, NumbersUnder31, n23);
79}
80
81testcase exer_enc_enum() runs on SAP
82{
83 CHECK_METHOD(exer_enc_p31, p7 , p7_str);
84 CHECK_METHOD(exer_enc_n31, n23, n23_str);
85}
86
87testcase exer_dec_enum() runs on SAP
88{
89 CHECK_DECODE(exer_dec_p31, p7_str , PrimesUnder31 , p7);
90 CHECK_DECODE(exer_dec_n31, n23_str, NumbersUnder31, n23);
91}
92
93/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
94
95const Primes p0 := {}
96const Numbers n0 := {}
97
98const Primes p10 := { int2, int5 }
99const Numbers n42 := { int2, int3, int7 }
100
101const universal charstring p10_str_b :=
102"<Primes>\n" &
103"\t<int2/><int5/>\n" &
104"</Primes>\n\n";
105
106const universal charstring p10_str :=
107"<Primes>\n" &
108"\t<PrimesUnder31>int2</PrimesUnder31>\n" &
109"\t<PrimesUnder31>int5</PrimesUnder31>\n" &
110"</Primes>\n\n";
111
112const universal charstring p10_str_ex :=
113"<Primes>\n" &
114"\t<PrimesUnder31>\n" &
115"\t\tint2\n" &
116"\t</PrimesUnder31>\n" &
117"\t<PrimesUnder31>int5</PrimesUnder31>\n" &
118"</Primes>\n\n";
119
120
121/*
122"\n" &
123*/
124
125const universal charstring n42_str_b :=
126"<Numbers>\n" &
127"\t<int2/><int3/><int7/>\n" &
128"</Numbers>\n\n";
129
130const universal charstring n42_str :=
131"<Numbers>\n" &
132"\t<NumbersUnder31>2</NumbersUnder31>\n" &
133"\t<NumbersUnder31>3</NumbersUnder31>\n" &
134"\t<NumbersUnder31>7</NumbersUnder31>\n" &
135"</Numbers>\n\n";
136
137testcase bxer_enc_recofenum() runs on SAP
138{
139 CHECK_METHOD(bxer_enc_p, p10, p10_str_b);
140 CHECK_METHOD(bxer_enc_n, n42, n42_str_b);
141}
142
143testcase bxer_dec_recofenum() runs on SAP
144{
145 CHECK_DECODE(bxer_dec_p, p10_str_b, Primes , p10);
146 CHECK_DECODE(bxer_dec_n, n42_str_b, Numbers, n42);
147}
148
149testcase exer_enc_recofenum() runs on SAP
150{
151 CHECK_METHOD(exer_enc_p, p10, p10_str);
152 CHECK_METHOD(exer_enc_n, n42, n42_str);
153}
154
155testcase exer_dec_recofenum() runs on SAP
156{
157 CHECK_DECODE(exer_dec_p, p10_str, Primes , p10);
158//can't do it yet: CHECK_DECODE(exer_dec_p, p10_str_ex, Primes , p10);
159 CHECK_DECODE(exer_dec_n, n42_str, Numbers, n42);
160}
161
162/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
163
164const PrimesList pl10 := { int2, int5 }
165const NumbersList nl42 := { int2, int3, int7 }
166
167const universal charstring pl10_str_b :=
168"<PrimesList>\n" &
169"\t<int2/><int5/>\n" &
170"</PrimesList>\n\n";
171
172const universal charstring nl42_str_b :=
173"<NumbersList>\n" &
174"\t<int2/><int3/><int7/>\n" &
175"</NumbersList>\n\n";
176
177testcase bxer_enc_listofenum() runs on SAP
178{
179 CHECK_METHOD(bxer_enc_pl, pl10, pl10_str_b);
180 CHECK_METHOD(bxer_enc_nrl, nl42, nl42_str_b);
181}
182
183testcase bxer_dec_listofenum() runs on SAP
184{
185 CHECK_DECODE(bxer_dec_p, p10_str_b, Primes , p10);
186 CHECK_DECODE(bxer_dec_n, n42_str_b, Numbers, n42);
187}
188
189/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
190
191control {
192 execute(bxer_enc_enum());
193 execute(bxer_dec_enum());
194
195 execute(exer_enc_enum());
196 execute(exer_dec_enum());
197
198 execute(bxer_enc_recofenum());
199 execute(bxer_dec_recofenum());
200
201 execute(exer_enc_recofenum());
202 execute(exer_dec_recofenum());
203
204 execute(bxer_enc_listofenum());
205 execute(bxer_dec_listofenum());
206}
207
208}
209with { encode "XML" }
210
This page took 0.034217 seconds and 5 git commands to generate.