From e4a68ea8517ed1baf371a8a6cf4b625c9bbdfe19 Mon Sep 17 00:00:00 2001 From: wolfy Date: Sun, 16 Jul 2023 00:32:44 -0600 Subject: [PATCH] added parsing of fleet government --- src/esjsonlib/fleet/filefleetitemparser.cpp | 15 +++++++++++++-- src/esjsonlib/fleet/filefleetitemparser.h | 2 +- tests/fleet/filefleetitemparser_tests.cpp | 9 +++++++++ tests/fleet/filefleetitemparser_tests.h | 6 +++--- .../government/filegovernmentitemparser_tests.cpp | 2 +- 5 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/esjsonlib/fleet/filefleetitemparser.cpp b/src/esjsonlib/fleet/filefleetitemparser.cpp index 2c50cc3..580abd7 100644 --- a/src/esjsonlib/fleet/filefleetitemparser.cpp +++ b/src/esjsonlib/fleet/filefleetitemparser.cpp @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-only /* - * fileleetitemparser.cpp + * filefleetitemparser.cpp * * Copyright (c) 2023, Andrew Sneed */ @@ -20,12 +20,23 @@ FileFleetItemParser::FileFleetItemParser(std::vector lines) { json FileFleetItemParser::run() { std::cout << "Parsing fleet node to JSON" << std::endl; - // TODO: IMPLEMENT THIS std::vector tokens; std::vector lines = getLines(); tokens = utils::tokenize(lines.at(0)); fleet["name"] = tokens.at(1); + for (int i = 1; i < static_cast(lines.size()); i++) { + // start by tokenizing each line + tokens = utils::tokenize(lines.at(i)); + std::vector 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; } diff --git a/src/esjsonlib/fleet/filefleetitemparser.h b/src/esjsonlib/fleet/filefleetitemparser.h index 4593895..b120a16 100644 --- a/src/esjsonlib/fleet/filefleetitemparser.h +++ b/src/esjsonlib/fleet/filefleetitemparser.h @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-3.0-only /* - * fileleetitemparser.h + * filefleetitemparser.h * * Copyright (c) 2023, Andrew Sneed */ diff --git a/tests/fleet/filefleetitemparser_tests.cpp b/tests/fleet/filefleetitemparser_tests.cpp index 046a9de..7d338ee 100644 --- a/tests/fleet/filefleetitemparser_tests.cpp +++ b/tests/fleet/filefleetitemparser_tests.cpp @@ -21,4 +21,13 @@ TEST_F(FileFleetItemParserTest, TestEmptyFleetParsing) { ASSERT_EQ(fleet, expected); } +TEST_F(FileFleetItemParserTest, TestParseGovernment) { + std::vector nodeLines = {FLEET_NODE_HEADER, + "\tgovernment \"Free Worlds\"\n"}; + parser.setLines(nodeLines); + + json fleet = parser.run(); + ASSERT_EQ(fleet["government"], "Free Worlds"); +} + } // namespace parsertests diff --git a/tests/fleet/filefleetitemparser_tests.h b/tests/fleet/filefleetitemparser_tests.h index 9d5c944..5a6133c 100644 --- a/tests/fleet/filefleetitemparser_tests.h +++ b/tests/fleet/filefleetitemparser_tests.h @@ -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 diff --git a/tests/government/filegovernmentitemparser_tests.cpp b/tests/government/filegovernmentitemparser_tests.cpp index bdb22cd..bfcf8e7 100644 --- a/tests/government/filegovernmentitemparser_tests.cpp +++ b/tests/government/filegovernmentitemparser_tests.cpp @@ -4,8 +4,8 @@ * * Copyright (c) 2023, Andrew Sneed */ - #include "filegovernmentitemparser_tests.h" +#include "common/fileitemparserutils.h" using namespace testing;