summaryrefslogtreecommitdiff
path: root/tests/unit/CardPack/CardPack_GenerateCards_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/unit/CardPack/CardPack_GenerateCards_test.cpp')
-rw-r--r--tests/unit/CardPack/CardPack_GenerateCards_test.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/unit/CardPack/CardPack_GenerateCards_test.cpp b/tests/unit/CardPack/CardPack_GenerateCards_test.cpp
new file mode 100644
index 0000000..c7e7fcb
--- /dev/null
+++ b/tests/unit/CardPack/CardPack_GenerateCards_test.cpp
@@ -0,0 +1,43 @@
+#include "CardPack_GenerateCards_test.h"
+
+#include <initializer_list>
+
+#include "../../common/printQtTypes.h"
+#include "../../../src/dictionary/IDictionary.h"
+#include "../../../src/dictionary/Field.h"
+#include "../../../src/dictionary/DicRecord.h"
+
+vector<Field*> GenerateCardsTest::fields;
+
+INSTANTIATE_TEST_CASE_P(, GenerateCardsTest,
+ testing::ValuesIn(RecordsParam::createParams()) );
+
+vector<Field*> GenerateCardsTest::getFields()
+{
+ static vector<string> names {"English", "Russian"};
+ if(fields.empty())
+ for(string name: names)
+ fields.push_back(new Field(name.c_str(), "Normal"));
+ return fields;
+}
+
+void GenerateCardsTest::TearDownTestCase()
+{
+ for(Field* field: fields)
+ delete field;
+}
+
+TEST_P(GenerateCardsTest, generateQuestions)
+ {
+ auto param = GetParam();
+ dict.addRecords(param.records);
+ for(int fieldId: param.packFields)
+ pack.addField(getFields()[ fieldId ]);
+ pack.generateQuestions();
+
+ QStringList questions;
+ for(string question: param.questions)
+ questions << question.c_str();
+
+ ASSERT_EQ(questions, pack.getCardQuestions());
+}