Skip to content

Commit 64e04c8

Browse files
committed
Split up player test and regular board test
1 parent a5db57f commit 64e04c8

File tree

3 files changed

+25
-10
lines changed

3 files changed

+25
-10
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ $(EXECUTABLE): $(ALLFILES)
1818
${LD} obj/*.o $(LDFLAGS) -o $(EXECUTABLE)
1919

2020
.PHONY: tests
21-
tests:
21+
tests: $(EXECUTABLE)
2222
cd UnitTest++ && $(MAKE) libUnitTest++.a
2323
cd tests && $(MAKE)
2424

src/GameBoard.cpp

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,16 @@ GameBoard::GameBoard(istream& in) {
6060
}
6161

6262
auto playerElements = doc.RootElement()->FirstChildElement("players");
63-
64-
for(auto playerElement = playerElements->FirstChildElement(); playerElement; playerElement = playerElement->NextSiblingElement()) {
65-
unique_ptr<Player> player(new Player(playerElement->FirstChildElement("name")->FirstChild()->Value()));
66-
player->setWood(fromString<int>(playerElement->FirstChildElement("wood")->FirstChild()->Value()));
67-
player->setBrick(fromString<int>(playerElement->FirstChildElement("brick")->FirstChild()->Value()));
68-
player->setOre(fromString<int>(playerElement->FirstChildElement("ore")->FirstChild()->Value()));
69-
player->setWheat(fromString<int>(playerElement->FirstChildElement("wheat")->FirstChild()->Value()));
70-
player->setWool(fromString<int>(playerElement->FirstChildElement("wool")->FirstChild()->Value()));
71-
players.emplace_back(std::move(player));
63+
if(playerElements) {
64+
for(auto playerElement = playerElements->FirstChildElement(); playerElement; playerElement = playerElement->NextSiblingElement()) {
65+
unique_ptr<Player> player(new Player(playerElement->FirstChildElement("name")->FirstChild()->Value()));
66+
player->setWood(fromString<int>(playerElement->FirstChildElement("wood")->FirstChild()->Value()));
67+
player->setBrick(fromString<int>(playerElement->FirstChildElement("brick")->FirstChild()->Value()));
68+
player->setOre(fromString<int>(playerElement->FirstChildElement("ore")->FirstChild()->Value()));
69+
player->setWheat(fromString<int>(playerElement->FirstChildElement("wheat")->FirstChild()->Value()));
70+
player->setWool(fromString<int>(playerElement->FirstChildElement("wool")->FirstChild()->Value()));
71+
players.emplace_back(std::move(player));
72+
}
7273
}
7374
}
7475

tests/testSerialization.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,21 @@ using std::stringstream;
1717

1818
TEST(emptyBoardSerialization) {
1919
vector<unique_ptr<Player>> players;
20+
21+
GameBoard testBoard(std::move(players));
22+
23+
stringstream stream;
24+
testBoard.save(stream);
25+
26+
GameBoard copyBoard(stream);
27+
28+
CHECK(testBoard == copyBoard);
29+
}
30+
31+
TEST(multiplePlayerSerialization) {
32+
vector<unique_ptr<Player>> players;
2033
players.emplace_back(unique_ptr<Player>(new Player("test")));
34+
players.emplace_back(unique_ptr<Player>(new Player("test2")));
2135

2236
GameBoard testBoard(std::move(players));
2337

0 commit comments

Comments
 (0)