winget-cli

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

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 }