winget-cli

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

ApplicabilityDetailsTests.cpp (2354B)


      1 // Copyright (c) Microsoft Corporation.
      2 // Licensed under the MIT License.
      3 
      4 #include "ApplicabilityDetails.h"
      5 #include "ContentUtil.h"
      6 
      7 #include <catch2/catch_test_macros.hpp>
      8 
      9 #define TEST(...) TEST_CASE("[ApplicabilityDetailsTests] " __VA_ARGS__)
     10 
     11 using namespace SFS;
     12 using namespace SFS::details::contentutil;
     13 
     14 namespace
     15 {
     16 std::unique_ptr<ApplicabilityDetails> GetDetails(const std::vector<Architecture>& architectures,
     17                                                  const std::vector<std::string>& platformApplicabilityForPackage)
     18 {
     19     std::unique_ptr<ApplicabilityDetails> details;
     20     REQUIRE(ApplicabilityDetails::Make(architectures, platformApplicabilityForPackage, details) == Result::Success);
     21     REQUIRE(details != nullptr);
     22     return details;
     23 };
     24 } // namespace
     25 
     26 TEST("Testing ApplicabilityDetails::Make()")
     27 {
     28     const std::vector<Architecture> architectures{Architecture::x86, Architecture::Amd64};
     29     const std::vector<std::string> platformApplicabilityForPackage{"Windows.Desktop", "Windows.Server"};
     30     const std::string fileMoniker{"myApp"};
     31 
     32     const std::unique_ptr<ApplicabilityDetails> details = GetDetails(architectures, platformApplicabilityForPackage);
     33 
     34     CHECK(architectures == details->GetArchitectures());
     35     CHECK(platformApplicabilityForPackage == details->GetPlatformApplicabilityForPackage());
     36 
     37     SECTION("Testing ApplicabilityDetails equality operators")
     38     {
     39         SECTION("Equal")
     40         {
     41             auto CompareDetailsEqual = [&details](const std::unique_ptr<ApplicabilityDetails>& sameDetails) {
     42                 REQUIRE((*details == *sameDetails));
     43                 REQUIRE_FALSE((*details != *sameDetails));
     44             };
     45 
     46             CompareDetailsEqual(GetDetails(architectures, platformApplicabilityForPackage));
     47         }
     48 
     49         SECTION("Not equal")
     50         {
     51             auto CompareDetailsNotEqual = [&details](const std::unique_ptr<ApplicabilityDetails>& otherDetails) {
     52                 REQUIRE((*details != *otherDetails));
     53                 REQUIRE_FALSE((*details == *otherDetails));
     54             };
     55 
     56             CompareDetailsNotEqual(GetDetails({}, platformApplicabilityForPackage));
     57             CompareDetailsNotEqual(GetDetails(architectures, {}));
     58             CompareDetailsNotEqual(GetDetails({}, {}));
     59         }
     60     }
     61 }