1 #include "clipboard_testing.h"
2 #include <QTextStream>
3 
operator ()(const InnerDecklistNode * innerDecklistNode,const DecklistCardNode * card)4 void Result::operator()(const InnerDecklistNode *innerDecklistNode, const DecklistCardNode *card)
5 {
6     if (innerDecklistNode->getName() == DECK_ZONE_MAIN) {
7         mainboard.append({card->getName().toStdString(), card->getNumber()});
8     } else if (innerDecklistNode->getName() == DECK_ZONE_SIDE) {
9         sideboard.append({card->getName().toStdString(), card->getNumber()});
10     } else {
11         FAIL();
12     }
13 }
14 
testEmpty(const QString & clipboard)15 void testEmpty(const QString &clipboard)
16 {
17     QString cp(clipboard);
18     DeckList deckList;
19     QTextStream stream(&cp); // text stream requires local copy
20     deckList.loadFromStream_Plain(stream);
21 
22     ASSERT_TRUE(deckList.getCardList().isEmpty());
23 }
24 
testDeck(const QString & clipboard,const Result & result)25 void testDeck(const QString &clipboard, const Result &result)
26 {
27     QString cp(clipboard);
28     DeckList deckList;
29     QTextStream stream(&cp); // text stream requires local copy
30     deckList.loadFromStream_Plain(stream);
31 
32     ASSERT_EQ(result.name, deckList.getName().toStdString());
33     ASSERT_EQ(result.comments, deckList.getComments().toStdString());
34 
35     Result decklistBuilder;
36     deckList.forEachCard(decklistBuilder);
37 
38     ASSERT_EQ(result.mainboard, decklistBuilder.mainboard);
39     ASSERT_EQ(result.sideboard, decklistBuilder.sideboard);
40 }
41