// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #include "pch.h" #include "CurrencyHttpClient.h" #include "CalcViewModel\Common\NetworkManager.h" using namespace CalculatorApp::DataLoaders; using namespace Platform; using namespace Windows::Foundation; using namespace Windows::System::UserProfile; using namespace Windows::Web::Http; // Generic responses so unit tests will pass. static constexpr auto STATIC_DATA_RESPONSE = LR"([{"CountryCode":"USA","CountryName":"United States","CurrencyCode":"USD","CurrencyName":"Dollar","CurrencySymbol":"$"},{"CountryCode":"EUR","CountryName":"Europe","CurrencyCode":"EUR","CurrencyName":"Euro","CurrencySymbol":"€"}])"; static constexpr auto ALL_RATIOS_RESPONSE = LR"([{"An":"USD","Ch":0,"Pc":0,"Rt":1},{"An":"EUR","Ch":0.003803,"Pc":0.4149,"Rt":0.920503,"Yh":0.9667,"Yl":0.86701}])"; CurrencyHttpClient::CurrencyHttpClient() { } String^ CurrencyHttpClient::GetRawStaticDataResponse() { return StringReference(STATIC_DATA_RESPONSE); } String^ CurrencyHttpClient::GetRawAllRatiosDataResponse() { return StringReference(ALL_RATIOS_RESPONSE); } IAsyncOperationWithProgress^ CurrencyHttpClient::GetCurrencyMetadata() { return ref new MockAsyncOperationWithProgress(StringReference(STATIC_DATA_RESPONSE)); } IAsyncOperationWithProgress^ CurrencyHttpClient::GetCurrencyRatios() { return ref new MockAsyncOperationWithProgress(StringReference(ALL_RATIOS_RESPONSE)); } MockAsyncOperationWithProgress::MockAsyncOperationWithProgress(String^ result) : m_result(result) { } HResult MockAsyncOperationWithProgress::ErrorCode::get() { HResult okayResult; okayResult.Value = S_OK; return okayResult; }