Rest.cpp (2442B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 #include "pch.h" 4 #include "TestCommon.h" 5 #include "cpprest/json.h" 6 #include <winget/Rest.h> 7 8 using namespace AppInstaller::Rest; 9 10 TEST_CASE("ValidateAndGetRestAPIBaseUri", "[RestSource]") 11 { 12 REQUIRE(GetRestAPIBaseUri("https://restsource.azurewebsites.net/api/ ") == L"https://restsource.azurewebsites.net/api"); 13 REQUIRE(GetRestAPIBaseUri("http://rest_sourc e.azurewebsites.net/api") == L"http://rest_sourc%20e.azurewebsites.net/api"); 14 REQUIRE(GetRestAPIBaseUri("http://restsource.azurewebsites.net/v1.0/%v1") == L"http://restsource.azurewebsites.net/v1.0/%25v1"); 15 } 16 17 TEST_CASE("IsValidUri", "[RestSource]") 18 { 19 REQUIRE(IsValidUri(L"http://rest%20source.azurewebsites.net/api")); 20 REQUIRE(!IsValidUri(L"http://rest source.azurewebsites.net/api")); 21 } 22 23 TEST_CASE("AppendPathToUri", "[RestSource]") 24 { 25 REQUIRE(AppendPathToUri(L"http://restsource.azurewebsites.net/api/", L"/path") == L"http://restsource.azurewebsites.net/api/path"); 26 REQUIRE(AppendPathToUri(L"http://restsource.azurewebsites.net/api/", L"/pat h") == L"http://restsource.azurewebsites.net/api/pat%20%20h"); 27 REQUIRE(AppendPathToUri(L"http://restsource.azurewebsites.net/api/", L"/path+version") == L"http://restsource.azurewebsites.net/api/path%2Bversion"); 28 } 29 30 TEST_CASE("AppendQueryParamsToUri", "[RestSource]") 31 { 32 utility::string_t url = L"http://restsource.azurewebsites.net/api"; 33 std::map<std::string_view, std::string> queryParams; 34 queryParams.emplace("Version", "1.0 .0"); 35 queryParams.emplace("Channel", "beta+"); 36 37 REQUIRE(AppendQueryParamsToUri(url, queryParams) == L"http://restsource.azurewebsites.net/api?Channel=beta%2B&Version=1.0%20.0"); 38 } 39 40 TEST_CASE("GetUniqueItems", "[RestSource]") 41 { 42 std::vector<std::string> list; 43 REQUIRE(GetUniqueItems(list).size() == 0); 44 45 std::vector<std::string> listWithDuplicates; 46 listWithDuplicates.emplace_back("object1"); 47 listWithDuplicates.emplace_back("object1"); 48 listWithDuplicates.emplace_back("object2"); 49 listWithDuplicates.emplace_back("object2"); 50 listWithDuplicates.emplace_back("object3"); 51 std::vector<std::string> result = GetUniqueItems(listWithDuplicates); 52 REQUIRE(result.size() == 3); 53 REQUIRE(result.at(0) == "object1"); 54 REQUIRE(result.at(1) == "object2"); 55 REQUIRE(result.at(2) == "object3"); 56 }