Add tests for empty version condition comparisons

Closes #604.
This commit is contained in:
Oliver Hamlet
2016-07-12 17:38:28 +01:00
parent 72934e4627
commit 0e5aaefd30
@@ -289,6 +289,21 @@ namespace loot {
EXPECT_FALSE(result);
}
TEST_P(ConditionGrammarTest, aVersionEqualityConditionForAPluginWithNoVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game.LoadPlugins(true));
Grammar grammar(&game);
std::string condition("version(\"" + blankEsp + "\", \"6.0\", ==)");
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
std::cend(condition),
grammar,
skipper,
result);
EXPECT_TRUE(success);
EXPECT_FALSE(result);
}
TEST_P(ConditionGrammarTest, aVersionInequalityConditionWithAVersionThatDoesNotEqualTheActualPluginVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game.LoadPlugins(true));
@@ -319,6 +334,21 @@ namespace loot {
EXPECT_FALSE(result);
}
TEST_P(ConditionGrammarTest, aVersionInequalityConditionForAPluginWithNoVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game.LoadPlugins(true));
Grammar grammar(&game);
std::string condition("version(\"" + blankEsp + "\", \"6.0\", !=)");
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
std::cend(condition),
grammar,
skipper,
result);
EXPECT_TRUE(success);
EXPECT_TRUE(result);
}
TEST_P(ConditionGrammarTest, aVersionLessThanConditionWithAnActualPluginVersionLessThanTheGivenVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game.LoadPlugins(true));
@@ -349,6 +379,21 @@ namespace loot {
EXPECT_FALSE(result);
}
TEST_P(ConditionGrammarTest, aVersionLessThanConditionForAPluginWithNoVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game.LoadPlugins(true));
Grammar grammar(&game);
std::string condition("version(\"" + blankEsp + "\", \"5.0\", <)");
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
std::cend(condition),
grammar,
skipper,
result);
EXPECT_TRUE(success);
EXPECT_TRUE(result);
}
TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionWithAnActualPluginVersionGreaterThanTheGivenVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game.LoadPlugins(true));
@@ -379,6 +424,21 @@ namespace loot {
EXPECT_FALSE(result);
}
TEST_P(ConditionGrammarTest, aVersionGreaterThanConditionForAPluginWithNoVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game.LoadPlugins(true));
Grammar grammar(&game);
std::string condition("version(\"" + blankEsp + "\", \"5.0\", >)");
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
std::cend(condition),
grammar,
skipper,
result);
EXPECT_TRUE(success);
EXPECT_FALSE(result);
}
TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionWithAnActualPluginVersionEqualToTheGivenVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game.LoadPlugins(true));
@@ -409,6 +469,21 @@ namespace loot {
EXPECT_FALSE(result);
}
TEST_P(ConditionGrammarTest, aVersionLessThanOrEqualToConditionForAPluginWithNoVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game.LoadPlugins(true));
Grammar grammar(&game);
std::string condition("version(\"" + blankEsp + "\", \"5.0\", <=)");
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
std::cend(condition),
grammar,
skipper,
result);
EXPECT_TRUE(success);
EXPECT_TRUE(result);
}
TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionWithAnActualPluginVersionEqualToTheGivenVersionShouldEvaluateToTrue) {
ASSERT_NO_THROW(game.Init(false, localPath));
ASSERT_NO_THROW(game.LoadPlugins(true));
@@ -440,6 +515,21 @@ namespace loot {
EXPECT_FALSE(result);
}
TEST_P(ConditionGrammarTest, aVersionGreaterThanOrEqualToConditionForAPluginWithNoVersionShouldEvaluateToFalse) {
ASSERT_NO_THROW(game.LoadPlugins(true));
Grammar grammar(&game);
std::string condition("version(\"" + blankEsp + "\", \"5.0\", >=)");
success = boost::spirit::qi::phrase_parse(std::cbegin(condition),
std::cend(condition),
grammar,
skipper,
result);
EXPECT_TRUE(success);
EXPECT_FALSE(result);
}
TEST_P(ConditionGrammarTest, anActiveConditionWithAPluginThatIsActiveShouldEvaluateToTrue) {
ASSERT_NO_THROW(game.Init(false, localPath));