Implements backgrounds and tests.

This commit is contained in:
2023-04-15 22:54:04 -07:00
parent 3111b9a8aa
commit 670c517326
3 changed files with 121 additions and 3 deletions

View File

@@ -0,0 +1,19 @@
#include "Backgrounds.h"
#include <string>
#include <vector>
namespace SBF {
std::string GetBackgroundLabel(int backgroundId) {
if (backgroundId > 0 && backgroundId <= kBackgroundsCount) {
return kBackgroundLabels[backgroundId];
}
return "";
}
void FillBackgroundLabels(std::vector<std::string>& labels) {
labels.clear();
for (int id = 1; id <= kBackgroundsCount; id++) {
labels.push_back(kBackgroundLabels[id]);
}
}
} // End namespace SBF

View File

@@ -39,7 +39,7 @@ namespace SBF {
kBackgroundRetainersLabel,
kBackgroundStatusLabel,
};
const std::string& GetBackgroundLabel(int backgroundId);
void FillBackgroundLabels(std::vector<std::string> backgroundLabels);
std::string GetBackgroundLabel(int backgroundId);
void FillBackgroundLabels(std::vector<std::string>& backgroundLabels);
} // End namespace SBF
#endif // End !defined BACKGROUNDS_H__

View File

@@ -1,10 +1,109 @@
#include "Backgrounds.h"
#include "test.h"
#include <string>
#include <vector>
#include <tuple>
#include <sstream>
using namespace SBF;
using namespace Test;
using namespace std;
namespace Test::Backgrounds {
TestResults test_GetBackgroundLabel();
TestResults test_FillBackgroundLabels();
} // End namespace Test::Attributes
using namespace Test::Backgrounds;
TestResults main_test_Backgrounds(int argc, char** argv) {
TestResults results;
results += test_GetBackgroundLabel();
results += test_FillBackgroundLabels();
return results;
}
namespace Test::Backgrounds {
TestResults test_GetBackgroundLabel() {
return execute_suite<string, int>(make_test_suite(
"SBF::GetBackgroundLabel",
GetBackgroundLabel,
vector<TestTuple<string, int>>({
make_test<string, int>(
"should get \"\" for invalid background 0",
"",
make_tuple(0)),
make_test<string, int>(
"should get \"Allies\" for background 1 kBackgroundAlliesLabel",
"Allies",
make_tuple(1)),
make_test<string, int>(
"should get \"Contacts\" for background 2 kBackgroundContactsLabel",
"Contacts",
make_tuple(2)),
make_test<string, int>(
"should get \"Fame\" for background 3 kBackgroundFameLabel",
"Fame",
make_tuple(3)),
make_test<string, int>(
"should get \"Generation\" for background 4 kBackgroundGenerationLabel",
"Generation",
make_tuple(4)),
make_test<string, int>(
"should get \"Herd\" for background 5 kBackgroundHerdLabel",
"Herd",
make_tuple(5)),
make_test<string, int>(
"should get \"Influence\" for background 6 kBackgroundInfluenceLabel",
"Influence",
make_tuple(6)),
make_test<string, int>(
"should get \"Mentor\" for background 7 kBackgroundMentorLabel",
"Mentor",
make_tuple(7)),
make_test<string, int>(
"should get \"Resources\" for background 8 kBackgroundResourcesLabel",
"Resources",
make_tuple(8)),
make_test<string, int>(
"should get \"Retainers\" for background 9 kBackgroundRetainersLabel",
"Retainers",
make_tuple(9)),
make_test<string, int>(
"should get \"Status\" for background 10 kBackgroundStatusLabel",
"Status",
make_tuple(10)),
make_test<string, int>(
"should get \"\" for invalid background 11",
"",
make_tuple(11)),
})
));
}
TestResults test_FillBackgroundLabels() {
return execute_suite<string>(make_test_suite(
"SBF::FillBackgroundLabels",
[]()->string {
ostringstream error_message;
vector<string> expected = {"Allies", "Contacts", "Fame", "Generation", "Herd", "Influence", "Mentor", "Resources", "Retainers", "Status" };
vector<string> actual = {"This should be removed."};
FillBackgroundLabels(actual);
compare(error_message, expected, actual);
string error = error_message.str();
if (error.size() > 0) {
return error;
}
return "no errors";
},
vector<TestTuple<string>>({
make_test<string>(
"should fill background labels",
"no errors",
make_tuple()),
})
));
}
} // End namespace Test::Backgrounds