1 #include "CppUnitTest.h"
3 #include "../Hazelnupp/Hazelnupp.h"
4 #include "../Hazelnupp/HazelnuppException.h"
6 using namespace Microsoft::VisualStudio::CppUnitTestFramework;
15 TEST_METHOD(DefaultValues_GetAdded)
19 "/my/fake/path/wahoo.out",
28 nupp.RegisterConstraints({
35 nupp.Parse(
C_Ify(args));
38 Assert::IsTrue(nupp.HasParam(
"--elenor-int"));
39 Assert::IsTrue(nupp[
"--elenor-int"].GetDataType() ==
DATA_TYPE::INT);
40 Assert::AreEqual(nupp[
"--elenor-int"].GetInt32(), 5994);
42 Assert::IsTrue(nupp.HasParam(
"--federich-float"));
44 Assert::AreEqual(nupp[
"--federich-float"].GetFloat32(), 420.69);
46 Assert::IsTrue(nupp.HasParam(
"--siegbert-string"));
48 Assert::AreEqual(nupp[
"--siegbert-string"].GetString(), std::string(
"banana"));
50 Assert::IsTrue(nupp.HasParam(
"--lieber-liste"));
51 Assert::IsTrue(nupp[
"--lieber-liste"].GetDataType() ==
DATA_TYPE::LIST);
52 Assert::AreEqual(nupp[
"--lieber-liste"].GetList()[0]->GetString(), std::string(
"banana"));
53 Assert::AreEqual(nupp[
"--lieber-liste"].GetList()[1]->GetString(), std::string(
"apple"));
54 Assert::AreEqual(nupp[
"--lieber-liste"].GetList()[2]->GetInt32(), 59);
60 TEST_METHOD(DefaultValues_DefaultDoesntOverride)
64 "/my/fake/path/wahoo.out",
82 nupp.RegisterConstraints({
89 nupp.Parse(
C_Ify(args));
92 Assert::IsTrue(nupp.HasParam(
"--elenor-int"));
93 Assert::IsTrue(nupp[
"--elenor-int"].GetDataType() ==
DATA_TYPE::INT);
94 Assert::AreEqual(nupp[
"--elenor-int"].GetInt32(), 5994);
96 Assert::IsTrue(nupp.HasParam(
"--federich-float"));
98 Assert::AreEqual(nupp[
"--federich-float"].GetFloat32(), 420.69);
100 Assert::IsTrue(nupp.HasParam(
"--siegbert-string"));
102 Assert::AreEqual(nupp[
"--siegbert-string"].GetString(), std::string(
"banana"));
104 Assert::IsTrue(nupp.HasParam(
"--lieber-liste"));
105 Assert::IsTrue(nupp[
"--lieber-liste"].GetDataType() ==
DATA_TYPE::LIST);
106 Assert::AreEqual(nupp[
"--lieber-liste"].GetList()[0]->GetString(), std::string(
"banana"));
107 Assert::AreEqual(nupp[
"--lieber-liste"].GetList()[1]->GetString(), std::string(
"apple"));
108 Assert::AreEqual(nupp[
"--lieber-liste"].GetList()[2]->GetInt32(), 59);
114 TEST_METHOD(ForceTypes)
118 "/my/fake/path/wahoo.out",
138 nupp.RegisterConstraints({
147 nupp.Parse(
C_Ify(args));
150 Assert::IsTrue(nupp.HasParam(
"--num-apples"));
151 Assert::IsTrue(nupp[
"--num-apples"].GetDataType() ==
DATA_TYPE::INT);
152 Assert::AreEqual(nupp[
"--num-apples"].GetInt32(), 39);
154 Assert::IsTrue(nupp.HasParam(
"--table-height"));
156 Assert::AreEqual(nupp[
"--table-height"].GetFloat32(), 400.0);
158 Assert::IsTrue(nupp.HasParam(
"--license-plate"));
160 Assert::AreEqual(nupp[
"--license-plate"].GetString(), std::string(
"193273"));
162 Assert::IsTrue(nupp.HasParam(
"--fav-fruits"));
164 Assert::AreEqual(nupp[
"--fav-fruits"].GetList()[0]->GetString(), std::string(
"apple"));
166 Assert::IsTrue(nupp.HasParam(
"--indices"));
168 Assert::AreEqual(nupp[
"--indices"].GetList()[0]->GetInt32(), 9);
170 Assert::IsTrue(nupp.HasParam(
"--force"));
178 TEST_METHOD(Exception_MissingImportant_Parameter_WithoutDefault)
182 "/my/fake/path/wahoo.out",
194 Assert::ExpectException<HazelnuppConstraintMissingValue>(
213 TEST_METHOD(Exception_TypeMismatch_Parameter_NotConvertable)
217 "/my/fake/path/wahoo.out",
231 Assert::ExpectException<HazelnuppConstraintTypeMissmatch>(
249 TEST_METHOD(Weird_Load_Conversions_ToVoid)
253 "/my/fake/path/wahoo.out",
270 nupp.RegisterConstraints({
280 nupp.Parse(
C_Ify(args));
293 TEST_METHOD(Weird_Load_Conversions_VoidToEmptyList)
297 "/my/fake/path/wahoo.out",
305 nupp.RegisterConstraints({
311 nupp.Parse(
C_Ify(args));
315 Assert::AreEqual(std::size_t(0), nupp[
"--empty-list"].GetList().size());