winget-cli

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

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 }