/** * @author Edouard DUPIN * @copyright 2017, Edouard DUPIN, all right reserved * @license MPL-2 (see license file) */ #include #include #include "testInterface.hpp" TEST(testVariable, noVariable) { testInterface system; bool ret = system.execute("// plop"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), false); } TEST(testVariable, declare_int) { testInterface system; bool ret = system.execute("variable int result;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); } TEST(testVariable, declare_int_init_1) { testInterface system; bool ret = system.execute("variable int result(55);"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 55); } TEST(testVariable, declare_int_init_2) { testInterface system; bool ret = system.execute("variable int result = 55;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 55); } TEST(testVariable, declare_int32_init_1) { testInterface system; bool ret = system.execute("variable int32 result(55);"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 55); } TEST(testVariable, declare_int32_init_2) { testInterface system; bool ret = system.execute("variable int32 result = 55;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 55); } TEST(testVariable, declare_int64_init_1) { testInterface system; bool ret = system.execute("variable int64 result(55);"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger64("result"), true); EXPECT_EQ(system.getInteger64("result"), 55); } TEST(testVariable, declare_int64_init_2) { testInterface system; bool ret = system.execute("variable int64 result = 55;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger64("result"), true); EXPECT_EQ(system.getInteger64("result"), 55); } TEST(testVariable, boolean_true_init_1) { testInterface system; bool ret = system.execute("variable bool result(true);"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isBoolean("result"), true); EXPECT_EQ(system.getBoolean("result"), true); } TEST(testVariable, boolean_true_init_2) { testInterface system; bool ret = system.execute("variable bool result = true;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isBoolean("result"), true); EXPECT_EQ(system.getBoolean("result"), true); } TEST(testVariable, boolean_false_init_1) { testInterface system; bool ret = system.execute("variable bool result(false);"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isBoolean("result"), true); EXPECT_EQ(system.getBoolean("result"), false); } TEST(testVariable, boolean_false_init_2) { testInterface system; bool ret = system.execute("variable bool result = false;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isBoolean("result"), true); EXPECT_EQ(system.getBoolean("result"), false); } TEST(testVariable, integer_min_int32) { testInterface system; bool ret = system.execute("variable int32 result = -2147483648;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), -2147483648); } TEST(testVariable, integer_max_int32) { testInterface system; bool ret = system.execute("variable int32 result = 2147483647;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 2147483647); } TEST(testVariable, integer_hexadecmal_1) { testInterface system; bool ret = system.execute("variable int32 result = 0x12345678;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 0x12345678); } TEST(testVariable, integer_hexadecmal_2) { testInterface system; bool ret = system.execute("variable int32 result = 0xABCDEF00;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 0xABCDEF00); } TEST(testVariable, integer_hexadecmal_3) { testInterface system; bool ret = system.execute("variable int32 result = -0x5;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), -5); } TEST(testVariable, integer_hexadecmal_4) { testInterface system; bool ret = system.execute("variable int32 result = 0xFFFFFFFF;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), -1); } TEST(testVariable, integer_float32_0) { testInterface system; bool ret = system.execute("variable float32 result(0.32452);"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isFloat("result"), true); EXPECT_EQ(system.getFloat("result"), 0.32452); } TEST(testVariable, integer_float32_1) { testInterface system; bool ret = system.execute("variable float32 result = 0.32452;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isFloat("result"), true); EXPECT_EQ(system.getFloat("result"), 0.32452); } TEST(testVariable, integer_float32_2) { testInterface system; bool ret = system.execute("variable float32 result = -992345.23;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isDouble("result"), true); EXPECT_EQ(system.getDouble("result"), -992345.23); } TEST(testVariable, integer_float32_3) { testInterface system; bool ret = system.execute("variable float32 result = 3.45e2;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isDouble("result"), true); EXPECT_EQ(system.getDouble("result"), 3.45e2); } TEST(testVariable, integer_float_1) { testInterface system; bool ret = system.execute("variable float result = 3.45e2;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isDouble("result"), true); EXPECT_EQ(system.getDouble("result"), 3.45e2); } TEST(testVariable, integer_float64_0) { testInterface system; bool ret = system.execute("variable float64 result(0.32452);"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isDouble("result"), true); EXPECT_EQ(system.getDouble("result"), 0.32452); } TEST(testVariable, integer_float64_1) { testInterface system; bool ret = system.execute("variable float64 result = 0.32452;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isDouble("result"), true); EXPECT_EQ(system.getDouble("result"), 0.32452); } TEST(testVariable, integer_float64_2) { testInterface system; bool ret = system.execute("variable float64 result = -992345.23;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isDouble("result"), true); EXPECT_EQ(system.getDouble("result"), -992345.23); } TEST(testVariable, integer_float64_3) { testInterface system; bool ret = system.execute("variable float64 result = 3.45e2;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isDouble("result"), true); EXPECT_EQ(system.getDouble("result"), 3.45e2); } TEST(testVariable, integer_octal_1) { testInterface system; bool ret = system.execute("variable int32 result = 0377;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 255); } /* TEST(testVariable, null_element) { testInterface system; bool ret = system.execute("variable int32 result = null;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isNull("result"), true); } */ TEST(testVariable, string_0) { testInterface system; bool ret = system.execute("variable string result(\"hello\");"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isString("result"), true); EXPECT_EQ(system.getString("result"), "hello"); } TEST(testVariable, string_1) { testInterface system; bool ret = system.execute("variable string result = \"hello\";"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isString("result"), true); EXPECT_EQ(system.getString("result"), "hello"); } TEST(testVariable, string_2) { testInterface system; bool ret = system.execute("variable string result = 'hello';"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isString("result"), true); EXPECT_EQ(system.getString("result"), "hello"); } TEST(testVariable, string_1_special_element) { testInterface system; bool ret = system.execute("variable string result = \"h\\\\n\\\\r\\\"'ello\";"); //TEST_INFO(" '" << system.getString("result") << "'"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isString("result"), true); EXPECT_EQ(system.getString("result"), "h\\n\\r\"'ello"); } TEST(testVariable, string_2_special_element) { testInterface system; bool ret = system.execute("variable string result = 'h\\\\n\\\\r\"\\\'ello';"); //TEST_INFO(" '" << system.getString("result") << "'"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isString("result"), true); EXPECT_EQ(system.getString("result"), "h\\n\\r\"'ello"); } ////////////////////////////////////////////////////// // undefined ////////////////////////////////////////////////////// /* TEST(testVariable, undef_1) { testInterface system; bool ret = system.execute("variable result;"); //TEST_INFO(" '" << system.getString("result") << "'"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isUndefined("result"), true); } TEST(testVariable, undef_2) { testInterface system; bool ret = system.execute("variable result; if ((\"\"+result) != \"undefined\") result=1;"); //TEST_INFO(" '" << system.getString("result") << "'"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isUndefined("result"), true); } TEST(testVariable, undef_property) { testInterface system; bool ret = system.execute("variable result={}; if ((\"\"+result.noProperty) != \"undefined\") result=1;"); //TEST_INFO(" '" << system.getString("result") << "'"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), false); } TEST(testVariable, undef_to_null) { testInterface system; bool ret = system.execute("variable result; if (result == null) result=1;"); //TEST_INFO(" '" << system.getString("result") << "'"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); } TEST(testVariable, undef_to_null_type) { testInterface system; bool ret = system.execute("variable result; if (result === null) result=1;"); //TEST_INFO(" '" << system.getString("result") << "'"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), false); } */ ////////////////////////////////////////////////////// // null ////////////////////////////////////////////////////// /* TEST(testVariable, undefined_and_null_1) { testInterface system; bool ret = system.execute("variable result = 0; if (undefined == null) result=1;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 1); } TEST(testVariable, undefined_and_null_2) { testInterface system; bool ret = system.execute("variable result = 0; if (undefined === null) result=1;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 0); } TEST(testVariable, undefined_and_null_3) { testInterface system; bool ret = system.execute("variable result = 0; if (null != undefined) result=1;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 0); } TEST(testVariable, undefined_and_null_4) { testInterface system; bool ret = system.execute("variable result = 0; if (null === undefined) result=1;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isInteger32("result"), true); EXPECT_EQ(system.getInteger32("result"), 0); } */ ////////////////////////////////////////////////////// // array ////////////////////////////////////////////////////// /* TEST(testVariable, array_declare_1) { testInterface system; bool ret = system.execute("variable result = [];"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isArray("result"), true); } TEST(testVariable, array_declare_2) { testInterface system; bool ret = system.execute("variable result = [10,11,12]; variable a=result[0]; variable b=result[2];"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isArray("result"), true); EXPECT_EQ(system.exist("a"), true); EXPECT_EQ(system.isInteger32("a"), true); EXPECT_EQ(system.getInteger32("a"), 10); EXPECT_EQ(system.exist("b"), true); EXPECT_EQ(system.isInteger32("b"), true); EXPECT_EQ(system.getInteger32("b"), 12); } TEST(testVariable, array_declare_polymorph) { testInterface system; bool ret = system.execute("variable result = [10,11.55,\"hello\"]; variable a=result[0]; variable b=result[1]; variable c=result[2];"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isArray("result"), true); EXPECT_EQ(system.exist("a"), true); EXPECT_EQ(system.isInteger32("a"), true); EXPECT_EQ(system.getInteger32("a"), 10); EXPECT_EQ(system.exist("b"), true); EXPECT_EQ(system.isDouble("b"), true); EXPECT_EQ(system.getDouble("b"), 11.55); EXPECT_EQ(system.exist("c"), true); EXPECT_EQ(system.isString("c"), true); EXPECT_EQ(system.getString("c"), "hello"); } TEST(testVariable, array_asign) { testInterface system; bool ret = system.execute("variable result = [10,11]; result[0] = 5; result[5] = 99; variable a=result[0]; variable b=result[5]; variable c=result[1]; result[1] = 4;"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isArray("result"), true); EXPECT_EQ(system.exist("a"), true); EXPECT_EQ(system.isInteger32("a"), true); EXPECT_EQ(system.getInteger32("a"), 5); EXPECT_EQ(system.exist("b"), true); EXPECT_EQ(system.isInteger32("b"), true); EXPECT_EQ(system.getInteger32("b"), 99); EXPECT_EQ(system.exist("c"), true); EXPECT_EQ(system.isInteger32("c"), true); EXPECT_EQ(system.getInteger32("c"), 11); } TEST(testVariable, array_asign_reference) { testInterface system; bool ret = system.execute("variable result = [10,11]; variable result2=result; result2[0] = 5; variable a=result[0];"); EXPECT_EQ(ret, true); EXPECT_EQ(system.exist("result"), true); EXPECT_EQ(system.isArray("result"), true); EXPECT_EQ(system.exist("a"), true); EXPECT_EQ(system.isInteger32("a"), true); EXPECT_EQ(system.getInteger32("a"), 5); } */