Initial commit of mtgonline project
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
#include "clipboard_testing.h"
|
||||
|
||||
#include <QTextStream>
|
||||
#include <libcockatrice/card/import/card_name_normalizer.h>
|
||||
#include <libcockatrice/deck_list/tree/deck_list_card_node.h>
|
||||
|
||||
DeckList getDeckList(const QString &clipboard)
|
||||
{
|
||||
DeckList deckList;
|
||||
QString cp(clipboard);
|
||||
QTextStream stream(&cp); // text stream requires local copy
|
||||
deckList.loadFromStream_Plain(stream, false, CardNameNormalizer());
|
||||
return deckList;
|
||||
}
|
||||
|
||||
void testEmpty(const QString &clipboard)
|
||||
{
|
||||
DeckList deckList = getDeckList(clipboard);
|
||||
|
||||
ASSERT_TRUE(deckList.getCardList().isEmpty());
|
||||
}
|
||||
|
||||
void testHash(const QString &clipboard, const std::string &hash)
|
||||
{
|
||||
DeckList deckList = getDeckList(clipboard);
|
||||
|
||||
ASSERT_EQ(deckList.getDeckHash().toStdString(), hash);
|
||||
}
|
||||
|
||||
void testDeck(const QString &clipboard, const Result &result)
|
||||
{
|
||||
DeckList deckList = getDeckList(clipboard);
|
||||
|
||||
ASSERT_EQ(result.name, deckList.getName().toStdString());
|
||||
ASSERT_EQ(result.comments, deckList.getComments().toStdString());
|
||||
|
||||
CardRows mainboard;
|
||||
CardRows sideboard;
|
||||
|
||||
auto extractCards = [&mainboard, &sideboard](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();
|
||||
}
|
||||
};
|
||||
|
||||
deckList.forEachCard(extractCards);
|
||||
|
||||
ASSERT_EQ(result.mainboard, mainboard);
|
||||
ASSERT_EQ(result.sideboard, sideboard);
|
||||
}
|
||||
Reference in New Issue
Block a user