Skip to content

Commit

Permalink
added parsing of fleet government
Browse files Browse the repository at this point in the history
  • Loading branch information
shitwolfymakes committed Jul 16, 2023
1 parent 7e5fc33 commit e4a68ea
Show file tree
Hide file tree
Showing 5 changed files with 27 additions and 7 deletions.
15 changes: 13 additions & 2 deletions src/esjsonlib/fleet/filefleetitemparser.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* fileleetitemparser.cpp
* filefleetitemparser.cpp
*
* Copyright (c) 2023, Andrew Sneed <wolfy@shitwolfymakes.com>
*/
Expand All @@ -20,12 +20,23 @@ FileFleetItemParser::FileFleetItemParser(std::vector<std::string> lines) {

json FileFleetItemParser::run() {
std::cout << "Parsing fleet node to JSON" << std::endl;
// TODO: IMPLEMENT THIS
std::vector<std::string> tokens;
std::vector<std::string> lines = getLines();
tokens = utils::tokenize(lines.at(0));
fleet["name"] = tokens.at(1);

for (int i = 1; i < static_cast<int>(lines.size()); i++) {
// start by tokenizing each line
tokens = utils::tokenize(lines.at(i));
std::vector<std::string> nodeLines;

// TODO: IMPLEMENT THIS
if (utils::is(tokens.at(0), "government")) {
std::cout << "\tFleet government is: " << tokens.at(1) << std::endl;
fleet["government"] = tokens.at(1);
}
}

std::cout << "Fleet data: " << fleet.dump(4) << std::endl;
return fleet;
}
Expand Down
2 changes: 1 addition & 1 deletion src/esjsonlib/fleet/filefleetitemparser.h
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// SPDX-License-Identifier: GPL-3.0-only
/*
* fileleetitemparser.h
* filefleetitemparser.h
*
* Copyright (c) 2023, Andrew Sneed <wolfy@shitwolfymakes.com>
*/
Expand Down
9 changes: 9 additions & 0 deletions tests/fleet/filefleetitemparser_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,13 @@ TEST_F(FileFleetItemParserTest, TestEmptyFleetParsing) {
ASSERT_EQ(fleet, expected);
}

TEST_F(FileFleetItemParserTest, TestParseGovernment) {
std::vector<std::string> nodeLines = {FLEET_NODE_HEADER,
"\tgovernment \"Free Worlds\"\n"};
parser.setLines(nodeLines);

json fleet = parser.run();
ASSERT_EQ(fleet["government"], "Free Worlds");
}

} // namespace parsertests
6 changes: 3 additions & 3 deletions tests/fleet/filefleetitemparser_tests.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@

namespace parsertests {

std::string GOVT_NODE_HEADER = "fleet \"Black Swan\"\n";
std::string FLEET_NODE_HEADER = "fleet \"Black Swan\"\n";

// Fixture for testing a filter node
// Fixture for testing a node
class FileFleetItemParserTest : public ::testing::Test {
protected:
FileFleetItemParser parser = FileFleetItemParser({GOVT_NODE_HEADER});
FileFleetItemParser parser = FileFleetItemParser({FLEET_NODE_HEADER});
};

} // namespace parsertests
Expand Down
2 changes: 1 addition & 1 deletion tests/government/filegovernmentitemparser_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
*
* Copyright (c) 2023, Andrew Sneed <wolfy@shitwolfymakes.com>
*/

#include "filegovernmentitemparser_tests.h"
#include "common/fileitemparserutils.h"

using namespace testing;

Expand Down

0 comments on commit e4a68ea

Please sign in to comment.