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