fix unit test

This commit is contained in:
RickyRister 2025-04-19 03:56:23 -07:00
parent 70509c77bf
commit 7e5d3b7943
2 changed files with 20 additions and 23 deletions

View file

@ -2,17 +2,6 @@
#include <QTextStream> #include <QTextStream>
void Result::operator()(const InnerDecklistNode *innerDecklistNode, const DecklistCardNode *card)
{
if (innerDecklistNode->getName() == DECK_ZONE_MAIN) {
mainboard.append({card->getName().toStdString(), card->getNumber()});
} else if (innerDecklistNode->getName() == DECK_ZONE_SIDE) {
sideboard.append({card->getName().toStdString(), card->getNumber()});
} else {
FAIL();
}
}
void testEmpty(const QString &clipboard) void testEmpty(const QString &clipboard)
{ {
QString cp(clipboard); QString cp(clipboard);
@ -33,9 +22,22 @@ void testDeck(const QString &clipboard, const Result &result)
ASSERT_EQ(result.name, deckList.getName().toStdString()); ASSERT_EQ(result.name, deckList.getName().toStdString());
ASSERT_EQ(result.comments, deckList.getComments().toStdString()); ASSERT_EQ(result.comments, deckList.getComments().toStdString());
Result decklistBuilder; CardRows mainboard;
deckList.forEachCard(decklistBuilder); CardRows sideboard;
ASSERT_EQ(result.mainboard, decklistBuilder.mainboard); auto extractCards = [&mainboard, &sideboard](const InnerDecklistNode *innerDecklistNode,
ASSERT_EQ(result.sideboard, decklistBuilder.sideboard); const DecklistCardNode *card) {
if (innerDecklistNode->getName() == DECK_ZONE_MAIN) {
mainboard.append({card->getName().toStdString(), card->getNumber()});
} else if (innerDecklistNode->getName() == DECK_ZONE_SIDE) {
sideboard.append({card->getName().toStdString(), card->getNumber()});
} else {
FAIL();
}
};
deckList.forEachCard(extractCards);
ASSERT_EQ(result.mainboard, mainboard);
ASSERT_EQ(result.sideboard, sideboard);
} }

View file

@ -5,25 +5,20 @@
#include "gtest/gtest.h" #include "gtest/gtest.h"
// using std types because qt types aren't understood by gtest (without this you'll get less nice errors)
using CardRows = QVector<std::pair<std::string, int>>;
struct Result struct Result
{ {
// using std types because qt types aren't understood by gtest (without this you'll get less nice errors)
using CardRows = QVector<std::pair<std::string, int>>;
std::string name; std::string name;
std::string comments; std::string comments;
CardRows mainboard; CardRows mainboard;
CardRows sideboard; CardRows sideboard;
Result()
{
}
Result(std::string _name, std::string _comments, CardRows _mainboard, CardRows _sideboard) Result(std::string _name, std::string _comments, CardRows _mainboard, CardRows _sideboard)
: name(_name), comments(_comments), mainboard(_mainboard), sideboard(_sideboard) : name(_name), comments(_comments), mainboard(_mainboard), sideboard(_sideboard)
{ {
} }
void operator()(const InnerDecklistNode *innerDecklistNode, const DecklistCardNode *card);
}; };
void testEmpty(const QString &clipboard); void testEmpty(const QString &clipboard);