1 #include "CppUnitTest.h"
3 #include "../Hazelnupp/Hazelnupp.h"
4 #include "../Hazelnupp/HazelnuppException.h"
6 using namespace Microsoft::VisualStudio::CppUnitTestFramework;
15 TEST_METHOD(ApplicationPathWorks)
19 "/my/fake/path/wahoo.out"
24 nupp.SetCrashOnFail(
false);
27 Assert::AreEqual(std::string(
"/my/fake/path/wahoo.out"), nupp.GetExecutableName());
33 TEST_METHOD(Only_One_Param)
37 "/my/fake/path/wahoo.out",
43 nupp.SetCrashOnFail(
false);
46 Assert::IsTrue(nupp.HasParam(
"--dummy"));
52 TEST_METHOD(Weird_Case_1)
56 "/my/fake/path/wahoo.out",
62 nupp.SetCrashOnFail(
false);
70 TEST_METHOD(Weird_Case_2)
74 "/my/fake/path/wahoo.out",
81 nupp.SetCrashOnFail(
false);
84 Assert::IsTrue(nupp.HasParam(
"--dummy"), L
"Failed has-param");
85 Assert::IsTrue(nupp[
"--dummy"].GetDataType() ==
DATA_TYPE::VOID, L
"Failed type");
91 TEST_METHOD(KeysExist)
95 "/my/fake/path/wahoo.out",
116 nupp.SetCrashOnFail(
false);
119 Assert::IsTrue(nupp.HasParam(
"--my_string"));
120 Assert::IsTrue(nupp.HasParam(
"--my_void"));
121 Assert::IsTrue(nupp.HasParam(
"--my_float"));
122 Assert::IsTrue(nupp.HasParam(
"--my_int"));
123 Assert::IsTrue(nupp.HasParam(
"--my_num_list"));
124 Assert::IsTrue(nupp.HasParam(
"--my_str_list"));
130 TEST_METHOD(CorrectType)
134 "/my/fake/path/wahoo.out",
155 nupp.SetCrashOnFail(
false);
162 Assert::IsTrue(nupp[
"--my_num_list"].GetDataType() ==
DATA_TYPE::LIST);
163 Assert::IsTrue(nupp[
"--my_str_list"].GetDataType() ==
DATA_TYPE::LIST);
169 TEST_METHOD(CorrectValues)
173 "/my/fake/path/wahoo.out",
194 nupp.SetCrashOnFail(
false);
197 Assert::AreEqual(nupp[
"--my_string"].GetString(), std::string(
"billybob"));
198 Assert::AreEqual(nupp[
"--my_float"].GetFloat32(), -23.199);
199 Assert::AreEqual(nupp[
"--my_int"].GetInt32(), 199);
200 Assert::AreEqual(nupp[
"--my_num_list"].GetList()[0]->GetInt32(), 1);
201 Assert::AreEqual(nupp[
"--my_num_list"].GetList()[1]->GetInt32(), 2);
202 Assert::AreEqual(nupp[
"--my_num_list"].GetList()[2]->GetInt32(), 3);
203 Assert::AreEqual(nupp[
"--my_num_list"].GetList()[3]->GetInt32(), 4);
204 Assert::AreEqual(nupp[
"--my_str_list"].GetList()[0]->GetString(), std::string(
"apple"));
205 Assert::AreEqual(nupp[
"--my_str_list"].GetList()[1]->GetString(), std::string(
"banana"));
206 Assert::AreEqual(nupp[
"--my_str_list"].GetList()[2]->GetString(), std::string(
"pumpkin"));
212 TEST_METHOD(Exception_On_Invalid_Key)
216 "/my/fake/path/wahoo.out",
236 nupp.SetCrashOnFail(
false);
239 Assert::ExpectException<HazelnuppInvalidKeyException>(