mirror of
https://github.com/microsoft/PowerToys.git
synced 2025-12-15 11:17:53 +01:00
common: do not accept invalid input in VersionHelper and add negative unit tests
This commit is contained in:
committed by
Andrey Nekrasov
parent
870f1095cd
commit
fc4ac803aa
@@ -4,11 +4,20 @@
|
||||
|
||||
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
|
||||
|
||||
namespace Microsoft::VisualStudio::CppUnitTestFramework
|
||||
{
|
||||
template<>
|
||||
inline std::wstring ToString<VersionHelper>(const VersionHelper& v)
|
||||
{
|
||||
return v.toWstring();
|
||||
}
|
||||
}
|
||||
|
||||
namespace UnitTestsVersionHelper
|
||||
{
|
||||
const int MAJOR_VERSION_0 = 0;
|
||||
const int MINOR_VERSION_12 = 12;
|
||||
const int REVISION_VERSION_0 = 0;
|
||||
const size_t MAJOR_VERSION_0 = 0;
|
||||
const size_t MINOR_VERSION_12 = 12;
|
||||
const size_t REVISION_VERSION_0 = 0;
|
||||
|
||||
TEST_CLASS (UnitTestsVersionHelper)
|
||||
{
|
||||
@@ -23,9 +32,9 @@ namespace UnitTestsVersionHelper
|
||||
}
|
||||
TEST_METHOD (integerConstructorShouldProperlyInitializationWithDifferentVersionNumbers)
|
||||
{
|
||||
const int testcaseMajor = 2;
|
||||
const int testcaseMinor = 25;
|
||||
const int testcaseRevision = 1;
|
||||
const size_t testcaseMajor = 2;
|
||||
const size_t testcaseMinor = 25;
|
||||
const size_t testcaseRevision = 1;
|
||||
VersionHelper sut(testcaseMajor, testcaseMinor, testcaseRevision);
|
||||
|
||||
Assert::AreEqual(testcaseMajor, sut.major);
|
||||
@@ -36,17 +45,77 @@ namespace UnitTestsVersionHelper
|
||||
{
|
||||
VersionHelper sut("v0.12.3");
|
||||
|
||||
Assert::AreEqual(0, sut.major);
|
||||
Assert::AreEqual(12, sut.minor);
|
||||
Assert::AreEqual(3, sut.revision);
|
||||
Assert::AreEqual(0ull, sut.major);
|
||||
Assert::AreEqual(12ull, sut.minor);
|
||||
Assert::AreEqual(3ull, sut.revision);
|
||||
}
|
||||
TEST_METHOD (stringConstructorShouldProperlyInitializationWithDifferentVersionNumbers)
|
||||
{
|
||||
VersionHelper sut("v2.25.1");
|
||||
|
||||
Assert::AreEqual(2, sut.major);
|
||||
Assert::AreEqual(25, sut.minor);
|
||||
Assert::AreEqual(1, sut.revision);
|
||||
Assert::AreEqual(2ull, sut.major);
|
||||
Assert::AreEqual(25ull, sut.minor);
|
||||
Assert::AreEqual(1ull, sut.revision);
|
||||
}
|
||||
TEST_METHOD (emptyStringNotAccepted)
|
||||
{
|
||||
Assert::ExpectException<std::logic_error>([] {
|
||||
VersionHelper sut("");
|
||||
});
|
||||
}
|
||||
TEST_METHOD (invalidStringNotAccepted1)
|
||||
{
|
||||
Assert::ExpectException<std::logic_error>([] {
|
||||
VersionHelper sut("v2a.");
|
||||
});
|
||||
}
|
||||
TEST_METHOD (invalidStringNotAccepted2)
|
||||
{
|
||||
Assert::ExpectException<std::logic_error>([] {
|
||||
VersionHelper sut("12abc2vv.0");
|
||||
});
|
||||
}
|
||||
TEST_METHOD (invalidStringNotAccepted3)
|
||||
{
|
||||
Assert::ExpectException<std::logic_error>([] {
|
||||
VersionHelper sut("123");
|
||||
});
|
||||
}
|
||||
TEST_METHOD (invalidStringNotAccepted4)
|
||||
{
|
||||
Assert::ExpectException<std::logic_error>([] {
|
||||
VersionHelper sut("v1v2v3");
|
||||
});
|
||||
}
|
||||
TEST_METHOD (invalidStringNotAccepted5)
|
||||
{
|
||||
Assert::ExpectException<std::logic_error>([] {
|
||||
VersionHelper sut("v.1.2.3v");
|
||||
});
|
||||
}
|
||||
TEST_METHOD (partialVersionStringNotAccepted1)
|
||||
{
|
||||
Assert::ExpectException<std::logic_error>([] {
|
||||
VersionHelper sut("v1.");
|
||||
});
|
||||
}
|
||||
TEST_METHOD (partialVersionStringNotAccepted2)
|
||||
{
|
||||
Assert::ExpectException<std::logic_error>([] {
|
||||
VersionHelper sut("v1.2");
|
||||
});
|
||||
}
|
||||
TEST_METHOD (partialVersionStringNotAccepted3)
|
||||
{
|
||||
Assert::ExpectException<std::logic_error>([] {
|
||||
VersionHelper sut("v1.2.");
|
||||
});
|
||||
}
|
||||
TEST_METHOD (parsedWithoutLeadingV)
|
||||
{
|
||||
VersionHelper expected{ 12ull, 13ull, 111ull };
|
||||
VersionHelper actual("12.13.111");
|
||||
Assert::AreEqual(actual, expected);
|
||||
}
|
||||
TEST_METHOD (whenMajorVersionIsGreaterComparisonOperatorShouldReturnProperValue)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user