From b03f0e493c447f2e565bd5d5c5faebd28c62e5fb Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Tue, 22 Mar 2016 21:55:49 +0000 Subject: [PATCH] Improve Language tests --- CMakeLists.txt | 2 +- .../{test_language.h => language_test.h} | 44 ++++++++++--------- src/tests/main.cpp | 2 +- 3 files changed, 25 insertions(+), 23 deletions(-) rename src/tests/backend/helpers/{test_language.h => language_test.h} (78%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 951cbf92..6f92c891 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -241,7 +241,7 @@ set (LOOT_TESTS_HEADERS "${CMAKE_SOURCE_DIR}/src/tests/base_game_test.h" "${CMAKE_SOURCE_DIR}/src/tests/backend/game/load_order_handler_test.h" "${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/git_helper_test.h" "${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/helpers_test.h" - "${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/test_language.h" + "${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/language_test.h" "${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/test_version.h" "${CMAKE_SOURCE_DIR}/src/tests/backend/helpers/test_yaml_set_helpers.h" "${CMAKE_SOURCE_DIR}/src/tests/backend/metadata/test_condition_grammar.h" diff --git a/src/tests/backend/helpers/test_language.h b/src/tests/backend/helpers/language_test.h similarity index 78% rename from src/tests/backend/helpers/test_language.h rename to src/tests/backend/helpers/language_test.h index 3a2f2f49..d8208cf2 100644 --- a/src/tests/backend/helpers/test_language.h +++ b/src/tests/backend/helpers/language_test.h @@ -26,49 +26,50 @@ along with LOOT. If not, see #define LOOT_TEST_BACKEND_HELPERS_LANGUAGE #include "backend/helpers/language.h" -#include "tests/fixtures.h" + +#include namespace loot { namespace test { - TEST(Language, ConstructorsAndDataAccess) { - // Test English code and locale. + TEST(Language, codeConstructorShouldSetTheCorrectData) { Language lang(Language::english); EXPECT_EQ(Language::english, lang.Code()); EXPECT_EQ("English", lang.Name()); EXPECT_EQ("en", lang.Locale()); - lang = Language("en"); - EXPECT_EQ(Language::english, lang.Code()); - EXPECT_EQ("English", lang.Name()); - EXPECT_EQ("en", lang.Locale()); - - // Test code and locale for a couple of other languages, in case English - // is wrongly being used for everything. No point testing all languages, - // because that would just be copying the class code. lang = Language(Language::polish); EXPECT_EQ(Language::polish, lang.Code()); EXPECT_EQ("Polski", lang.Name()); EXPECT_EQ("pl", lang.Locale()); + } + + TEST(Language, localeConstructorShouldSetTheCorrectData) { + Language lang("en"); + EXPECT_EQ(Language::english, lang.Code()); + EXPECT_EQ("English", lang.Name()); + EXPECT_EQ("en", lang.Locale()); lang = Language("de"); EXPECT_EQ(Language::german, lang.Code()); EXPECT_EQ("Deutsch", lang.Name()); EXPECT_EQ("de", lang.Locale()); + } - // Test that invalid values get treated as English. - lang = Language(1000); - EXPECT_EQ(Language::english, lang.Code()); - EXPECT_EQ("English", lang.Name()); - EXPECT_EQ("en", lang.Locale()); - - lang = Language("foo"); + TEST(Language, codeConstructorShouldTreatAnInvalidCodeAsEnglish) { + Language lang(1000); EXPECT_EQ(Language::english, lang.Code()); EXPECT_EQ("English", lang.Name()); EXPECT_EQ("en", lang.Locale()); } - TEST(Language, Codes) { - // Check that all the expected codes are given. + TEST(Language, localeConstructorShouldTreatAnInvalidLocaleAsEnglish) { + Language lang("foo"); + EXPECT_EQ(Language::english, lang.Code()); + EXPECT_EQ("English", lang.Name()); + EXPECT_EQ("en", lang.Locale()); + } + + TEST(Language, codesShouldContainAllExpectedLanguageCodes) { std::vector codes = { Language::english, Language::spanish, @@ -82,7 +83,8 @@ namespace loot { Language::danish, Language::korean }; - EXPECT_EQ(Language::Codes, codes); + + EXPECT_EQ(codes, Language::Codes); } } } diff --git a/src/tests/main.cpp b/src/tests/main.cpp index 267e06a2..baf09f0d 100644 --- a/src/tests/main.cpp +++ b/src/tests/main.cpp @@ -47,7 +47,7 @@ #include "backend/game/load_order_handler_test.h" #include "backend/helpers/git_helper_test.h" #include "backend/helpers/helpers_test.h" -#include "backend/helpers/test_language.h" +#include "backend/helpers/language_test.h" #include "backend/helpers/test_version.h" #include "backend/helpers/test_yaml_set_helpers.h" #include "backend/metadata/test_condition_grammar.h"