/****************************************************************************** * Copyright (c) 2000-2016 Ericsson Telecom AB * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Balasko, Jeno * Raduly, Csaba * ******************************************************************************/ module EnumTest { modulepar boolean EnumTest_verbose := false; #define verbose EnumTest_verbose #include "../macros.ttcnin" type enumerated PrimesUnder31 { int2(2), int3(3), int5(5), int7(7), int11(11), int13(13), int17(17), int19(19), int23(23), int29(29) } type enumerated NumbersUnder31 { int2(2), int3(3), int5(5), int7(7), int11(11), int13(13), int17(17), int19(19), int23(23), int29(29) } with { variant "useNumber" } type record of PrimesUnder31 Primes; type record of NumbersUnder31 Numbers; type record of PrimesUnder31 PrimesList with { variant "list" }; type record of NumbersUnder31 NumbersList with { variant "list" }; type component SAP {} /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ DECLARE_XER_ENCODERS(PrimesUnder31, p31) DECLARE_EXER_ENCODERS(PrimesUnder31, p31) DECLARE_XER_ENCODERS(Primes, p) DECLARE_EXER_ENCODERS(Primes, p) DECLARE_XER_ENCODERS(PrimesList, pl) DECLARE_EXER_ENCODERS(PrimesList, pl) DECLARE_XER_ENCODERS(NumbersUnder31, n31) DECLARE_EXER_ENCODERS(NumbersUnder31, n31) DECLARE_XER_ENCODERS(Numbers, n) DECLARE_EXER_ENCODERS(Numbers, n) DECLARE_XER_ENCODERS(NumbersList, nrl) DECLARE_EXER_ENCODERS(NumbersList, nrl) /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ const PrimesUnder31 p7 := int7; const NumbersUnder31 n23 := int23; const universal charstring p7_str_b := "\n\n"; const universal charstring p7_str := "int7\n\n"; const universal charstring n23_str_b := "\n\n"; const universal charstring n23_str := "23\n\n"; testcase bxer_enc_enum() runs on SAP { CHECK_METHOD(bxer_enc_p31, p7 , p7_str_b); CHECK_METHOD(bxer_enc_n31, n23, n23_str_b); } testcase bxer_dec_enum() runs on SAP { CHECK_DECODE(bxer_dec_p31, p7_str_b , PrimesUnder31 , p7); CHECK_DECODE(bxer_dec_n31, n23_str_b, NumbersUnder31, n23); } testcase exer_enc_enum() runs on SAP { CHECK_METHOD(exer_enc_p31, p7 , p7_str); CHECK_METHOD(exer_enc_n31, n23, n23_str); } testcase exer_dec_enum() runs on SAP { CHECK_DECODE(exer_dec_p31, p7_str , PrimesUnder31 , p7); CHECK_DECODE(exer_dec_n31, n23_str, NumbersUnder31, n23); } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ const Primes p0 := {} const Numbers n0 := {} const Primes p10 := { int2, int5 } const Numbers n42 := { int2, int3, int7 } const universal charstring p10_str_b := "\n" & "\t\n" & "\n\n"; const universal charstring p10_str := "\n" & "\tint2\n" & "\tint5\n" & "\n\n"; const universal charstring p10_str_ex := "\n" & "\t\n" & "\t\tint2\n" & "\t\n" & "\tint5\n" & "\n\n"; /* "\n" & */ const universal charstring n42_str_b := "\n" & "\t\n" & "\n\n"; const universal charstring n42_str := "\n" & "\t2\n" & "\t3\n" & "\t7\n" & "\n\n"; testcase bxer_enc_recofenum() runs on SAP { CHECK_METHOD(bxer_enc_p, p10, p10_str_b); CHECK_METHOD(bxer_enc_n, n42, n42_str_b); } testcase bxer_dec_recofenum() runs on SAP { CHECK_DECODE(bxer_dec_p, p10_str_b, Primes , p10); CHECK_DECODE(bxer_dec_n, n42_str_b, Numbers, n42); } testcase exer_enc_recofenum() runs on SAP { CHECK_METHOD(exer_enc_p, p10, p10_str); CHECK_METHOD(exer_enc_n, n42, n42_str); } testcase exer_dec_recofenum() runs on SAP { CHECK_DECODE(exer_dec_p, p10_str, Primes , p10); //can't do it yet: CHECK_DECODE(exer_dec_p, p10_str_ex, Primes , p10); CHECK_DECODE(exer_dec_n, n42_str, Numbers, n42); } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ const PrimesList pl10 := { int2, int5 } const NumbersList nl42 := { int2, int3, int7 } const universal charstring pl10_str_b := "\n" & "\t\n" & "\n\n"; const universal charstring nl42_str_b := "\n" & "\t\n" & "\n\n"; testcase bxer_enc_listofenum() runs on SAP { CHECK_METHOD(bxer_enc_pl, pl10, pl10_str_b); CHECK_METHOD(bxer_enc_nrl, nl42, nl42_str_b); } testcase bxer_dec_listofenum() runs on SAP { CHECK_DECODE(bxer_dec_p, p10_str_b, Primes , p10); CHECK_DECODE(bxer_dec_n, n42_str_b, Numbers, n42); } /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ control { execute(bxer_enc_enum()); execute(bxer_dec_enum()); execute(exer_enc_enum()); execute(exer_dec_enum()); execute(bxer_enc_recofenum()); execute(bxer_dec_recofenum()); execute(exer_enc_recofenum()); execute(exer_dec_recofenum()); execute(bxer_enc_listofenum()); execute(bxer_dec_listofenum()); } } with { encode "XML" }