Changes to move the unit tests to .NET Standard.
This commit is contained in:
parent
447a23db5d
commit
972ff42d94
@ -0,0 +1,96 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Acr.Support" version="2.1.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Acr.UserDialogs" version="6.5.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="AndHUD" version="1.2.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Autofac" version="4.6.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="IdentityModel" version="3.0.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="monoandroid80" />
|
||||||
|
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="monoandroid80" />
|
||||||
|
<package id="Microsoft.CSharp" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Microsoft.Net.Http" version="2.2.28" targetFramework="monoandroid80" />
|
||||||
|
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="NETStandard.Library" version="1.6.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="monoandroid80" />
|
||||||
|
<package id="PCLCrypto" version="2.0.147" targetFramework="monoandroid80" />
|
||||||
|
<package id="PInvoke.BCrypt" version="0.3.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="PInvoke.Kernel32" version="0.3.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="PInvoke.NCrypt" version="0.3.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="PInvoke.Windows.Core" version="0.3.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="Plugin.CurrentActivity" version="1.0.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="Plugin.Permissions" version="2.2.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="SlideOverKit" version="2.1.5" targetFramework="monoandroid80" />
|
||||||
|
<package id="Splat" version="2.0.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.AppContext" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Collections" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.ComponentModel" version="4.0.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.ComponentModel.TypeConverter" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Console" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Globalization" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.IO" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.IO.Compression" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Linq" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Net.Http" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Net.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Net.Sockets" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.ObjectModel" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Reflection" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.Serialization.Formatters" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.Serialization.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Text.Encoding" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Threading" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Threading.Timer" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Validation" version="2.2.8" targetFramework="monoandroid80" />
|
||||||
|
<package id="Xam.Plugin.Geolocator" version="3.0.4" targetFramework="monoandroid80" />
|
||||||
|
<package id="Xam.Plugins.Settings" version="3.1.1" targetFramework="monoandroid80" />
|
||||||
|
<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.Exif" version="25.1.0" 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.Build.Download" version="0.4.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="Xamarin.FFImageLoading" version="2.3.4" targetFramework="monoandroid80" />
|
||||||
|
<package id="Xamarin.FFImageLoading.Forms" version="2.3.4" targetFramework="monoandroid80" />
|
||||||
|
<package id="Xamarin.Forms" version="2.5.0.121934" targetFramework="monoandroid80" />
|
||||||
|
</packages>
|
@ -0,0 +1,63 @@
|
|||||||
|
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)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,101 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Acr.Support" version="2.1.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Acr.UserDialogs" version="6.5.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="AndHUD" version="1.2.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Autofac" version="4.6.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="IdentityModel" version="3.0.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Microsoft.CSharp" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="NETStandard.Library" version="1.6.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="monoandroid80" />
|
||||||
|
<package id="PCLCrypto" version="2.0.147" targetFramework="monoandroid80" />
|
||||||
|
<package id="PInvoke.BCrypt" version="0.3.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="PInvoke.Kernel32" version="0.3.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="PInvoke.NCrypt" version="0.3.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="PInvoke.Windows.Core" version="0.3.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="Plugin.CurrentActivity" version="1.0.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="Plugin.Permissions" version="1.1.7" targetFramework="monoandroid80" />
|
||||||
|
<package id="SlideOverKit" version="2.1.5" targetFramework="monoandroid80" />
|
||||||
|
<package id="Splat" version="2.0.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.AppContext" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Collections" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.ComponentModel" version="4.0.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.ComponentModel.TypeConverter" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Console" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Globalization" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.IO" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.IO.Compression" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Linq" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Net.Http" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Net.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Net.Sockets" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.ObjectModel" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Reflection" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.Serialization.Formatters" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Runtime.Serialization.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Text.Encoding" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Threading" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Threading.Timer" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="Validation" version="2.2.8" targetFramework="monoandroid80" />
|
||||||
|
<package id="Xam.Plugin.Geolocator" version="3.0.4" targetFramework="monoandroid80" />
|
||||||
|
<package id="Xam.Plugins.Settings" version="3.1.1" targetFramework="monoandroid80" />
|
||||||
|
<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.Exif" version="25.1.0" 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.Build.Download" version="0.4.2" targetFramework="monoandroid80" />
|
||||||
|
<package id="Xamarin.FFImageLoading" version="2.3.4" targetFramework="monoandroid80" />
|
||||||
|
<package id="Xamarin.FFImageLoading.Forms" version="2.3.4" targetFramework="monoandroid80" />
|
||||||
|
<package id="Xamarin.Forms" version="2.5.0.121934" targetFramework="monoandroid80" />
|
||||||
|
<package id="xunit" version="2.3.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="xunit.abstractions" version="2.0.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="xunit.analyzers" version="0.7.0" targetFramework="monoandroid80" />
|
||||||
|
<package id="xunit.assert" version="2.3.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="xunit.core" version="2.3.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="xunit.extensibility.core" version="2.3.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="xunit.extensibility.execution" version="2.3.1" targetFramework="monoandroid80" />
|
||||||
|
<package id="xunit.runner.devices" version="2.3.3" targetFramework="monoandroid80" />
|
||||||
|
</packages>
|
@ -0,0 +1,66 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Autofac" version="4.6.2" targetFramework="xamarinios10" />
|
||||||
|
<package id="Microsoft.CSharp" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="NETStandard.Library" version="1.6.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.AppContext" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Collections" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.ComponentModel" version="4.0.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.ComponentModel.TypeConverter" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Console" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Globalization" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.IO" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.IO.Compression" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Linq" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Net.Http" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Net.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Net.Sockets" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.ObjectModel" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Reflection" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.Serialization.Formatters" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.Serialization.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Text.Encoding" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Threading" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Threading.Timer" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="Xam.Plugins.Settings" version="3.1.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="Xamarin.Forms" version="2.5.0.121934" targetFramework="xamarinios10" />
|
||||||
|
<package id="xunit" version="2.3.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="xunit.abstractions" version="2.0.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="xunit.analyzers" version="0.7.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="xunit.assert" version="2.3.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="xunit.core" version="2.3.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="xunit.extensibility.core" version="2.3.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="xunit.extensibility.execution" version="2.3.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="xunit.runner.devices" version="2.3.3" targetFramework="xamarinios10" />
|
||||||
|
</packages>
|
@ -0,0 +1,120 @@
|
|||||||
|
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,53 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,223 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,62 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,121 @@
|
|||||||
|
using Xunit;
|
||||||
|
using eShopOnContainers.Core.ViewModels.Base;
|
||||||
|
using eShopOnContainers.UnitTests.Helpers;
|
||||||
|
using System.ComponentModel;
|
||||||
|
|
||||||
|
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();
|
||||||
|
|
||||||
|
PropertyChangedEventHandler handler = (sender, e) =>
|
||||||
|
{
|
||||||
|
if (e.PropertyName.Equals("Value"))
|
||||||
|
invoked = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
mockViewModel.Forename.PropertyChanged += handler;
|
||||||
|
mockViewModel.Forename.Value = "John";
|
||||||
|
mockViewModel.Forename.PropertyChanged -= handler;
|
||||||
|
|
||||||
|
Assert.True(invoked);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void SettingSurnamePropertyShouldRaisePropertyChanged()
|
||||||
|
{
|
||||||
|
bool invoked = false;
|
||||||
|
var mockViewModel = new MockViewModel();
|
||||||
|
|
||||||
|
PropertyChangedEventHandler handler = (sender, e) =>
|
||||||
|
{
|
||||||
|
if (e.PropertyName.Equals("Value"))
|
||||||
|
invoked = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
mockViewModel.Surname.PropertyChanged += handler;
|
||||||
|
mockViewModel.Surname.Value = "Smith";
|
||||||
|
mockViewModel.Surname.PropertyChanged -= handler;
|
||||||
|
|
||||||
|
Assert.True(invoked);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,55 @@
|
|||||||
|
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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Xamarin.Forms" Version="2.5.0.122203" />
|
||||||
|
<PackageReference Include="xunit" Version="2.3.1" />
|
||||||
|
<PackageReference Include="xunit.runner.console" Version="2.3.1" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<ProjectReference Include="..\..\..\eShopOnContainers.Core\eShopOnContainers.Core.csproj" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Folder Include="Helpers\" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
@ -0,0 +1,62 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Autofac" version="4.6.2" targetFramework="xamarinios10" />
|
||||||
|
<package id="Microsoft.CSharp" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="Microsoft.NETCore.Platforms" version="1.1.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="Microsoft.Win32.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="NETStandard.Library" version="1.6.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="xamarinios10" />
|
||||||
|
<package id="SlideOverKit" version="2.1.5" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.AppContext" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Collections" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Collections.Concurrent" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.ComponentModel" version="4.0.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.ComponentModel.TypeConverter" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Console" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Diagnostics.Debug" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Diagnostics.Tools" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Diagnostics.Tracing" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Globalization" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Globalization.Calendars" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.IO" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.IO.Compression" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.IO.Compression.ZipFile" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.IO.FileSystem" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.IO.FileSystem.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Linq" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Linq.Expressions" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Net.Http" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Net.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Net.Sockets" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.ObjectModel" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Reflection" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Reflection.Extensions" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Reflection.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Resources.ResourceManager" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.Extensions" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.Handles" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.InteropServices" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.Numerics" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.Serialization.Formatters" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Runtime.Serialization.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Security.Cryptography.Algorithms" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Security.Cryptography.X509Certificates" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Text.Encoding" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Text.Encoding.Extensions" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Text.RegularExpressions" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Threading" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Threading.Tasks" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Threading.Timer" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Xml.ReaderWriter" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Xml.XDocument" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="System.Xml.XmlDocument" version="4.3.0" targetFramework="xamarinios10" />
|
||||||
|
<package id="WebP.Touch" version="1.0.7" targetFramework="xamarinios10" />
|
||||||
|
<package id="Xam.Plugins.Settings" version="3.1.1" targetFramework="xamarinios10" />
|
||||||
|
<package id="Xamarin.FFImageLoading" version="2.3.4" targetFramework="xamarinios10" />
|
||||||
|
<package id="Xamarin.FFImageLoading.Forms" version="2.3.4" targetFramework="xamarinios10" />
|
||||||
|
<package id="Xamarin.Forms" version="2.5.0.122203" targetFramework="xamarinios10" />
|
||||||
|
</packages>
|
Loading…
x
Reference in New Issue
Block a user