2020-02-25 09:44:13 +01:00
|
|
|
#include "pch.h"
|
|
|
|
|
|
2020-12-15 15:16:09 +03:00
|
|
|
#include <common/version/helper.h>
|
2020-02-25 09:44:13 +01:00
|
|
|
|
|
|
|
|
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
|
|
|
|
|
|
2020-08-26 15:03:53 +03:00
|
|
|
namespace Microsoft::VisualStudio::CppUnitTestFramework
|
|
|
|
|
{
|
|
|
|
|
template<>
|
|
|
|
|
inline std::wstring ToString<VersionHelper>(const VersionHelper& v)
|
|
|
|
|
{
|
|
|
|
|
return v.toWstring();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2020-02-25 09:44:13 +01:00
|
|
|
namespace UnitTestsVersionHelper
|
|
|
|
|
{
|
2020-08-26 15:03:53 +03:00
|
|
|
const size_t MAJOR_VERSION_0 = 0;
|
|
|
|
|
const size_t MINOR_VERSION_12 = 12;
|
|
|
|
|
const size_t REVISION_VERSION_0 = 0;
|
2020-02-25 09:44:13 +01:00
|
|
|
|
2020-03-05 13:07:06 +03:00
|
|
|
TEST_CLASS (UnitTestsVersionHelper)
|
2020-02-25 09:44:13 +01:00
|
|
|
{
|
|
|
|
|
public:
|
2020-05-27 10:58:47 -04:00
|
|
|
TEST_METHOD (integerConstructorShouldProperlyInitializationVersionNumbers)
|
2020-02-25 09:44:13 +01:00
|
|
|
{
|
|
|
|
|
VersionHelper sut(MAJOR_VERSION_0, MINOR_VERSION_12, REVISION_VERSION_0);
|
|
|
|
|
|
|
|
|
|
Assert::AreEqual(MAJOR_VERSION_0, sut.major);
|
|
|
|
|
Assert::AreEqual(MINOR_VERSION_12, sut.minor);
|
|
|
|
|
Assert::AreEqual(REVISION_VERSION_0, sut.revision);
|
|
|
|
|
}
|
2020-05-27 10:58:47 -04:00
|
|
|
TEST_METHOD (integerConstructorShouldProperlyInitializationWithDifferentVersionNumbers)
|
2020-02-25 09:44:13 +01:00
|
|
|
{
|
2020-08-26 15:03:53 +03:00
|
|
|
const size_t testcaseMajor = 2;
|
|
|
|
|
const size_t testcaseMinor = 25;
|
|
|
|
|
const size_t testcaseRevision = 1;
|
2020-02-25 09:44:13 +01:00
|
|
|
VersionHelper sut(testcaseMajor, testcaseMinor, testcaseRevision);
|
|
|
|
|
|
|
|
|
|
Assert::AreEqual(testcaseMajor, sut.major);
|
|
|
|
|
Assert::AreEqual(testcaseMinor, sut.minor);
|
|
|
|
|
Assert::AreEqual(testcaseRevision, sut.revision);
|
|
|
|
|
}
|
2020-05-27 10:58:47 -04:00
|
|
|
TEST_METHOD (stringConstructorShouldProperlyInitializationVersionNumbers)
|
2020-02-25 09:44:13 +01:00
|
|
|
{
|
|
|
|
|
VersionHelper sut("v0.12.3");
|
|
|
|
|
|
2020-08-26 15:03:53 +03:00
|
|
|
Assert::AreEqual(0ull, sut.major);
|
|
|
|
|
Assert::AreEqual(12ull, sut.minor);
|
|
|
|
|
Assert::AreEqual(3ull, sut.revision);
|
2020-02-25 09:44:13 +01:00
|
|
|
}
|
2020-05-27 10:58:47 -04:00
|
|
|
TEST_METHOD (stringConstructorShouldProperlyInitializationWithDifferentVersionNumbers)
|
2020-02-25 09:44:13 +01:00
|
|
|
{
|
|
|
|
|
VersionHelper sut("v2.25.1");
|
|
|
|
|
|
2020-08-26 15:03:53 +03:00
|
|
|
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);
|
2020-02-25 09:44:13 +01:00
|
|
|
}
|
2020-05-27 10:58:47 -04:00
|
|
|
TEST_METHOD (whenMajorVersionIsGreaterComparisonOperatorShouldReturnProperValue)
|
2020-02-25 09:44:13 +01:00
|
|
|
{
|
|
|
|
|
VersionHelper lhs(MAJOR_VERSION_0 + 1, MINOR_VERSION_12, REVISION_VERSION_0);
|
2020-04-01 13:30:21 +02:00
|
|
|
VersionHelper rhs(MAJOR_VERSION_0, MINOR_VERSION_12, REVISION_VERSION_0);
|
2020-02-25 09:44:13 +01:00
|
|
|
|
|
|
|
|
Assert::IsTrue(lhs > rhs);
|
|
|
|
|
}
|
2020-05-27 10:58:47 -04:00
|
|
|
TEST_METHOD (whenMajorVersionIsLesserComparisonOperatorShouldReturnProperValue)
|
2020-02-25 09:44:13 +01:00
|
|
|
{
|
|
|
|
|
VersionHelper lhs(MAJOR_VERSION_0, MINOR_VERSION_12, REVISION_VERSION_0);
|
2020-04-01 13:30:21 +02:00
|
|
|
VersionHelper rhs(MAJOR_VERSION_0 + 1, MINOR_VERSION_12, REVISION_VERSION_0);
|
2020-02-25 09:44:13 +01:00
|
|
|
|
|
|
|
|
Assert::IsFalse(lhs > rhs);
|
|
|
|
|
}
|
2020-05-27 10:58:47 -04:00
|
|
|
TEST_METHOD (whenMajorVersionIsEqualComparisonOperatorShouldCompareMinorVersionValue)
|
2020-02-25 09:44:13 +01:00
|
|
|
{
|
|
|
|
|
VersionHelper lhs(MAJOR_VERSION_0, MINOR_VERSION_12, REVISION_VERSION_0);
|
2020-04-01 13:30:21 +02:00
|
|
|
VersionHelper rhs(MAJOR_VERSION_0, MINOR_VERSION_12 - 1, REVISION_VERSION_0);
|
2020-02-25 09:44:13 +01:00
|
|
|
|
|
|
|
|
Assert::IsTrue(lhs > rhs);
|
|
|
|
|
}
|
2020-05-27 10:58:47 -04:00
|
|
|
TEST_METHOD (whenMajorVersionIsEqualComparisonOperatorShouldCompareMinorVersionValue2)
|
2020-02-25 09:44:13 +01:00
|
|
|
{
|
|
|
|
|
VersionHelper lhs(MAJOR_VERSION_0, MINOR_VERSION_12 - 1, REVISION_VERSION_0);
|
2020-04-01 13:30:21 +02:00
|
|
|
VersionHelper rhs(MAJOR_VERSION_0, MINOR_VERSION_12, REVISION_VERSION_0);
|
2020-02-25 09:44:13 +01:00
|
|
|
|
|
|
|
|
Assert::IsFalse(lhs > rhs);
|
|
|
|
|
}
|
|
|
|
|
|
2020-05-27 10:58:47 -04:00
|
|
|
TEST_METHOD (whenMajorAndMinorVersionIsEqualComparisonOperatorShouldCompareRevisionValue)
|
2020-02-25 09:44:13 +01:00
|
|
|
{
|
|
|
|
|
VersionHelper lhs(MAJOR_VERSION_0, MINOR_VERSION_12, REVISION_VERSION_0 + 1);
|
2020-04-01 13:30:21 +02:00
|
|
|
VersionHelper rhs(MAJOR_VERSION_0, MINOR_VERSION_12, REVISION_VERSION_0);
|
2020-02-25 09:44:13 +01:00
|
|
|
|
|
|
|
|
Assert::IsTrue(lhs > rhs);
|
|
|
|
|
}
|
2020-05-27 10:58:47 -04:00
|
|
|
TEST_METHOD (whenMajorAndMinorVersionIsEqualComparisonOperatorShouldCompareRevisionValue2)
|
2020-02-25 09:44:13 +01:00
|
|
|
{
|
2020-04-01 13:30:21 +02:00
|
|
|
VersionHelper lhs(MAJOR_VERSION_0, MINOR_VERSION_12, REVISION_VERSION_0);
|
2020-02-25 09:44:13 +01:00
|
|
|
VersionHelper rhs(MAJOR_VERSION_0, MINOR_VERSION_12, REVISION_VERSION_0 + 1);
|
2020-04-01 13:30:21 +02:00
|
|
|
|
|
|
|
|
Assert::IsFalse(lhs > rhs);
|
|
|
|
|
}
|
|
|
|
|
TEST_METHOD (whenMajorMinorAndRevisionIsEqualGreaterThanOperatorShouldReturnFalse)
|
|
|
|
|
{
|
2020-02-25 09:44:13 +01:00
|
|
|
VersionHelper lhs(MAJOR_VERSION_0, MINOR_VERSION_12, REVISION_VERSION_0);
|
2020-04-01 13:30:21 +02:00
|
|
|
VersionHelper rhs(MAJOR_VERSION_0, MINOR_VERSION_12, REVISION_VERSION_0);
|
2020-02-25 09:44:13 +01:00
|
|
|
|
|
|
|
|
Assert::IsFalse(lhs > rhs);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|