ContentIdTests.cpp (2554B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 4 #include "ContentUtil.h" 5 #include "sfsclient/ContentId.h" 6 7 #include <catch2/catch_test_macros.hpp> 8 9 #define TEST(...) TEST_CASE("[ContentIdTests] " __VA_ARGS__) 10 #define TEST_SCENARIO(...) TEST_CASE("[ContentIdTests] Scenario: " __VA_ARGS__) 11 12 using namespace SFS; 13 using namespace SFS::details; 14 using namespace SFS::details::contentutil; 15 16 namespace 17 { 18 std::unique_ptr<ContentId> GetContentId(const std::string& nameSpace, 19 const std::string& name, 20 const std::string& version) 21 { 22 std::unique_ptr<ContentId> contentId; 23 REQUIRE(ContentId::Make(nameSpace, name, version, contentId) == Result::Success); 24 REQUIRE(contentId != nullptr); 25 return contentId; 26 }; 27 } // namespace 28 29 TEST("Testing ContentId::Make()") 30 { 31 const std::string nameSpace{"myNameSpace"}; 32 const std::string name{"myName"}; 33 const std::string version{"myVersion"}; 34 35 const std::unique_ptr<ContentId> contentId = GetContentId(nameSpace, name, version); 36 37 CHECK(nameSpace == contentId->GetNameSpace()); 38 CHECK(name == contentId->GetName()); 39 CHECK(version == contentId->GetVersion()); 40 41 SECTION("Testing ContentId equality operators") 42 { 43 SECTION("Equal") 44 { 45 auto CompareContentIdEqual = [&contentId](const std::unique_ptr<ContentId>& sameContentId) { 46 REQUIRE((*contentId == *sameContentId)); 47 REQUIRE_FALSE((*contentId != *sameContentId)); 48 }; 49 50 CompareContentIdEqual(GetContentId(nameSpace, name, version)); 51 } 52 53 SECTION("Not equal") 54 { 55 auto CompareContentIdNotEqual = [&contentId](const std::unique_ptr<ContentId>& otherContentId) { 56 REQUIRE((*contentId != *otherContentId)); 57 REQUIRE_FALSE((*contentId == *otherContentId)); 58 }; 59 60 CompareContentIdNotEqual(GetContentId("", name, version)); 61 CompareContentIdNotEqual(GetContentId(nameSpace, "", version)); 62 CompareContentIdNotEqual(GetContentId(nameSpace, name, "")); 63 CompareContentIdNotEqual(GetContentId("", "", "")); 64 CompareContentIdNotEqual(GetContentId("MYNAMESPACE", name, version)); 65 CompareContentIdNotEqual(GetContentId(nameSpace, "MYNAME", version)); 66 CompareContentIdNotEqual(GetContentId(nameSpace, name, "MYVERSION")); 67 } 68 } 69 }