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 }