.method("default_func", &method_misc_test::default_func) ( default_arguments(std::string("text")), metadata(E_MetaData::SCRIPTABLE, true), metadata("Text", "Some funky description") ) ; } ///////////////////////////////////////////////////////////////////////////////////////// TEST_CASE("method - get_name()", "[method]") { method meth = type::get_by_name("method_misc_test").get_method("func"); CHECK(meth.get_name() == "func"); meth = type::get_by_name("method_misc_test").get_method("default_func"); CHECK(meth.get_name() == "default_func"); // negative test meth = type::get_by_name("method_misc_test").get_method(""); CHECK(meth.get_name() == ""); } ///////////////////////////////////////////////////////////////////////////////////////// TEST_CASE("method - is_static()", "[method]") { method meth = type::get_by_name("method_misc_test").get_method("static_func"); CHECK(meth.is_static() == true);
variant inst = t_meth.create({}); method_test& obj = *inst.get_value<method_test*>(); //////////////////////////////////////////////////////////// // invoke tests variant ret = t_meth.get_method("method_1").invoke(inst); REQUIRE(obj.method_1_called == true); REQUIRE(ret.is_valid() == true); REQUIRE(ret.is_type<void>() == true); //////////////////////////////////////// obj.method_1_called = false; // reset method meth = t_meth.get_method("method_1"); meth.invoke_variadic(inst, {}); REQUIRE(obj.method_1_called == true); REQUIRE(meth.get_name() == "method_1"); REQUIRE(meth.get_parameter_types().empty() == true); //////////////////////////////////////// t_meth.get_method("method_2").invoke(inst); REQUIRE(obj.method_2_called == true); obj.method_2_called = false; meth = t_meth.get_method("method_2"); meth.invoke_variadic(inst, {}); REQUIRE(obj.method_2_called == true); //////////////////////////////////////// t_meth.get_method("method_3").invoke(inst, 35); REQUIRE(obj.method_3_called == true); REQUIRE(obj.method_3_value == 35); obj.method_3_called = false;