2021-06-05 11:56:29 +02:00
# include "CppUnitTest.h"
# include "helper.h"
2021-06-08 14:00:20 +02:00
# include "../Hazelnupp/CmdArgsInterface.h"
2021-06-05 11:56:29 +02:00
# 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
2021-06-08 14:00:20 +02:00
CmdArgsInterface cmdArgsI ;
cmdArgsI . SetCrashOnFail ( false ) ;
2021-06-05 11:56:29 +02:00
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
2021-06-08 14:00:20 +02:00
cmdArgsI . SetBriefDescription ( text ) ;
2021-06-05 11:56:29 +02:00
// Verify
2021-06-08 14:00:20 +02:00
Assert : : AreEqual ( text , cmdArgsI . GetBriefDescription ( ) ) ;
2021-06-05 11:56:29 +02:00
return ;
}
// Tests that a parameters description can be set and returned
TEST_METHOD ( Can_Set_Parameter_Description )
{
// Setup
2021-06-08 14:00:20 +02:00
CmdArgsInterface cmdArgsI ;
cmdArgsI . SetCrashOnFail ( false ) ;
2021-06-05 11:56:29 +02:00
// Exercise
2021-06-08 14:00:20 +02:00
cmdArgsI . RegisterDescription ( " --force " , " Just force it " ) ;
cmdArgsI . RegisterDescription ( " --lose " , " Just lose it " ) ;
cmdArgsI . RegisterDescription ( " --crazy " , " Go crazy " ) ;
2021-06-05 11:56:29 +02:00
// Verify
2021-06-08 14:00:20 +02:00
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 " ) ) ;
2021-06-05 11:56:29 +02:00
return ;
}
//! Tests that HasDescription works
TEST_METHOD ( Has_Description )
{
// Setup
2021-06-08 14:00:20 +02:00
CmdArgsInterface cmdArgsI ;
cmdArgsI . SetCrashOnFail ( false ) ;
2021-06-05 11:56:29 +02:00
// Exercise, verify
2021-06-08 14:00:20 +02:00
Assert : : IsFalse ( cmdArgsI . HasDescription ( " --force " ) ) ;
Assert : : IsFalse ( cmdArgsI . HasDescription ( " --main " ) ) ;
2021-06-05 11:56:29 +02:00
2021-06-08 14:00:20 +02:00
cmdArgsI . RegisterDescription ( " --force " , " Just force it " ) ;
2021-06-05 11:56:29 +02:00
2021-06-08 14:00:20 +02:00
Assert : : IsTrue ( cmdArgsI . HasDescription ( " --force " ) ) ;
Assert : : IsFalse ( cmdArgsI . HasDescription ( " --main " ) ) ;
2021-06-05 11:56:29 +02:00
return ;
}
// Tests that an unknown parameter returns an empty string
TEST_METHOD ( No_Description_Is_Empty_String )
{
// Setup
2021-06-08 14:00:20 +02:00
CmdArgsInterface cmdArgsI ;
cmdArgsI . SetCrashOnFail ( false ) ;
2021-06-05 11:56:29 +02:00
// Exercise
2021-06-08 14:00:20 +02:00
cmdArgsI . RegisterDescription ( " --force " , " Just force it " ) ;
cmdArgsI . RegisterDescription ( " --lose " , " Just lose it " ) ;
cmdArgsI . RegisterDescription ( " --crazy " , " Go crazy " ) ;
2021-06-05 11:56:29 +02:00
// Verify
2021-06-08 14:00:20 +02:00
Assert : : AreEqual ( std : : string ( ) , cmdArgsI . GetDescription ( " --man " ) ) ;
2021-06-05 11:56:29 +02:00
return ;
}
// Tests that a description can be deleted
TEST_METHOD ( ClearDescription )
{
// Setup
2021-06-08 14:00:20 +02:00
CmdArgsInterface cmdArgsI ;
cmdArgsI . SetCrashOnFail ( false ) ;
2021-06-05 11:56:29 +02:00
// Exercise
2021-06-08 14:00:20 +02:00
cmdArgsI . RegisterDescription ( " --force " , " Just force it " ) ;
cmdArgsI . RegisterDescription ( " --lose " , " Just lose it " ) ;
cmdArgsI . RegisterDescription ( " --crazy " , " Go crazy " ) ;
2021-06-05 11:56:29 +02:00
2021-06-08 14:00:20 +02:00
cmdArgsI . ClearDescription ( " --lose " ) ;
2021-06-05 11:56:29 +02:00
// Verify
// These two should still work
2021-06-08 14:00:20 +02:00
Assert : : AreEqual ( std : : string ( " Just force it " ) , cmdArgsI . GetDescription ( " --force " ) ) ;
Assert : : AreEqual ( std : : string ( " Go crazy " ) , cmdArgsI . GetDescription ( " --crazy " ) ) ;
2021-06-05 11:56:29 +02:00
2021-06-08 14:00:20 +02:00
Assert : : IsFalse ( cmdArgsI . HasDescription ( " --lose " ) ) ;
2021-06-05 11:56:29 +02:00
return ;
}
// Tests that all descriptions can be deleted at once
TEST_METHOD ( ClearDescriptions )
{
// Setup
2021-06-08 14:00:20 +02:00
CmdArgsInterface cmdArgsI ;
cmdArgsI . SetCrashOnFail ( false ) ;
2021-06-05 11:56:29 +02:00
// Exercise
2021-06-08 14:00:20 +02:00
cmdArgsI . RegisterDescription ( " --force " , " Just force it " ) ;
cmdArgsI . RegisterDescription ( " --lose " , " Just lose it " ) ;
cmdArgsI . RegisterDescription ( " --crazy " , " Go crazy " ) ;
2021-06-05 11:56:29 +02:00
2021-06-08 14:00:20 +02:00
cmdArgsI . ClearDescriptions ( ) ;
2021-06-05 11:56:29 +02:00
// Verify
// These two should still work
2021-06-08 14:00:20 +02:00
Assert : : IsFalse ( cmdArgsI . HasDescription ( " --force " ) ) ;
Assert : : IsFalse ( cmdArgsI . HasDescription ( " --crazy " ) ) ;
Assert : : IsFalse ( cmdArgsI . HasDescription ( " --lose " ) ) ;
2021-06-05 11:56:29 +02:00
return ;
}
} ;
}