#include #include #include "PrintTo_Qt.h" #include "codebuilder/NameManglingRules.h" #include "Pgsql_oids.h" using namespace testing; class NameManglingRulesTest : public ::testing::Test, public ::testing::WithParamInterface< std::tuple > { protected: virtual void SetUp() override { NameManglingRules r; auto p = GetParam(); //ReplaceRules replaceRules; // { {"[ -_]", QRegularExpression::OptimizeOnFirstUsageOption }, "", true } r.replaceRules; //QString replaceSpaceWith; ///< default is empty string which means remove spaces r.replaceSpaceWith = std::get<0>(p); //CollisionHandling CollisionHandling = CollisionHandling::Restrict; //CaseConversion caseConversion = CaseConversion::AsIs; ///< overall case conversion rule r.caseConversion = std::get<1>(p); //CaseConversion caseFirstChar = CaseConversion::AsIs; ///< case of the first char r.camelCase = std::get<2>(p); ///< removes underscores and make first char after underscore uppercase rules = r; } NameManglingRules rules; }; TEST_P(NameManglingRulesTest, test1) { ASSERT_EQ(rules.replaceSpaceWith, std::get<0>(GetParam())); } TEST_P(NameManglingRulesTest, test2) { ASSERT_EQ(rules.camelCase, std::get<2>(GetParam())); } INSTANTIATE_TEST_CASE_P(InstantiationName1, NameManglingRulesTest, ::testing::Combine( ::testing::Values("", "_", "+"), ::testing::Values(NameManglingRules::CaseConversion::AsIs, NameManglingRules::CaseConversion::Lower, NameManglingRules::CaseConversion::Upper), ::testing::Bool() ));