Hazelnupp/Test_Hazelnupp/Descriptions.cpp

140 lines
3.8 KiB
C++

#include "CppUnitTest.h"
#include "helper.h"
#include "../Hazelnupp/CmdArgsInterface.h"
#include "../Hazelnupp/HazelnuppException.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
using namespace Hazelnp;
namespace TestHazelnupp
{
TEST_CLASS(_Descriptions)
{
public:
// Tests that the application description can be set and returned
TEST_METHOD(Set_Get_Application_Brief)
{
// Setup
CmdArgsInterface cmdArgsI;
cmdArgsI.SetCrashOnFail(false);
std::string text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse in quam tincidunt sapien euismod egestas eget vel dolor. Duis non turpis porttitor, convallis velit at.";
// Exercise
cmdArgsI.SetBriefDescription(text);
// Verify
Assert::AreEqual(text, cmdArgsI.GetBriefDescription());
return;
}
// Tests that a parameters description can be set and returned
TEST_METHOD(Can_Set_Parameter_Description)
{
// Setup
CmdArgsInterface cmdArgsI;
cmdArgsI.SetCrashOnFail(false);
// Exercise
cmdArgsI.RegisterDescription("--force", "Just force it");
cmdArgsI.RegisterDescription("--lose", "Just lose it");
cmdArgsI.RegisterDescription("--crazy", "Go crazy");
// Verify
Assert::AreEqual(std::string("Just force it"), cmdArgsI.GetDescription("--force"));
Assert::AreEqual(std::string("Go crazy"), cmdArgsI.GetDescription("--crazy"));
Assert::AreEqual(std::string("Just lose it"), cmdArgsI.GetDescription("--lose"));
return;
}
//! Tests that HasDescription works
TEST_METHOD(Has_Description)
{
// Setup
CmdArgsInterface cmdArgsI;
cmdArgsI.SetCrashOnFail(false);
// Exercise, verify
Assert::IsFalse(cmdArgsI.HasDescription("--force"));
Assert::IsFalse(cmdArgsI.HasDescription("--main"));
cmdArgsI.RegisterDescription("--force", "Just force it");
Assert::IsTrue(cmdArgsI.HasDescription("--force"));
Assert::IsFalse(cmdArgsI.HasDescription("--main"));
return;
}
// Tests that an unknown parameter returns an empty string
TEST_METHOD(No_Description_Is_Empty_String)
{
// Setup
CmdArgsInterface cmdArgsI;
cmdArgsI.SetCrashOnFail(false);
// Exercise
cmdArgsI.RegisterDescription("--force", "Just force it");
cmdArgsI.RegisterDescription("--lose", "Just lose it");
cmdArgsI.RegisterDescription("--crazy", "Go crazy");
// Verify
Assert::AreEqual(std::string(), cmdArgsI.GetDescription("--man"));
return;
}
// Tests that a description can be deleted
TEST_METHOD(ClearDescription)
{
// Setup
CmdArgsInterface cmdArgsI;
cmdArgsI.SetCrashOnFail(false);
// Exercise
cmdArgsI.RegisterDescription("--force", "Just force it");
cmdArgsI.RegisterDescription("--lose", "Just lose it");
cmdArgsI.RegisterDescription("--crazy", "Go crazy");
cmdArgsI.ClearDescription("--lose");
// Verify
// These two should still work
Assert::AreEqual(std::string("Just force it"), cmdArgsI.GetDescription("--force"));
Assert::AreEqual(std::string("Go crazy"), cmdArgsI.GetDescription("--crazy"));
Assert::IsFalse(cmdArgsI.HasDescription("--lose"));
return;
}
// Tests that all descriptions can be deleted at once
TEST_METHOD(ClearDescriptions)
{
// Setup
CmdArgsInterface cmdArgsI;
cmdArgsI.SetCrashOnFail(false);
// Exercise
cmdArgsI.RegisterDescription("--force", "Just force it");
cmdArgsI.RegisterDescription("--lose", "Just lose it");
cmdArgsI.RegisterDescription("--crazy", "Go crazy");
cmdArgsI.ClearDescriptions();
// Verify
// These two should still work
Assert::IsFalse(cmdArgsI.HasDescription("--force"));
Assert::IsFalse(cmdArgsI.HasDescription("--crazy"));
Assert::IsFalse(cmdArgsI.HasDescription("--lose"));
return;
}
};
}