Sync with 5.2.0
[deliverable/titan.core.git] / regression_test / XML / XER / Txerenum.ttcnpp
CommitLineData
970ed795
EL
1/******************************************************************************
2 * Copyright (c) 2000-2014 Ericsson Telecom AB
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 Txerenum {
9
10modulepar boolean Txerenum_verbose := false;
11#define verbose Txerenum_verbose
12
13#include "../macros.ttcnin"
14
15import from AsnValues all;
16type component TENUM {}
17
18type enumerated enumeger { Fred, Barney, Wilma, Betty }
19
20DECLARE_XER_ENCODERS (enumeger, enum);
21DECLARE_EXER_ENCODERS(enumeger, enum);
22DECLARE_XER_ENCODERS (renum, renum);
23DECLARE_EXER_ENCODERS(renum, renum);
24
25type record renum {
26 enumeger e optional
27}
28
29const charstring e_freddy := "<enumeger><Fred/></enumeger>\n";
30const charstring e_barney := "<enumeger><Barney/></enumeger>\n";
31const charstring e_wilma := "<enumeger><Wilma/></enumeger>\n";
32const charstring e_betty := "<enumeger><Betty/></enumeger>\n";
33
34// GLOBAL-DEFAULTS MODIFIED-ENCODINGS implied for TTCN module,
35// hence TextEnumerated (X.693 amd1 clause 10.2.7 c)
36const charstring exer_freddy := "<enumeger>Fred</enumeger>\n\n";
37const charstring exer_barney := "<enumeger>Barney</enumeger>\n\n";
38const charstring exer_wilma := "<enumeger>Wilma</enumeger>\n\n";
39const charstring exer_betty := "<enumeger>Betty</enumeger>\n\n";
40
41testcase encode_enum() runs on TENUM
42{
43 var enumeger szaki := Fred;
44 var universal charstring expected := e_freddy;
45 CHECK_METHOD(cxer_enc_enum, szaki, expected);
46 CHECK_METHOD(bxer_enc_enum, szaki, expected & lf);
47 expected := exer_freddy;
48 CHECK_METHOD(exer_enc_enum, szaki, expected);
49
50 szaki := Barney;
51 expected := e_barney;
52 CHECK_METHOD(cxer_enc_enum, szaki, expected);
53 CHECK_METHOD(bxer_enc_enum, szaki, expected & lf);
54 expected := exer_barney;
55 CHECK_METHOD(exer_enc_enum, szaki, expected);
56
57 szaki := Wilma;
58 expected := e_wilma;
59 CHECK_METHOD(cxer_enc_enum, szaki, expected);
60 CHECK_METHOD(bxer_enc_enum, szaki, expected & lf);
61 expected := exer_wilma;
62 CHECK_METHOD(exer_enc_enum, szaki, expected);
63
64 szaki := Betty;
65 expected := e_betty;
66 CHECK_METHOD(cxer_enc_enum, szaki, expected);
67 CHECK_METHOD(bxer_enc_enum, szaki, expected & lf);
68 expected := exer_betty;
69 CHECK_METHOD(exer_enc_enum, szaki, expected);
70}
71
72testcase decode_enum() runs on TENUM
73{
74 var enumeger expected := Fred;
75 CHECK_DECODE2( enum, e_freddy, enumeger, expected);
76 CHECK_DECODE(exer_dec_enum, exer_freddy, enumeger, expected);
77
78 expected := Barney;
79 CHECK_DECODE2( enum, e_barney, enumeger, expected);
80 CHECK_DECODE(exer_dec_enum, exer_barney, enumeger, expected);
81
82 expected := Wilma;
83 CHECK_DECODE2( enum, e_wilma, enumeger, expected);
84 CHECK_DECODE(exer_dec_enum, exer_wilma, enumeger, expected);
85
86 expected := Betty;
87 CHECK_DECODE2( enum, e_betty, enumeger, expected);
88 CHECK_DECODE(exer_dec_enum, exer_betty, enumeger, expected);
89}
90
91const charstring e_mpty := "<renum/>\n";
92testcase encode_enum_omit() runs on TENUM
93{
94 var renum rec := { omit };
95 var universal charstring expected := e_mpty;
96 CHECK_METHOD(cxer_enc_renum, rec, expected);
97 CHECK_METHOD(bxer_enc_renum, rec, expected & lf);
98 CHECK_METHOD(exer_enc_renum, rec, expected & lf);
99}
100
101testcase decode_enum_omit() runs on TENUM
102{
103 var renum expected := { omit };
104 CHECK_DECODE2( renum, e_mpty, renum, expected);
105 CHECK_DECODE(exer_dec_renum, e_mpty, renum, expected);
106}
107
108// - - - - - - - - - - - verdicttype acts like an enum - - - - - - - - - - -
109
110DECLARE_XER_ENCODERS(verdicttype, verdi)
111DECLARE_EXER_ENCODERS(verdicttype, verdi)
112
113const verdicttype nix := none;
114const verdicttype ok := pass;
115const verdicttype dunno:= inconc;
116const verdicttype epic := fail;
117const verdicttype yikes:= error;
118
119const universal charstring str_none := "<verdicttype>none</verdicttype>\n";
120const universal charstring str_ok := "<verdicttype>pass</verdicttype>\n";
121const universal charstring str_dunno:= "<verdicttype>inconc</verdicttype>\n";
122const universal charstring str_epic := "<verdicttype>fail</verdicttype>\n";
123const universal charstring str_yikes:= "<verdicttype>error</verdicttype>\n";
124
125testcase encode_verdict() runs on TENUM
126{
127 CHECK_METHOD(bxer_enc_verdi, nix , str_none );
128 CHECK_METHOD(bxer_enc_verdi, ok , str_ok );
129 CHECK_METHOD(bxer_enc_verdi, dunno, str_dunno);
130 CHECK_METHOD(bxer_enc_verdi, epic , str_epic );
131 CHECK_METHOD(bxer_enc_verdi, yikes, str_yikes);
132 // TODO other values
133}
134
135testcase decode_verdict() runs on TENUM
136{
137 CHECK_DECODE(bxer_dec_verdi, str_none , verdicttype, nix );
138 CHECK_DECODE(bxer_dec_verdi, str_ok , verdicttype, ok );
139 CHECK_DECODE(bxer_dec_verdi, str_dunno, verdicttype, dunno);
140 CHECK_DECODE(bxer_dec_verdi, str_epic , verdicttype, epic );
141 CHECK_DECODE(bxer_dec_verdi, str_yikes, verdicttype, yikes);
142}
143
144control {
145 execute(encode_enum());
146 execute(decode_enum());
147 execute(encode_enum_omit())
148 execute(decode_enum_omit())
149 execute(encode_verdict());
150 execute(decode_verdict());
151}
152
153}
154with {
155 encode "XML";
156 extension "version R8E";
157}
This page took 0.046336 seconds and 5 git commands to generate.