@ -1,30 +0,0 @@ | |||
using System.Resources; | |||
using System.Reflection; | |||
using System.Runtime.CompilerServices; | |||
using System.Runtime.InteropServices; | |||
// General Information about an assembly is controlled through the following | |||
// set of attributes. Change these attribute values to modify the information | |||
// associated with an assembly. | |||
[assembly: AssemblyTitle("eShopOnContainers.Core")] | |||
[assembly: AssemblyDescription("")] | |||
[assembly: AssemblyConfiguration("")] | |||
[assembly: AssemblyCompany("")] | |||
[assembly: AssemblyProduct("eShopOnContainers.Core")] | |||
[assembly: AssemblyCopyright("Copyright © 2014")] | |||
[assembly: AssemblyTrademark("")] | |||
[assembly: AssemblyCulture("")] | |||
[assembly: NeutralResourcesLanguage("en")] | |||
// Version information for an assembly consists of the following four values: | |||
// | |||
// Major Version | |||
// Minor Version | |||
// Build Number | |||
// Revision | |||
// | |||
// You can specify all the values or you can default the Build and Revision Numbers | |||
// by using the '*' as shown below: | |||
// [assembly: AssemblyVersion("1.0.*")] | |||
[assembly: AssemblyVersion("1.0.0.0")] | |||
[assembly: AssemblyFileVersion("1.0.0.0")] |
@ -1,80 +0,0 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Net; | |||
using System.Text; | |||
using System.Threading.Tasks; | |||
using eShopOnContainers.Core.Services.RequestProvider; | |||
using eShopOnContainers.Core.Models.Token; | |||
using eShopOnContainers.Core.Helpers; | |||
using IdentityModel; | |||
using IdentityModel.Client; | |||
using PCLCrypto; | |||
using static PCLCrypto.WinRTCrypto; | |||
namespace eShopOnContainers.Core.Services.Identity | |||
{ | |||
public class IdentityService : IIdentityService | |||
{ | |||
private readonly IRequestProvider _requestProvider; | |||
private string _codeVerifier; | |||
public IdentityService(IRequestProvider requestProvider) | |||
{ | |||
_requestProvider = requestProvider; | |||
} | |||
public string CreateAuthorizationRequest() | |||
{ | |||
// Create URI to authorization endpoint | |||
var authorizeRequest = new AuthorizeRequest(GlobalSetting.Instance.IdentityEndpoint); | |||
// Dictionary with values for the authorize request | |||
var dic = new Dictionary<string, string>(); | |||
dic.Add("client_id", GlobalSetting.Instance.ClientId); | |||
dic.Add("client_secret", GlobalSetting.Instance.ClientSecret); | |||
dic.Add("response_type", "code id_token"); | |||
dic.Add("scope", "openid profile basket orders locations marketing offline_access"); | |||
dic.Add("redirect_uri", GlobalSetting.Instance.IdentityCallback); | |||
dic.Add("nonce", Guid.NewGuid().ToString("N")); | |||
dic.Add("code_challenge", CreateCodeChallenge()); | |||
dic.Add("code_challenge_method", "S256"); | |||
// Add CSRF token to protect against cross-site request forgery attacks. | |||
var currentCSRFToken = Guid.NewGuid().ToString("N"); | |||
dic.Add("state", currentCSRFToken); | |||
var authorizeUri = authorizeRequest.Create(dic); | |||
return authorizeUri; | |||
} | |||
public string CreateLogoutRequest(string token) | |||
{ | |||
if (string.IsNullOrEmpty(token)) | |||
{ | |||
return string.Empty; | |||
} | |||
return string.Format("{0}?id_token_hint={1}&post_logout_redirect_uri={2}", | |||
GlobalSetting.Instance.LogoutEndpoint, | |||
token, | |||
GlobalSetting.Instance.LogoutCallback); | |||
} | |||
public async Task<UserToken> GetTokenAsync(string code) | |||
{ | |||
string data = string.Format("grant_type=authorization_code&code={0}&redirect_uri={1}&code_verifier={2}", code, WebUtility.UrlEncode(GlobalSetting.Instance.IdentityCallback), _codeVerifier); | |||
var token = await _requestProvider.PostAsync<UserToken>(GlobalSetting.Instance.TokenEndpoint, data, GlobalSetting.Instance.ClientId, GlobalSetting.Instance.ClientSecret); | |||
return token; | |||
} | |||
private string CreateCodeChallenge() | |||
{ | |||
_codeVerifier = RandomNumberGenerator.CreateUniqueId(); | |||
var sha256 = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithm.Sha256); | |||
var challengeBuffer = sha256.HashData(CryptographicBuffer.CreateFromByteArray(Encoding.UTF8.GetBytes(_codeVerifier))); | |||
byte[] challengeBytes; | |||
CryptographicBuffer.CopyToByteArray(challengeBuffer, out challengeBytes); | |||
return Base64Url.Encode(challengeBytes); | |||
} | |||
} | |||
} |
@ -1,11 +0,0 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<configuration> | |||
<runtime> | |||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> | |||
<dependentAssembly> | |||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> | |||
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /> | |||
</dependentAssembly> | |||
</assemblyBinding> | |||
</runtime> | |||
</configuration> |
@ -1,277 +0,0 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<PropertyGroup> | |||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |||
<ProjectGuid>{BA96A12C-4EE3-46C4-BB3F-F811B554CD01}</ProjectGuid> | |||
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | |||
<UseMSBuildEngine>true</UseMSBuildEngine> | |||
<OutputType>Library</OutputType> | |||
<RootNamespace>eShopOnContainers.Core</RootNamespace> | |||
<AssemblyName>eShopOnContainers.Core</AssemblyName> | |||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> | |||
<TargetFrameworkProfile>Profile111</TargetFrameworkProfile> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |||
<DebugSymbols>true</DebugSymbols> | |||
<DebugType>full</DebugType> | |||
<Optimize>false</Optimize> | |||
<OutputPath>bin\Debug</OutputPath> | |||
<DefineConstants>DEBUG;</DefineConstants> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | |||
<Optimize>true</Optimize> | |||
<OutputPath>bin\Release</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<Compile Include="Properties\AssemblyInfo.cs" /> | |||
<Compile Include="App.xaml.cs"> | |||
<DependentUpon>App.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Animations\FadeToAnimation.cs" /> | |||
<Compile Include="Animations\StoryBoard.cs" /> | |||
<Compile Include="Animations\Base\AnimationBase.cs" /> | |||
<Compile Include="Animations\Base\EasingType.cs" /> | |||
<Compile Include="Controls\AddBasketButton.xaml.cs"> | |||
<DependentUpon>AddBasketButton.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Controls\CustomTabbedPage.cs" /> | |||
<Compile Include="Controls\ToggleButton.cs" /> | |||
<Compile Include="Behaviors\EventToCommandBehavior.cs" /> | |||
<Compile Include="Behaviors\LineColorBehavior.cs" /> | |||
<Compile Include="Behaviors\Base\BindableBehavior.cs" /> | |||
<Compile Include="Converters\CountToBoolConverter.cs" /> | |||
<Compile Include="Converters\DatetimeConverter.cs" /> | |||
<Compile Include="Converters\DoubleConverter.cs" /> | |||
<Compile Include="Converters\FirstValidationErrorConverter.cs" /> | |||
<Compile Include="Converters\ImageConverter.cs" /> | |||
<Compile Include="Converters\InverseBoolConverter.cs" /> | |||
<Compile Include="Converters\InverseCountToBoolConverter.cs" /> | |||
<Compile Include="Converters\ItemsToHeightConverter.cs" /> | |||
<Compile Include="Converters\ItemTappedEventArgsConverter.cs" /> | |||
<Compile Include="Converters\StringNullOrEmptyBoolConverter.cs" /> | |||
<Compile Include="Converters\ToUpperConverter.cs" /> | |||
<Compile Include="Converters\WebNavigatedEventArgsConverter.cs" /> | |||
<Compile Include="Converters\WebNavigatingEventArgsConverter.cs" /> | |||
<Compile Include="Helpers\EasingHelper.cs" /> | |||
<Compile Include="Helpers\RandomNumberGenerator.cs" /> | |||
<Compile Include="Helpers\ServicesHelper.cs" /> | |||
<Compile Include="Helpers\Settings.cs" /> | |||
<Compile Include="Views\Templates\BasketItemTemplate.xaml.cs"> | |||
<DependentUpon>BasketItemTemplate.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\Templates\CampaignTemplate.xaml.cs"> | |||
<DependentUpon>CampaignTemplate.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\Templates\OrderItemTemplate.xaml.cs"> | |||
<DependentUpon>OrderItemTemplate.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\Templates\OrderTemplate.xaml.cs"> | |||
<DependentUpon>OrderTemplate.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\Templates\ProductTemplate.xaml.cs"> | |||
<DependentUpon>ProductTemplate.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\BasketView.xaml.cs"> | |||
<DependentUpon>BasketView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\CampaignDetailsView.xaml.cs"> | |||
<DependentUpon>CampaignDetailsView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\CampaignView.xaml.cs"> | |||
<DependentUpon>CampaignView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\CatalogView.xaml.cs"> | |||
<DependentUpon>CatalogView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\CheckoutView.xaml.cs"> | |||
<DependentUpon>CheckoutView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\CustomNavigationView.xaml.cs"> | |||
<DependentUpon>CustomNavigationView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\FiltersView.xaml.cs"> | |||
<DependentUpon>FiltersView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\LoginView.xaml.cs"> | |||
<DependentUpon>LoginView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\MainView.xaml.cs"> | |||
<DependentUpon>MainView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\OrderDetailView.xaml.cs"> | |||
<DependentUpon>OrderDetailView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\ProfileView.xaml.cs"> | |||
<DependentUpon>ProfileView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Views\SettingsView.xaml.cs"> | |||
<DependentUpon>SettingsView.xaml</DependentUpon> | |||
</Compile> | |||
<Compile Include="Extensions\ObservableExtension.cs" /> | |||
<Compile Include="Exceptions\ServiceAuthenticationException.cs" /> | |||
<Compile Include="Models\Basket\BasketCheckout.cs" /> | |||
<Compile Include="Models\Basket\BasketItem.cs" /> | |||
<Compile Include="Models\Basket\CustomerBasket.cs" /> | |||
<Compile Include="Models\Catalog\CatalogBrand.cs" /> | |||
<Compile Include="Models\Catalog\CatalogItem.cs" /> | |||
<Compile Include="Models\Catalog\CatalogRoot.cs" /> | |||
<Compile Include="Models\Catalog\CatalogType.cs" /> | |||
<Compile Include="Models\Location\Location.cs" /> | |||
<Compile Include="Models\Marketing\Campaign.cs" /> | |||
<Compile Include="Models\Marketing\CampaignItem.cs" /> | |||
<Compile Include="Models\Marketing\CampaignRoot.cs" /> | |||
<Compile Include="Models\Navigation\TabParameter.cs" /> | |||
<Compile Include="Models\Orders\CancelOrderCommand.cs" /> | |||
<Compile Include="Models\Orders\CardType.cs" /> | |||
<Compile Include="Models\Orders\Order.cs" /> | |||
<Compile Include="Models\Orders\OrderItem.cs" /> | |||
<Compile Include="Models\Orders\OrderStatus.cs" /> | |||
<Compile Include="Models\Token\UserToken.cs" /> | |||
<Compile Include="Models\User\Address.cs" /> | |||
<Compile Include="Models\User\LogoutParameter.cs" /> | |||
<Compile Include="Models\User\PaymentInfo.cs" /> | |||
<Compile Include="Models\User\UserInfo.cs" /> | |||
<Compile Include="Triggers\BeginAnimation.cs" /> | |||
<Compile Include="Services\Basket\BasketMockService.cs" /> | |||
<Compile Include="Services\Basket\BasketService.cs" /> | |||
<Compile Include="Services\Basket\IBasketService.cs" /> | |||
<Compile Include="Services\Catalog\CatalogMockService.cs" /> | |||
<Compile Include="Services\Catalog\CatalogService.cs" /> | |||
<Compile Include="Services\Catalog\ICatalogService.cs" /> | |||
<Compile Include="Services\Common\Common.cs" /> | |||
<Compile Include="Services\Dialog\DialogService.cs" /> | |||
<Compile Include="Services\Dialog\IDialogService.cs" /> | |||
<Compile Include="Services\Identity\IdentityService.cs" /> | |||
<Compile Include="Services\Identity\IIdentityService.cs" /> | |||
<Compile Include="Services\Location\ILocationService.cs" /> | |||
<Compile Include="Services\Location\LocationService.cs" /> | |||
<Compile Include="Services\Marketing\CampaignMockService.cs" /> | |||
<Compile Include="Services\Marketing\CampaignService.cs" /> | |||
<Compile Include="Services\Marketing\ICampaignService.cs" /> | |||
<Compile Include="Services\Navigation\INavigationService.cs" /> | |||
<Compile Include="Services\Navigation\NavigationService.cs" /> | |||
<Compile Include="Services\OpenUrl\IOpenUrlService.cs" /> | |||
<Compile Include="Services\OpenUrl\OpenUrlService.cs" /> | |||
<Compile Include="Services\Order\IOrderService.cs" /> | |||
<Compile Include="Services\Order\OrderMockService.cs" /> | |||
<Compile Include="Services\Order\OrderService.cs" /> | |||
<Compile Include="Services\RequestProvider\HttpRequestExceptionEx.cs" /> | |||
<Compile Include="Services\RequestProvider\IRequestProvider.cs" /> | |||
<Compile Include="Services\RequestProvider\RequestProvider.cs" /> | |||
<Compile Include="Services\User\IUserService.cs" /> | |||
<Compile Include="Services\User\UserMockService.cs" /> | |||
<Compile Include="Services\User\UserService.cs" /> | |||
<Compile Include="ViewModels\Base\ExtendedBindableObject.cs" /> | |||
<Compile Include="ViewModels\Base\MessageKeys.cs" /> | |||
<Compile Include="ViewModels\Base\ViewModelBase.cs" /> | |||
<Compile Include="ViewModels\Base\ViewModelLocator.cs" /> | |||
<Compile Include="ViewModels\BasketViewModel.cs" /> | |||
<Compile Include="ViewModels\CampaignDetailsViewModel.cs" /> | |||
<Compile Include="ViewModels\CampaignViewModel.cs" /> | |||
<Compile Include="ViewModels\CatalogViewModel.cs" /> | |||
<Compile Include="ViewModels\CheckoutViewModel.cs" /> | |||
<Compile Include="ViewModels\LoginViewModel.cs" /> | |||
<Compile Include="ViewModels\MainViewModel.cs" /> | |||
<Compile Include="ViewModels\OrderDetailViewModel.cs" /> | |||
<Compile Include="ViewModels\ProfileViewModel.cs" /> | |||
<Compile Include="ViewModels\SettingsViewModel.cs" /> | |||
<Compile Include="Effects\EntryLineColorEffect.cs" /> | |||
<Compile Include="Effects\ThemeEffects.cs" /> | |||
<Compile Include="Validations\IsNotNullOrEmptyRule.cs" /> | |||
<Compile Include="Validations\IValidationRule.cs" /> | |||
<Compile Include="Validations\IValidity.cs" /> | |||
<Compile Include="Validations\ValidatableObject.cs" /> | |||
<Compile Include="GlobalSettings.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="app.config" /> | |||
<None Include="project.json" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<EmbeddedResource Include="App.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Controls\AddBasketButton.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\Templates\BasketItemTemplate.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\Templates\CampaignTemplate.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\Templates\OrderItemTemplate.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\Templates\OrderTemplate.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\Templates\ProductTemplate.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\BasketView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\CampaignDetailsView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\CampaignView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\CatalogView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\SettingsView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\ProfileView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\OrderDetailView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\MainView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\LoginView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\FiltersView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\CustomNavigationView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
<EmbeddedResource Include="Views\CheckoutView.xaml"> | |||
<SubType>Designer</SubType> | |||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator> | |||
</EmbeddedResource> | |||
</ItemGroup> | |||
<ItemGroup /> | |||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" /> | |||
<Import Project="..\..\..\..\packages\Xamarin.Forms.2.3.4.270\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets" Condition="Exists('..\..\..\..\packages\Xamarin.Forms.2.3.4.270\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+Xamarin.iOS10+xamarinmac20\Xamarin.Forms.targets')" /> | |||
<Import Project="..\..\..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" /> | |||
</Project> |
@ -1,24 +0,0 @@ | |||
{ | |||
"dependencies": { | |||
"Acr.UserDialogs": "6.3.3", | |||
"Autofac": "4.5.0", | |||
"IdentityModel": "1.3.1", | |||
"Microsoft.Bcl": "1.1.10", | |||
"Microsoft.Bcl.Build": "1.0.21", | |||
"Microsoft.Net.Http": "2.2.29", | |||
"modernhttpclient": "2.4.2", | |||
"Newtonsoft.Json": "9.0.1", | |||
"PCLCrypto": "2.0.147", | |||
"SlideOverKit": "2.1.4", | |||
"Splat": "1.6.2", | |||
"System.ComponentModel.Annotations": "4.3.0", | |||
"Xam.Plugin.Geolocator": "3.0.4", | |||
"Xam.Plugins.Settings": "2.6.0.12-beta", | |||
"Xamarin.FFImageLoading": "2.2.9", | |||
"Xamarin.FFImageLoading.Forms": "2.2.9", | |||
"Xamarin.Forms": "2.5.0.91635" | |||
}, | |||
"frameworks": { | |||
".NETPortable,Version=v4.5,Profile=Profile111": {} | |||
} | |||
} |
@ -1,93 +0,0 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<packages> | |||
<package id="Acr.Support" version="2.1.0" targetFramework="monoandroid70" /> | |||
<package id="Acr.UserDialogs" version="6.3.8" targetFramework="monoandroid80" /> | |||
<package id="AndHUD" version="1.2.0" targetFramework="monoandroid70" /> | |||
<package id="Autofac" version="4.5.0" targetFramework="monoandroid60" /> | |||
<package id="IdentityModel" version="1.3.1" targetFramework="monoandroid60" /> | |||
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="monoandroid60" /> | |||
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="monoandroid60" /> | |||
<package id="Microsoft.CSharp" version="4.0.1" targetFramework="monoandroid70" /> | |||
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="monoandroid70" /> | |||
<package id="Microsoft.NETCore.Platforms" version="1.0.1" targetFramework="monoandroid60" /> | |||
<package id="Microsoft.Win32.Primitives" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="modernhttpclient" version="2.4.2" targetFramework="monoandroid70" /> | |||
<package id="NETStandard.Library" version="1.6.0" targetFramework="monoandroid60" /> | |||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="monoandroid60" /> | |||
<package id="PCLCrypto" version="2.0.147" targetFramework="monoandroid60" /> | |||
<package id="PInvoke.BCrypt" version="0.3.2" targetFramework="monoandroid60" /> | |||
<package id="PInvoke.Kernel32" version="0.3.2" targetFramework="monoandroid60" /> | |||
<package id="PInvoke.NCrypt" version="0.3.2" targetFramework="monoandroid60" /> | |||
<package id="PInvoke.Windows.Core" version="0.3.2" targetFramework="monoandroid60" /> | |||
<package id="Plugin.CurrentActivity" version="1.0.1" targetFramework="monoandroid60" /> | |||
<package id="Plugin.Permissions" version="1.1.7" targetFramework="monoandroid60" /> | |||
<package id="SlideOverKit" version="2.1.4" targetFramework="monoandroid70" /> | |||
<package id="Splat" version="1.6.2" targetFramework="monoandroid70" /> | |||
<package id="System.AppContext" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Collections" version="4.0.11" targetFramework="monoandroid70" /> | |||
<package id="System.Collections.Concurrent" version="4.0.12" targetFramework="monoandroid60" /> | |||
<package id="System.ComponentModel" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Console" version="4.0.0" targetFramework="monoandroid60" /> | |||
<package id="System.Diagnostics.Debug" version="4.0.11" targetFramework="monoandroid70" /> | |||
<package id="System.Diagnostics.Tools" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Diagnostics.Tracing" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Dynamic.Runtime" version="4.0.11" targetFramework="monoandroid70" /> | |||
<package id="System.Globalization" version="4.0.11" targetFramework="monoandroid70" /> | |||
<package id="System.Globalization.Calendars" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.IO" version="4.1.0" targetFramework="monoandroid70" /> | |||
<package id="System.IO.Compression" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.IO.Compression.ZipFile" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.IO.FileSystem" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Linq" version="4.1.0" targetFramework="monoandroid70" /> | |||
<package id="System.Linq.Expressions" version="4.1.0" targetFramework="monoandroid70" /> | |||
<package id="System.Net.Http" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Net.Primitives" version="4.0.11" targetFramework="monoandroid60" /> | |||
<package id="System.Net.Sockets" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.ObjectModel" version="4.0.12" targetFramework="monoandroid70" /> | |||
<package id="System.Reflection" version="4.1.0" targetFramework="monoandroid70" /> | |||
<package id="System.Reflection.Extensions" version="4.0.1" targetFramework="monoandroid70" /> | |||
<package id="System.Reflection.Primitives" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Resources.ResourceManager" version="4.0.1" targetFramework="monoandroid70" /> | |||
<package id="System.Runtime" version="4.1.0" targetFramework="monoandroid70" /> | |||
<package id="System.Runtime.Extensions" version="4.1.0" targetFramework="monoandroid70" /> | |||
<package id="System.Runtime.Handles" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Runtime.InteropServices" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.0.0" targetFramework="monoandroid60" /> | |||
<package id="System.Runtime.Numerics" version="4.0.1" targetFramework="monoandroid70" /> | |||
<package id="System.Runtime.Serialization.Primitives" version="4.1.1" targetFramework="monoandroid70" /> | |||
<package id="System.Security.Cryptography.Algorithms" version="4.2.0" targetFramework="monoandroid60" /> | |||
<package id="System.Security.Cryptography.Encoding" version="4.0.0" targetFramework="monoandroid60" /> | |||
<package id="System.Security.Cryptography.Primitives" version="4.0.0" targetFramework="monoandroid60" /> | |||
<package id="System.Security.Cryptography.X509Certificates" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Text.Encoding" version="4.0.11" targetFramework="monoandroid70" /> | |||
<package id="System.Text.Encoding.Extensions" version="4.0.11" targetFramework="monoandroid70" /> | |||
<package id="System.Text.RegularExpressions" version="4.1.0" targetFramework="monoandroid70" /> | |||
<package id="System.Threading" version="4.0.11" targetFramework="monoandroid70" /> | |||
<package id="System.Threading.Tasks" version="4.0.11" targetFramework="monoandroid70" /> | |||
<package id="System.Threading.Timer" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Xml.ReaderWriter" version="4.0.11" targetFramework="monoandroid70" /> | |||
<package id="System.Xml.XDocument" version="4.0.11" targetFramework="monoandroid70" /> | |||
<package id="Validation" version="2.2.8" targetFramework="monoandroid60" /> | |||
<package id="Xam.Plugin.Geolocator" version="3.0.4" targetFramework="monoandroid60" /> | |||
<package id="Xam.Plugins.Settings" version="2.6.0.12-beta" targetFramework="monoandroid70" /> | |||
<package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Annotations" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Compat" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Core.UI" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Core.Utils" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Design" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Fragment" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Media.Compat" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Transition" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v4" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v7.AppCompat" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v7.CardView" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v7.MediaRouter" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v7.Palette" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v7.RecyclerView" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Vector.Drawable" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.FFImageLoading" version="2.2.9" targetFramework="monoandroid60" /> | |||
<package id="Xamarin.FFImageLoading.Forms" version="2.2.9" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Forms" version="2.5.0.91635" targetFramework="monoandroid80" /> | |||
</packages> |
@ -0,0 +1,44 @@ | |||
/* | |||
// Helpers/Settings.cs This file was automatically added when you installed the Settings Plugin. If you are not using a PCL then comment this file back in to use it. | |||
using Plugin.Settings; | |||
using Plugin.Settings.Abstractions; | |||
namespace eShopOnContainers.TestRunner.Droid.Helpers | |||
{ | |||
/// <summary> | |||
/// This is the Settings static class that can be used in your Core solution or in any | |||
/// of your client applications. All settings are laid out the same exact way with getters | |||
/// and setters. | |||
/// </summary> | |||
public static class Settings | |||
{ | |||
private static ISettings AppSettings | |||
{ | |||
get | |||
{ | |||
return CrossSettings.Current; | |||
} | |||
} | |||
#region Setting Constants | |||
private const string SettingsKey = "settings_key"; | |||
private static readonly string SettingsDefault = string.Empty; | |||
#endregion | |||
public static string GeneralSettings | |||
{ | |||
get | |||
{ | |||
return AppSettings.GetValueOrDefault(SettingsKey, SettingsDefault); | |||
} | |||
set | |||
{ | |||
AppSettings.AddOrUpdateValue(SettingsKey, value); | |||
} | |||
} | |||
} | |||
}*/ |
@ -1,63 +0,0 @@ | |||
using System; | |||
using Android.App; | |||
using Android.OS; | |||
using Android.Runtime; | |||
using Plugin.CurrentActivity; | |||
namespace eShopOnContainers.TestRunner.Droid | |||
{ | |||
//You can specify additional application information in this attribute | |||
[Application] | |||
public class MainApplication : Application, Application.IActivityLifecycleCallbacks | |||
{ | |||
public MainApplication(IntPtr handle, JniHandleOwnership transer) | |||
:base(handle, transer) | |||
{ | |||
} | |||
public override void OnCreate() | |||
{ | |||
base.OnCreate(); | |||
RegisterActivityLifecycleCallbacks(this); | |||
//A great place to initialize Xamarin.Insights and Dependency Services! | |||
} | |||
public override void OnTerminate() | |||
{ | |||
base.OnTerminate(); | |||
UnregisterActivityLifecycleCallbacks(this); | |||
} | |||
public void OnActivityCreated(Activity activity, Bundle savedInstanceState) | |||
{ | |||
CrossCurrentActivity.Current.Activity = activity; | |||
} | |||
public void OnActivityDestroyed(Activity activity) | |||
{ | |||
} | |||
public void OnActivityPaused(Activity activity) | |||
{ | |||
} | |||
public void OnActivityResumed(Activity activity) | |||
{ | |||
CrossCurrentActivity.Current.Activity = activity; | |||
} | |||
public void OnActivitySaveInstanceState(Activity activity, Bundle outState) | |||
{ | |||
} | |||
public void OnActivityStarted(Activity activity) | |||
{ | |||
CrossCurrentActivity.Current.Activity = activity; | |||
} | |||
public void OnActivityStopped(Activity activity) | |||
{ | |||
} | |||
} | |||
} |
@ -1,97 +0,0 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<packages> | |||
<package id="Acr.Support" version="2.1.0" targetFramework="monoandroid60" /> | |||
<package id="Acr.UserDialogs" version="6.3.8" targetFramework="monoandroid80" /> | |||
<package id="AndHUD" version="1.2.0" targetFramework="monoandroid60" /> | |||
<package id="Autofac" version="4.5.0" targetFramework="monoandroid60" /> | |||
<package id="IdentityModel" version="1.3.1" targetFramework="monoandroid60" /> | |||
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="monoandroid60" /> | |||
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="monoandroid60" /> | |||
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="monoandroid60" /> | |||
<package id="Microsoft.NETCore.Platforms" version="1.0.1" targetFramework="monoandroid60" /> | |||
<package id="Microsoft.Win32.Primitives" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="modernhttpclient" version="2.4.2" targetFramework="monoandroid60" /> | |||
<package id="NETStandard.Library" version="1.6.0" targetFramework="monoandroid60" /> | |||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="monoandroid60" /> | |||
<package id="PCLCrypto" version="2.0.147" targetFramework="monoandroid60" /> | |||
<package id="PInvoke.BCrypt" version="0.3.2" targetFramework="monoandroid60" /> | |||
<package id="PInvoke.Kernel32" version="0.3.2" targetFramework="monoandroid60" /> | |||
<package id="PInvoke.NCrypt" version="0.3.2" targetFramework="monoandroid60" /> | |||
<package id="PInvoke.Windows.Core" version="0.3.2" targetFramework="monoandroid60" /> | |||
<package id="Plugin.CurrentActivity" version="1.0.1" targetFramework="monoandroid60" /> | |||
<package id="Plugin.Permissions" version="1.1.7" targetFramework="monoandroid60" /> | |||
<package id="SlideOverKit" version="2.1.4" targetFramework="monoandroid60" /> | |||
<package id="Splat" version="1.6.2" targetFramework="monoandroid60" /> | |||
<package id="System.AppContext" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Collections" version="4.0.11" targetFramework="monoandroid60" /> | |||
<package id="System.Collections.Concurrent" version="4.0.12" targetFramework="monoandroid60" /> | |||
<package id="System.ComponentModel" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Console" version="4.0.0" targetFramework="monoandroid60" /> | |||
<package id="System.Diagnostics.Debug" version="4.0.11" targetFramework="monoandroid60" /> | |||
<package id="System.Diagnostics.Tools" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Diagnostics.Tracing" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Globalization" version="4.0.11" targetFramework="monoandroid60" /> | |||
<package id="System.Globalization.Calendars" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.IO" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.IO.Compression" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.IO.Compression.ZipFile" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.IO.FileSystem" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Linq" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Linq.Expressions" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Net.Http" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Net.Primitives" version="4.0.11" targetFramework="monoandroid60" /> | |||
<package id="System.Net.Sockets" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.ObjectModel" version="4.0.12" targetFramework="monoandroid60" /> | |||
<package id="System.Reflection" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Reflection.Extensions" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Reflection.Primitives" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Resources.ResourceManager" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Runtime" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Runtime.Extensions" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Runtime.Handles" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Runtime.InteropServices" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.0.0" targetFramework="monoandroid60" /> | |||
<package id="System.Runtime.Numerics" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Security.Cryptography.Algorithms" version="4.2.0" targetFramework="monoandroid60" /> | |||
<package id="System.Security.Cryptography.Encoding" version="4.0.0" targetFramework="monoandroid60" /> | |||
<package id="System.Security.Cryptography.Primitives" version="4.0.0" targetFramework="monoandroid60" /> | |||
<package id="System.Security.Cryptography.X509Certificates" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Text.Encoding" version="4.0.11" targetFramework="monoandroid60" /> | |||
<package id="System.Text.Encoding.Extensions" version="4.0.11" targetFramework="monoandroid60" /> | |||
<package id="System.Text.RegularExpressions" version="4.1.0" targetFramework="monoandroid60" /> | |||
<package id="System.Threading" version="4.0.11" targetFramework="monoandroid60" /> | |||
<package id="System.Threading.Tasks" version="4.0.11" targetFramework="monoandroid60" /> | |||
<package id="System.Threading.Timer" version="4.0.1" targetFramework="monoandroid60" /> | |||
<package id="System.Xml.ReaderWriter" version="4.0.11" targetFramework="monoandroid60" /> | |||
<package id="System.Xml.XDocument" version="4.0.11" targetFramework="monoandroid60" /> | |||
<package id="Validation" version="2.2.8" targetFramework="monoandroid60" /> | |||
<package id="Xam.Plugin.Geolocator" version="3.0.4" targetFramework="monoandroid60" /> | |||
<package id="Xam.Plugins.Settings" version="2.6.0.12-beta" targetFramework="monoandroid60" /> | |||
<package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Annotations" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Compat" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Core.UI" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Core.Utils" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Design" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Fragment" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Media.Compat" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Transition" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v4" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v7.AppCompat" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v7.CardView" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v7.MediaRouter" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v7.Palette" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.v7.RecyclerView" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Android.Support.Vector.Drawable" version="25.4.0.2" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.FFImageLoading" version="2.2.9" targetFramework="monoandroid60" /> | |||
<package id="Xamarin.FFImageLoading.Forms" version="2.2.9" targetFramework="monoandroid80" /> | |||
<package id="Xamarin.Forms" version="2.5.0.91635" targetFramework="monoandroid80" /> | |||
<package id="xunit.abstractions" version="2.0.0" targetFramework="monoandroid60" /> | |||
<package id="xunit.assert" version="2.2.0" targetFramework="monoandroid60" /> | |||
<package id="xunit.core" version="2.1.0" targetFramework="monoandroid60" /> | |||
<package id="xunit.extensibility.core" version="2.1.0" targetFramework="monoandroid60" /> | |||
<package id="xunit.extensibility.execution" version="2.1.0" targetFramework="monoandroid60" /> | |||
<package id="xunit.runner.devices" version="2.1.0" targetFramework="monoandroid80" /> | |||
<package id="xunit.runner.utility" version="2.1.0" targetFramework="monoandroid60" /> | |||
</packages> |
@ -0,0 +1,44 @@ | |||
/* | |||
// Helpers/Settings.cs This file was automatically added when you installed the Settings Plugin. If you are not using a PCL then comment this file back in to use it. | |||
using Plugin.Settings; | |||
using Plugin.Settings.Abstractions; | |||
namespace eShopOnContainers.TestRunner.iOS.Helpers | |||
{ | |||
/// <summary> | |||
/// This is the Settings static class that can be used in your Core solution or in any | |||
/// of your client applications. All settings are laid out the same exact way with getters | |||
/// and setters. | |||
/// </summary> | |||
public static class Settings | |||
{ | |||
private static ISettings AppSettings | |||
{ | |||
get | |||
{ | |||
return CrossSettings.Current; | |||
} | |||
} | |||
#region Setting Constants | |||
private const string SettingsKey = "settings_key"; | |||
private static readonly string SettingsDefault = string.Empty; | |||
#endregion | |||
public static string GeneralSettings | |||
{ | |||
get | |||
{ | |||
return AppSettings.GetValueOrDefault(SettingsKey, SettingsDefault); | |||
} | |||
set | |||
{ | |||
AppSettings.AddOrUpdateValue(SettingsKey, value); | |||
} | |||
} | |||
} | |||
}*/ |
@ -1,79 +0,0 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<packages> | |||
<package id="Acr.Support" version="2.1.0" targetFramework="xamarinios10" /> | |||
<package id="Acr.UserDialogs" version="6.3.3" targetFramework="xamarinios10" /> | |||
<package id="Autofac" version="4.5.0" targetFramework="xamarinios10" /> | |||
<package id="IdentityModel" version="1.3.1" targetFramework="xamarinios10" /> | |||
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="xamarinios10" /> | |||
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="xamarinios10" /> | |||
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="xamarinios10" /> | |||
<package id="Microsoft.NETCore.Platforms" version="1.0.1" targetFramework="xamarinios10" /> | |||
<package id="Microsoft.Win32.Primitives" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="modernhttpclient" version="2.4.2" targetFramework="xamarinios10" /> | |||
<package id="NETStandard.Library" version="1.6.0" targetFramework="xamarinios10" /> | |||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="xamarinios10" /> | |||
<package id="PCLCrypto" version="2.0.147" targetFramework="xamarinios10" /> | |||
<package id="PInvoke.BCrypt" version="0.3.2" targetFramework="xamarinios10" /> | |||
<package id="PInvoke.Kernel32" version="0.3.2" targetFramework="xamarinios10" /> | |||
<package id="PInvoke.NCrypt" version="0.3.2" targetFramework="xamarinios10" /> | |||
<package id="PInvoke.Windows.Core" version="0.3.2" targetFramework="xamarinios10" /> | |||
<package id="SlideOverKit" version="2.1.4" targetFramework="xamarinios10" /> | |||
<package id="Splat" version="1.6.2" targetFramework="xamarinios10" /> | |||
<package id="System.AppContext" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Collections" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Collections.Concurrent" version="4.0.12" targetFramework="xamarinios10" /> | |||
<package id="System.ComponentModel" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Console" version="4.0.0" targetFramework="xamarinios10" /> | |||
<package id="System.Diagnostics.Debug" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Diagnostics.Tools" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Diagnostics.Tracing" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Globalization" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Globalization.Calendars" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.IO" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.IO.Compression" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.IO.Compression.ZipFile" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.IO.FileSystem" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Linq" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Linq.Expressions" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Net.Http" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Net.Primitives" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Net.Sockets" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.ObjectModel" version="4.0.12" targetFramework="xamarinios10" /> | |||
<package id="System.Reflection" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Reflection.Extensions" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Reflection.Primitives" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Resources.ResourceManager" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime.Extensions" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime.Handles" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime.InteropServices" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.0.0" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime.Numerics" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Security.Cryptography.Algorithms" version="4.2.0" targetFramework="xamarinios10" /> | |||
<package id="System.Security.Cryptography.Encoding" version="4.0.0" targetFramework="xamarinios10" /> | |||
<package id="System.Security.Cryptography.Primitives" version="4.0.0" targetFramework="xamarinios10" /> | |||
<package id="System.Security.Cryptography.X509Certificates" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Text.Encoding" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Text.Encoding.Extensions" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Text.RegularExpressions" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Threading" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Threading.Tasks" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Threading.Timer" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Xml.ReaderWriter" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Xml.XDocument" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="Validation" version="2.2.8" targetFramework="xamarinios10" /> | |||
<package id="WebP.Touch" version="1.0.3" targetFramework="xamarinios10" /> | |||
<package id="Xam.Plugin.Geolocator" version="3.0.4" targetFramework="xamarinios10" /> | |||
<package id="Xam.Plugins.Settings" version="2.6.0.12-beta" targetFramework="xamarinios10" /> | |||
<package id="Xamarin.FFImageLoading" version="2.2.9" targetFramework="xamarinios10" /> | |||
<package id="Xamarin.FFImageLoading.Forms" version="2.2.9" targetFramework="xamarinios10" /> | |||
<package id="Xamarin.Forms" version="2.5.0.91635" targetFramework="xamarinios10" /> | |||
<package id="xunit.abstractions" version="2.0.0" targetFramework="xamarinios10" /> | |||
<package id="xunit.assert" version="2.2.0" targetFramework="xamarinios10" /> | |||
<package id="xunit.core" version="2.1.0" targetFramework="xamarinios10" /> | |||
<package id="xunit.extensibility.core" version="2.1.0" targetFramework="xamarinios10" /> | |||
<package id="xunit.extensibility.execution" version="2.1.0" targetFramework="xamarinios10" /> | |||
<package id="xunit.runner.devices" version="2.1.0" targetFramework="xamarinios10" /> | |||
<package id="xunit.runner.utility" version="2.1.0" targetFramework="xamarinios10" /> | |||
</packages> |
@ -1,120 +0,0 @@ | |||
using Xunit; | |||
using Xamarin.Forms; | |||
using System; | |||
using System.Globalization; | |||
namespace eShopOnContainers.UnitTests | |||
{ | |||
public class EventToCommandBehaviorTests | |||
{ | |||
[Fact] | |||
public void InvalidEventNameShouldThrowArgumentExceptionText() | |||
{ | |||
var behavior = new MockEventToCommandBehavior | |||
{ | |||
EventName = "OnItemTapped" | |||
}; | |||
var listView = new ListView(); | |||
Assert.Throws<ArgumentException>(() => listView.Behaviors.Add(behavior)); | |||
} | |||
[Fact] | |||
public void CommandExecutedWhenEventFiresText() | |||
{ | |||
bool executedCommand = false; | |||
var behavior = new MockEventToCommandBehavior | |||
{ | |||
EventName = "ItemTapped", | |||
Command = new Command(() => | |||
{ | |||
executedCommand = true; | |||
}) | |||
}; | |||
var listView = new ListView(); | |||
listView.Behaviors.Add(behavior); | |||
behavior.RaiseEvent(listView, null); | |||
Assert.True(executedCommand); | |||
} | |||
[Fact] | |||
public void CommandCanExecuteTest() | |||
{ | |||
var behavior = new MockEventToCommandBehavior | |||
{ | |||
EventName = "ItemTapped", | |||
Command = new Command(() => Assert.True(false), () => false) | |||
}; | |||
var listView = new ListView(); | |||
listView.Behaviors.Add(behavior); | |||
behavior.RaiseEvent(listView, null); | |||
} | |||
[Fact] | |||
public void CommandCanExecuteWithParameterShouldNotExecuteTest() | |||
{ | |||
bool shouldExecute = false; | |||
var behavior = new MockEventToCommandBehavior | |||
{ | |||
EventName = "ItemTapped", | |||
CommandParameter = shouldExecute, | |||
Command = new Command<string>(o => Assert.True(false), o => o.Equals(true)) | |||
}; | |||
var listView = new ListView(); | |||
listView.Behaviors.Add(behavior); | |||
behavior.RaiseEvent(listView, null); | |||
} | |||
[Fact] | |||
public void CommandWithConverterTest() | |||
{ | |||
const string item = "ItemProperty"; | |||
bool executedCommand = false; | |||
var behavior = new MockEventToCommandBehavior | |||
{ | |||
EventName = "ItemTapped", | |||
EventArgsConverter = new ItemTappedEventArgsConverter(false), | |||
Command = new Command<string>(o => | |||
{ | |||
executedCommand = true; | |||
Assert.NotNull(o); | |||
Assert.Equal(item, o); | |||
}) | |||
}; | |||
var listView = new ListView(); | |||
listView.Behaviors.Add(behavior); | |||
behavior.RaiseEvent(listView, new ItemTappedEventArgs(listView, item)); | |||
Assert.True(executedCommand); | |||
} | |||
private class ItemTappedEventArgsConverter : IValueConverter | |||
{ | |||
private readonly bool _returnParameter; | |||
public bool HasConverted { get; private set; } | |||
public ItemTappedEventArgsConverter(bool returnParameter) | |||
{ | |||
_returnParameter = returnParameter; | |||
} | |||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) | |||
{ | |||
HasConverted = true; | |||
return _returnParameter ? parameter : (value as ItemTappedEventArgs)?.Item; | |||
} | |||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) | |||
{ | |||
throw new NotImplementedException(); | |||
} | |||
} | |||
} | |||
} |
@ -0,0 +1,50 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.ComponentModel; | |||
namespace eShopOnContainers.UnitTests.Helpers | |||
{ | |||
public class PropertyChangeTracker | |||
{ | |||
List<string> _notifications = new List<string>(); | |||
public PropertyChangeTracker(INotifyPropertyChanged changer) | |||
{ | |||
changer.PropertyChanged += (sender, e) => _notifications.Add(e.PropertyName + ".Value"); | |||
} | |||
//public string[] ChangedProperties | |||
//{ | |||
// get { return _notifications.ToArray(); } | |||
//} | |||
public bool WaitForChange(string propertyName, int maxWaitMilliSeconds) | |||
{ | |||
var startTime = DateTime.UtcNow; | |||
while (!_notifications.Contains(propertyName)) | |||
{ | |||
if (startTime.AddMilliseconds(maxWaitMilliSeconds) < DateTime.UtcNow) | |||
return false; | |||
} | |||
return true; | |||
} | |||
public bool WaitForChange(string propertyName, TimeSpan maxWait) | |||
{ | |||
var startTime = DateTime.UtcNow; | |||
while (!_notifications.Contains(propertyName)) | |||
{ | |||
if (startTime + maxWait < DateTime.UtcNow) | |||
return false; | |||
} | |||
return true; | |||
} | |||
public void Reset() | |||
{ | |||
_notifications.Clear(); | |||
} | |||
} | |||
} |
@ -1,53 +0,0 @@ | |||
using eShopOnContainers.Core.ViewModels.Base; | |||
using eShopOnContainers.Core.Validations; | |||
namespace eShopOnContainers.UnitTests | |||
{ | |||
public class MockViewModel : ViewModelBase | |||
{ | |||
private ValidatableObject<string> _forename; | |||
private ValidatableObject<string> _surname; | |||
public ValidatableObject<string> Forename | |||
{ | |||
get | |||
{ | |||
return _forename; | |||
} | |||
set | |||
{ | |||
_forename = value; | |||
RaisePropertyChanged(() => Forename); | |||
} | |||
} | |||
public ValidatableObject<string> Surname | |||
{ | |||
get | |||
{ | |||
return _surname; | |||
} | |||
set | |||
{ | |||
_surname = value; | |||
RaisePropertyChanged(() => Surname); | |||
} | |||
} | |||
public MockViewModel() | |||
{ | |||
_forename = new ValidatableObject<string>(); | |||
_surname = new ValidatableObject<string>(); | |||
_forename.Validations.Add(new IsNotNullOrEmptyRule<string> { ValidationMessage = "Forename is required." }); | |||
_surname.Validations.Add(new IsNotNullOrEmptyRule<string> { ValidationMessage = "Surname name is required." }); | |||
} | |||
public bool Validate() | |||
{ | |||
bool isValidForename = _forename.Validate(); | |||
bool isValidSurname = _surname.Validate(); | |||
return isValidForename && isValidSurname; | |||
} | |||
} | |||
} |
@ -1,30 +0,0 @@ | |||
using System.Resources; | |||
using System.Reflection; | |||
using System.Runtime.CompilerServices; | |||
using System.Runtime.InteropServices; | |||
// La información general de un ensamblado se controla mediante el siguiente | |||
// conjunto de atributos. Cambie estos valores de atributo para modificar la información | |||
// asociada con un ensamblado. | |||
[assembly: AssemblyTitle("eShopOnContainers.UnitTests")] | |||
[assembly: AssemblyDescription("")] | |||
[assembly: AssemblyConfiguration("")] | |||
[assembly: AssemblyCompany("")] | |||
[assembly: AssemblyProduct("eShopOnContainers.UnitTests")] | |||
[assembly: AssemblyCopyright("Copyright © 2016")] | |||
[assembly: AssemblyTrademark("")] | |||
[assembly: AssemblyCulture("")] | |||
[assembly: NeutralResourcesLanguage("es")] | |||
// La información de versión de un ensamblado consta de los cuatro valores siguientes: | |||
// | |||
// Versión principal | |||
// Versión secundaria | |||
// Número de compilación | |||
// Revisión | |||
// | |||
// Puede especificar todos los valores o usar los valores predeterminados de número de compilación y de revisión | |||
// mediante el carácter '*', como se muestra a continuación: | |||
// [assembly: AssemblyVersion("1.0.*")] | |||
[assembly: AssemblyVersion("1.0.0.0")] | |||
[assembly: AssemblyFileVersion("1.0.0.0")] |
@ -1,17 +0,0 @@ | |||
using eShopOnContainers.Core.Services.Catalog; | |||
using System.Threading.Tasks; | |||
using Xunit; | |||
namespace eShopOnContainers.UnitTests | |||
{ | |||
public class BasketServiceTests | |||
{ | |||
[Fact] | |||
public async Task GetFakeBasketTest() | |||
{ | |||
var catalogMockService = new CatalogMockService(); | |||
var result = await catalogMockService.GetCatalogAsync(); | |||
Assert.NotEqual(0, result.Count); | |||
} | |||
} | |||
} |
@ -1,36 +0,0 @@ | |||
using eShopOnContainers.Core.Services.Catalog; | |||
using System.Threading.Tasks; | |||
using Xunit; | |||
namespace eShopOnContainers.UnitTests | |||
{ | |||
public class CatalogServiceTests | |||
{ | |||
[Fact] | |||
public async Task GetFakeCatalogTest() | |||
{ | |||
var catalogMockService = new CatalogMockService(); | |||
var catalog = await catalogMockService.GetCatalogAsync(); | |||
Assert.NotEqual(0, catalog.Count); | |||
} | |||
[Fact] | |||
public async Task GetFakeCatalogBrandTest() | |||
{ | |||
var catalogMockService = new CatalogMockService(); | |||
var catalogBrand = await catalogMockService.GetCatalogBrandAsync(); | |||
Assert.NotEqual(0, catalogBrand.Count); | |||
} | |||
[Fact] | |||
public async Task GetFakeCatalogTypeTest() | |||
{ | |||
var catalogMockService = new CatalogMockService(); | |||
var catalogType = await catalogMockService.GetCatalogTypeAsync(); | |||
Assert.NotEqual(0, catalogType.Count); | |||
} | |||
} | |||
} |
@ -1,29 +0,0 @@ | |||
namespace eShopOnContainers.UnitTests.Services | |||
{ | |||
using System.Threading.Tasks; | |||
using Core; | |||
using Core.Helpers; | |||
using Core.Services.Marketing; | |||
using Xunit; | |||
public class MarketingServiceTests | |||
{ | |||
[Fact] | |||
public async Task GetFakeCampaigTest() | |||
{ | |||
var campaignMockService = new CampaignMockService(); | |||
var order = await campaignMockService.GetCampaignByIdAsync(1, GlobalSetting.Instance.AuthToken); | |||
Assert.NotNull(order); | |||
} | |||
[Fact] | |||
public async Task GetFakeCampaignsTest() | |||
{ | |||
var campaignMockService = new CampaignMockService(); | |||
var result = await campaignMockService.GetAllCampaignsAsync(GlobalSetting.Instance.AuthToken); | |||
Assert.NotEqual(0, result.Count); | |||
} | |||
} | |||
} |
@ -1,28 +0,0 @@ | |||
using eShopOnContainers.Core; | |||
using eShopOnContainers.Core.Services.Order; | |||
using System.Threading.Tasks; | |||
using Xunit; | |||
namespace eShopOnContainers.UnitTests | |||
{ | |||
public class OrdersServiceTests | |||
{ | |||
[Fact] | |||
public async Task GetFakeOrderTest() | |||
{ | |||
var ordersMockService = new OrderMockService(); | |||
var order = await ordersMockService.GetOrderAsync(1, GlobalSetting.Instance.AuthToken); | |||
Assert.NotNull(order); | |||
} | |||
[Fact] | |||
public async Task GetFakeOrdersTest() | |||
{ | |||
var ordersMockService = new OrderMockService(); | |||
var result = await ordersMockService.GetOrdersAsync(GlobalSetting.Instance.AuthToken); | |||
Assert.NotEqual(0, result.Count); | |||
} | |||
} | |||
} |
@ -1,223 +0,0 @@ | |||
using Xunit; | |||
using eShopOnContainers.Core.ViewModels; | |||
using eShopOnContainers.Core.ViewModels.Base; | |||
using eShopOnContainers.Core.Services.Catalog; | |||
using eShopOnContainers.Core.Models.Catalog; | |||
using System.Threading.Tasks; | |||
using System.Linq; | |||
namespace eShopOnContainers.UnitTests | |||
{ | |||
public class CatalogViewModelTests | |||
{ | |||
public CatalogViewModelTests() | |||
{ | |||
ViewModelLocator.RegisterDependencies(true); | |||
} | |||
[Fact] | |||
public void AddCatalogItemCommandIsNotNullTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
Assert.NotNull(catalogViewModel.AddCatalogItemCommand); | |||
} | |||
[Fact] | |||
public void FilterCommandIsNotNullTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
Assert.NotNull(catalogViewModel.FilterCommand); | |||
} | |||
[Fact] | |||
public void ClearFilterCommandIsNotNullTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
Assert.NotNull(catalogViewModel.ClearFilterCommand); | |||
} | |||
[Fact] | |||
public void ProductsPropertyIsNullWhenViewModelInstantiatedTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
Assert.Null(catalogViewModel.Products); | |||
} | |||
[Fact] | |||
public void BrandsPropertyuIsNullWhenViewModelInstantiatedTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
Assert.Null(catalogViewModel.Brands); | |||
} | |||
[Fact] | |||
public void BrandPropertyIsNullWhenViewModelInstantiatedTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
Assert.Null(catalogViewModel.Brand); | |||
} | |||
[Fact] | |||
public void TypesPropertyIsNullWhenViewModelInstantiatedTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
Assert.Null(catalogViewModel.Types); | |||
} | |||
[Fact] | |||
public void TypePropertyIsNullWhenViewModelInstantiatedTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
Assert.Null(catalogViewModel.Type); | |||
} | |||
[Fact] | |||
public void IsFilterPropertyIsFalseWhenViewModelInstantiatedTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
Assert.False(catalogViewModel.IsFilter); | |||
} | |||
[Fact] | |||
public async Task ProductsPropertyIsNotNullAfterViewModelInitializationTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
await catalogViewModel.InitializeAsync(null); | |||
Assert.NotNull(catalogViewModel.Products); | |||
} | |||
[Fact] | |||
public async Task BrandsPropertyIsNotNullAfterViewModelInitializationTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
await catalogViewModel.InitializeAsync(null); | |||
Assert.NotNull(catalogViewModel.Brands); | |||
} | |||
[Fact] | |||
public async Task TypesPropertyIsNotNullAfterViewModelInitializationTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
await catalogViewModel.InitializeAsync(null); | |||
Assert.NotNull(catalogViewModel.Types); | |||
} | |||
[Fact] | |||
public async Task SettingProductsPropertyShouldRaisePropertyChanged() | |||
{ | |||
bool invoked = false; | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
catalogViewModel.PropertyChanged += (sender, e) => | |||
{ | |||
if (e.PropertyName.Equals("Products")) | |||
invoked = true; | |||
}; | |||
await catalogViewModel.InitializeAsync(null); | |||
Assert.True(invoked); | |||
} | |||
[Fact] | |||
public async Task SettingBrandsPropertyShouldRaisePropertyChanged() | |||
{ | |||
bool invoked = false; | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
catalogViewModel.PropertyChanged += (sender, e) => | |||
{ | |||
if (e.PropertyName.Equals("Brands")) | |||
invoked = true; | |||
}; | |||
await catalogViewModel.InitializeAsync(null); | |||
Assert.True(invoked); | |||
} | |||
[Fact] | |||
public async Task SettingTypesPropertyShouldRaisePropertyChanged() | |||
{ | |||
bool invoked = false; | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
catalogViewModel.PropertyChanged += (sender, e) => | |||
{ | |||
if (e.PropertyName.Equals("Types")) | |||
invoked = true; | |||
}; | |||
await catalogViewModel.InitializeAsync(null); | |||
Assert.True(invoked); | |||
} | |||
[Fact] | |||
public void AddCatalogItemCommandSendsAddProductMessageTest() | |||
{ | |||
bool messageReceived = false; | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
Xamarin.Forms.MessagingCenter.Subscribe<CatalogViewModel, CatalogItem>(this, MessageKeys.AddProduct, (sender, arg) => | |||
{ | |||
messageReceived = true; | |||
}); | |||
catalogViewModel.AddCatalogItemCommand.Execute(null); | |||
Assert.True(messageReceived); | |||
} | |||
[Fact] | |||
public async Task FilterCommandSendsFilterMessageTest() | |||
{ | |||
bool messageReceived = false; | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
await catalogViewModel.InitializeAsync(null); | |||
catalogViewModel.Brand = catalogViewModel.Brands.FirstOrDefault(); | |||
catalogViewModel.Type = catalogViewModel.Types.FirstOrDefault(); | |||
Xamarin.Forms.MessagingCenter.Subscribe<CatalogViewModel>(this, MessageKeys.Filter, (sender) => | |||
{ | |||
messageReceived = true; | |||
}); | |||
catalogViewModel.FilterCommand.Execute(null); | |||
Assert.True(messageReceived); | |||
} | |||
[Fact] | |||
public async Task ClearFilterCommandResetsPropertiesTest() | |||
{ | |||
var catalogService = new CatalogMockService(); | |||
var catalogViewModel = new CatalogViewModel(catalogService); | |||
await catalogViewModel.InitializeAsync(null); | |||
catalogViewModel.ClearFilterCommand.Execute(null); | |||
Assert.Null(catalogViewModel.Brand); | |||
Assert.Null(catalogViewModel.Type); | |||
Assert.NotNull(catalogViewModel.Products); | |||
} | |||
} | |||
} |
@ -1,54 +0,0 @@ | |||
using Xunit; | |||
using eShopOnContainers.Core.ViewModels; | |||
using eShopOnContainers.Core.ViewModels.Base; | |||
using eShopOnContainers.Core.Models.Navigation; | |||
using System.Threading.Tasks; | |||
namespace eShopOnContainers.UnitTests | |||
{ | |||
public class MainViewModelTests | |||
{ | |||
public MainViewModelTests() | |||
{ | |||
ViewModelLocator.RegisterDependencies(true); | |||
} | |||
[Fact] | |||
public void SettingsCommandIsNotNullWhenViewModelInstantiatedTest() | |||
{ | |||
var mainViewModel = new MainViewModel(); | |||
Assert.NotNull(mainViewModel.SettingsCommand); | |||
} | |||
[Fact] | |||
public async Task ViewModelInitializationSendsChangeTabMessageTest() | |||
{ | |||
bool messageReceived = false; | |||
var mainViewModel = new MainViewModel(); | |||
var tabParam = new TabParameter { TabIndex = 2 }; | |||
Xamarin.Forms.MessagingCenter.Subscribe<MainViewModel, int>(this, MessageKeys.ChangeTab, (sender, arg) => | |||
{ | |||
messageReceived = true; | |||
}); | |||
await mainViewModel.InitializeAsync(tabParam); | |||
Assert.True(messageReceived); | |||
} | |||
[Fact] | |||
public void IsBusyPropertyIsFalseWhenViewModelInstantiatedTest() | |||
{ | |||
var mainViewModel = new MainViewModel(); | |||
Assert.False(mainViewModel.IsBusy); | |||
} | |||
[Fact] | |||
public async Task IsBusyPropertyIsTrueAfterViewModelInitializationTest() | |||
{ | |||
var mainViewModel = new MainViewModel(); | |||
await mainViewModel.InitializeAsync(null); | |||
Assert.True(mainViewModel.IsBusy); | |||
} | |||
} | |||
} |
@ -1,62 +0,0 @@ | |||
namespace eShopOnContainers.UnitTests.ViewModels | |||
{ | |||
using System.Threading.Tasks; | |||
using Xunit; | |||
using Core.ViewModels.Base; | |||
using Core.Services.Marketing; | |||
using Core.ViewModels; | |||
public class MarketingViewModelTests | |||
{ | |||
public MarketingViewModelTests() | |||
{ | |||
ViewModelLocator.RegisterDependencies(true); | |||
} | |||
[Fact] | |||
public void GetCampaignsIsNullTest() | |||
{ | |||
var campaignService = new CampaignMockService(); | |||
var campaignViewModel = new CampaignViewModel(campaignService); | |||
Assert.Null(campaignViewModel.Campaigns); | |||
} | |||
[Fact] | |||
public async Task GetCampaignsIsNotNullTest() | |||
{ | |||
var campaignService = new CampaignMockService(); | |||
var campaignViewModel = new CampaignViewModel(campaignService); | |||
await campaignViewModel.InitializeAsync(null); | |||
Assert.NotNull(campaignViewModel.Campaigns); | |||
} | |||
[Fact] | |||
public void GetCampaignDetailsCommandIsNotNullTest() | |||
{ | |||
var campaignService = new CampaignMockService(); | |||
var campaignViewModel = new CampaignViewModel(campaignService); | |||
Assert.NotNull(campaignViewModel.GetCampaignDetailsCommand); | |||
} | |||
[Fact] | |||
public void GetCampaignDetailsByIdIsNullTest() | |||
{ | |||
var campaignService = new CampaignMockService(); | |||
var campaignViewModel = new CampaignDetailsViewModel(campaignService); | |||
Assert.Null(campaignViewModel.Campaign); | |||
} | |||
[Fact] | |||
public async Task GetCampaignDetailsByIdIsNotNullTest() | |||
{ | |||
var campaignService = new CampaignMockService(); | |||
var campaignDetailsViewModel = new CampaignDetailsViewModel(campaignService); | |||
await campaignDetailsViewModel.InitializeAsync(1); | |||
Assert.NotNull(campaignDetailsViewModel.Campaign); | |||
} | |||
} | |||
} |
@ -1,113 +0,0 @@ | |||
using Xunit; | |||
using eShopOnContainers.Core.ViewModels.Base; | |||
namespace eShopOnContainers.UnitTests | |||
{ | |||
public class MockViewModelTests | |||
{ | |||
public MockViewModelTests() | |||
{ | |||
ViewModelLocator.RegisterDependencies(true); | |||
} | |||
[Fact] | |||
public void CheckValidationFailsWhenPropertiesAreEmptyTest() | |||
{ | |||
var mockViewModel = new MockViewModel(); | |||
bool isValid = mockViewModel.Validate(); | |||
Assert.False(isValid); | |||
Assert.Null(mockViewModel.Forename.Value); | |||
Assert.Null(mockViewModel.Surname.Value); | |||
Assert.False(mockViewModel.Forename.IsValid); | |||
Assert.False(mockViewModel.Surname.IsValid); | |||
Assert.NotEmpty(mockViewModel.Forename.Errors); | |||
Assert.NotEmpty(mockViewModel.Surname.Errors); | |||
} | |||
[Fact] | |||
public void CheckValidationFailsWhenOnlyForenameHasDataTest() | |||
{ | |||
var mockViewModel = new MockViewModel(); | |||
mockViewModel.Forename.Value = "John"; | |||
bool isValid = mockViewModel.Validate(); | |||
Assert.False(isValid); | |||
Assert.NotNull(mockViewModel.Forename.Value); | |||
Assert.Null(mockViewModel.Surname.Value); | |||
Assert.True(mockViewModel.Forename.IsValid); | |||
Assert.False(mockViewModel.Surname.IsValid); | |||
Assert.Empty(mockViewModel.Forename.Errors); | |||
Assert.NotEmpty(mockViewModel.Surname.Errors); | |||
} | |||
[Fact] | |||
public void CheckValidationPassesWhenOnlySurnameHasDataTest() | |||
{ | |||
var mockViewModel = new MockViewModel(); | |||
mockViewModel.Surname.Value = "Smith"; | |||
bool isValid = mockViewModel.Validate(); | |||
Assert.False(isValid); | |||
Assert.Null(mockViewModel.Forename.Value); | |||
Assert.NotNull(mockViewModel.Surname.Value); | |||
Assert.False(mockViewModel.Forename.IsValid); | |||
Assert.True(mockViewModel.Surname.IsValid); | |||
Assert.NotEmpty(mockViewModel.Forename.Errors); | |||
Assert.Empty(mockViewModel.Surname.Errors); | |||
} | |||
[Fact] | |||
public void CheckValidationPassesWhenBothPropertiesHaveDataTest() | |||
{ | |||
var mockViewModel = new MockViewModel(); | |||
mockViewModel.Forename.Value = "John"; | |||
mockViewModel.Surname.Value = "Smith"; | |||
bool isValid = mockViewModel.Validate(); | |||
Assert.True(isValid); | |||
Assert.NotNull(mockViewModel.Forename.Value); | |||
Assert.NotNull(mockViewModel.Surname.Value); | |||
Assert.True(mockViewModel.Forename.IsValid); | |||
Assert.True(mockViewModel.Surname.IsValid); | |||
Assert.Empty(mockViewModel.Forename.Errors); | |||
Assert.Empty(mockViewModel.Surname.Errors); | |||
} | |||
[Fact] | |||
public void SettingForenamePropertyShouldRaisePropertyChanged() | |||
{ | |||
bool invoked = false; | |||
var mockViewModel = new MockViewModel(); | |||
mockViewModel.Forename.PropertyChanged += (sender, e) => | |||
{ | |||
if (e.PropertyName.Equals("Value")) | |||
invoked = true; | |||
}; | |||
mockViewModel.Forename.Value = "John"; | |||
Assert.True(invoked); | |||
} | |||
[Fact] | |||
public void SettingSurnamePropertyShouldRaisePropertyChanged() | |||
{ | |||
bool invoked = false; | |||
var mockViewModel = new MockViewModel(); | |||
mockViewModel.Surname.PropertyChanged += (sender, e) => | |||
{ | |||
if (e.PropertyName.Equals("Value")) | |||
invoked = true; | |||
}; | |||
mockViewModel.Surname.Value = "Smith"; | |||
Assert.True(invoked); | |||
} | |||
} | |||
} |
@ -1,55 +0,0 @@ | |||
using Xunit; | |||
using eShopOnContainers.Core; | |||
using eShopOnContainers.Core.ViewModels; | |||
using eShopOnContainers.Core.ViewModels.Base; | |||
using eShopOnContainers.Core.Services.Order; | |||
using System.Threading.Tasks; | |||
namespace eShopOnContainers.UnitTests | |||
{ | |||
public class OrderViewModelTests | |||
{ | |||
public OrderViewModelTests() | |||
{ | |||
ViewModelLocator.RegisterDependencies(true); | |||
} | |||
[Fact] | |||
public void OrderPropertyIsNullWhenViewModelInstantiatedTest() | |||
{ | |||
var orderService = new OrderMockService(); | |||
var orderViewModel = new OrderDetailViewModel(orderService); | |||
Assert.Null(orderViewModel.Order); | |||
} | |||
[Fact] | |||
public async Task OrderPropertyIsNotNullAfterViewModelInitializationTest() | |||
{ | |||
var orderService = new OrderMockService(); | |||
var orderViewModel = new OrderDetailViewModel(orderService); | |||
var order = await orderService.GetOrderAsync(1, GlobalSetting.Instance.AuthToken); | |||
await orderViewModel.InitializeAsync(order); | |||
Assert.NotNull(orderViewModel.Order); | |||
} | |||
[Fact] | |||
public async Task SettingOrderPropertyShouldRaisePropertyChanged() | |||
{ | |||
bool invoked = false; | |||
var orderService = new OrderMockService(); | |||
var orderViewModel = new OrderDetailViewModel(orderService); | |||
orderViewModel.PropertyChanged += (sender, e) => | |||
{ | |||
if (e.PropertyName.Equals("Order")) | |||
invoked = true; | |||
}; | |||
var order = await orderService.GetOrderAsync(1, GlobalSetting.Instance.AuthToken); | |||
await orderViewModel.InitializeAsync(order); | |||
Assert.True(invoked); | |||
} | |||
} | |||
} |
@ -1,11 +0,0 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<configuration> | |||
<runtime> | |||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> | |||
<dependentAssembly> | |||
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> | |||
<bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" /> | |||
</dependentAssembly> | |||
</assemblyBinding> | |||
</runtime> | |||
</configuration> |
@ -1,61 +0,0 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |||
<PropertyGroup> | |||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | |||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | |||
<ProjectGuid>{6E4285E7-7611-4440-A1B5-3513EBB13807}</ProjectGuid> | |||
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | |||
<UseMSBuildEngine>true</UseMSBuildEngine> | |||
<OutputType>Library</OutputType> | |||
<RootNamespace>eShopOnContainers.UnitTests</RootNamespace> | |||
<AssemblyName>eShopOnContainers.UnitTests</AssemblyName> | |||
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion> | |||
<TargetFrameworkProfile>Profile111</TargetFrameworkProfile> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |||
<DebugSymbols>true</DebugSymbols> | |||
<DebugType>full</DebugType> | |||
<Optimize>false</Optimize> | |||
<OutputPath>bin\Debug</OutputPath> | |||
<DefineConstants>DEBUG;</DefineConstants> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | |||
<Optimize>true</Optimize> | |||
<OutputPath>bin\Release</OutputPath> | |||
<ErrorReport>prompt</ErrorReport> | |||
<WarningLevel>4</WarningLevel> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<Compile Include="Properties\AssemblyInfo.cs" /> | |||
<Compile Include="ViewModels\CatalogViewModelTests.cs" /> | |||
<Compile Include="ViewModels\MainViewModelTests.cs" /> | |||
<Compile Include="ViewModels\MarketingViewModelTests.cs" /> | |||
<Compile Include="ViewModels\MockViewModelTests.cs" /> | |||
<Compile Include="ViewModels\OrderViewModelTests.cs" /> | |||
<Compile Include="Services\BasketServiceTests.cs" /> | |||
<Compile Include="Services\CatalogServiceTests.cs" /> | |||
<Compile Include="Services\MarketingServiceTests.cs" /> | |||
<Compile Include="Services\OrdersServiceTests.cs" /> | |||
<Compile Include="Mocks\MockEventToCommandBehavior.cs" /> | |||
<Compile Include="Mocks\MockViewModel.cs" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="app.config" /> | |||
<None Include="project.json" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Folder Include="Mocks\" /> | |||
<Folder Include="Services\" /> | |||
<Folder Include="ViewModels\" /> | |||
<Folder Include="Behaviors\" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\eShopOnContainers.Core\eShopOnContainers.Core.csproj"> | |||
<Project>{BA96A12C-4EE3-46C4-BB3F-F811B554CD01}</Project> | |||
<Name>eShopOnContainers.Core</Name> | |||
</ProjectReference> | |||
</ItemGroup> | |||
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" /> | |||
</Project> |
@ -1,10 +0,0 @@ | |||
{ | |||
"dependencies": { | |||
"Xamarin.Forms": "2.5.0.91635", | |||
"xunit": "2.2.0", | |||
"xunit.runner.console": "2.2.0" | |||
}, | |||
"frameworks": { | |||
".NETPortable,Version=v4.5,Profile=Profile111": {} | |||
} | |||
} |
@ -1,72 +0,0 @@ | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<packages> | |||
<package id="Acr.Support" version="2.1.0" targetFramework="xamarinios10" /> | |||
<package id="Acr.UserDialogs" version="6.3.3" targetFramework="xamarinios10" /> | |||
<package id="Autofac" version="4.5.0" targetFramework="xamarinios10" /> | |||
<package id="IdentityModel" version="1.3.1" targetFramework="xamarinios10" /> | |||
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="xamarinios10" /> | |||
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="xamarinios10" /> | |||
<package id="Microsoft.Net.Http" version="2.2.29" targetFramework="xamarinios10" /> | |||
<package id="Microsoft.NETCore.Platforms" version="1.0.1" targetFramework="xamarinios10" /> | |||
<package id="Microsoft.Win32.Primitives" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="modernhttpclient" version="2.4.2" targetFramework="xamarinios10" /> | |||
<package id="NETStandard.Library" version="1.6.0" targetFramework="xamarinios10" /> | |||
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="xamarinios10" /> | |||
<package id="PCLCrypto" version="2.0.147" targetFramework="xamarinios10" /> | |||
<package id="PInvoke.BCrypt" version="0.3.2" targetFramework="xamarinios10" /> | |||
<package id="PInvoke.Kernel32" version="0.3.2" targetFramework="xamarinios10" /> | |||
<package id="PInvoke.NCrypt" version="0.3.2" targetFramework="xamarinios10" /> | |||
<package id="PInvoke.Windows.Core" version="0.3.2" targetFramework="xamarinios10" /> | |||
<package id="SlideOverKit" version="2.1.4" targetFramework="xamarinios10" /> | |||
<package id="Splat" version="1.6.2" targetFramework="xamarinios10" /> | |||
<package id="System.AppContext" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Collections" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Collections.Concurrent" version="4.0.12" targetFramework="xamarinios10" /> | |||
<package id="System.ComponentModel" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Console" version="4.0.0" targetFramework="xamarinios10" /> | |||
<package id="System.Diagnostics.Debug" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Diagnostics.Tools" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Diagnostics.Tracing" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Globalization" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Globalization.Calendars" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.IO" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.IO.Compression" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.IO.Compression.ZipFile" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.IO.FileSystem" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.IO.FileSystem.Primitives" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Linq" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Linq.Expressions" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Net.Http" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Net.Primitives" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Net.Sockets" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.ObjectModel" version="4.0.12" targetFramework="xamarinios10" /> | |||
<package id="System.Reflection" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Reflection.Extensions" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Reflection.Primitives" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Resources.ResourceManager" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime.Extensions" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime.Handles" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime.InteropServices" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.0.0" targetFramework="xamarinios10" /> | |||
<package id="System.Runtime.Numerics" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Security.Cryptography.Algorithms" version="4.2.0" targetFramework="xamarinios10" /> | |||
<package id="System.Security.Cryptography.Encoding" version="4.0.0" targetFramework="xamarinios10" /> | |||
<package id="System.Security.Cryptography.Primitives" version="4.0.0" targetFramework="xamarinios10" /> | |||
<package id="System.Security.Cryptography.X509Certificates" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Text.Encoding" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Text.Encoding.Extensions" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Text.RegularExpressions" version="4.1.0" targetFramework="xamarinios10" /> | |||
<package id="System.Threading" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Threading.Tasks" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Threading.Timer" version="4.0.1" targetFramework="xamarinios10" /> | |||
<package id="System.Xml.ReaderWriter" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="System.Xml.XDocument" version="4.0.11" targetFramework="xamarinios10" /> | |||
<package id="Validation" version="2.2.8" targetFramework="xamarinios10" /> | |||
<package id="WebP.Touch" version="1.0.3" targetFramework="xamarinios10" /> | |||
<package id="Xam.Plugin.Geolocator" version="3.0.4" targetFramework="xamarinios10" /> | |||
<package id="Xam.Plugins.Settings" version="2.6.0.12-beta" targetFramework="xamarinios10" /> | |||
<package id="Xamarin.FFImageLoading" version="2.2.9" targetFramework="xamarinios10" /> | |||
<package id="Xamarin.FFImageLoading.Forms" version="2.2.9" targetFramework="xamarinios10" /> | |||
<package id="Xamarin.Forms" version="2.5.0.91635" targetFramework="xamarinios10" /> | |||
</packages> |