From 3b0dc467710e0d3a536f5cc4d7de1336d039c80d Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Sat, 6 Feb 2021 11:54:39 +0100 Subject: [PATCH] Add Xamarin UI tests (#582) * xam * . * . --- WireMock.Net Solution.sln | 7 +++ .../AppInitializer.cs | 22 +++++++ .../UIFlowTests.cs | 58 +++++++++++++++++++ .../WireMock.Net.XamarinUI.Tests.csproj | 27 +++++++++ 4 files changed, 114 insertions(+) create mode 100644 test/WireMock.Net.XamarinUI.Tests/AppInitializer.cs create mode 100644 test/WireMock.Net.XamarinUI.Tests/UIFlowTests.cs create mode 100644 test/WireMock.Net.XamarinUI.Tests/WireMock.Net.XamarinUI.Tests.csproj diff --git a/WireMock.Net Solution.sln b/WireMock.Net Solution.sln index 5e5ab385..9b56f497 100644 --- a/WireMock.Net Solution.sln +++ b/WireMock.Net Solution.sln @@ -82,6 +82,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WireMock.Net.Matchers.CShar EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WireMock.Net.Console.Net472.Classic", "examples\WireMock.Net.Console.Net472.Classic\WireMock.Net.Console.Net472.Classic.csproj", "{6580580B-1EFD-4922-B0EC-FF290DB279EE}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WireMock.Net.XamarinUI.Tests", "test\WireMock.Net.XamarinUI.Tests\WireMock.Net.XamarinUI.Tests.csproj", "{0DE14F1B-A51E-4B59-A87C-C6012DCD2844}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -204,6 +206,10 @@ Global {6580580B-1EFD-4922-B0EC-FF290DB279EE}.Debug|Any CPU.Build.0 = Debug|Any CPU {6580580B-1EFD-4922-B0EC-FF290DB279EE}.Release|Any CPU.ActiveCfg = Release|Any CPU {6580580B-1EFD-4922-B0EC-FF290DB279EE}.Release|Any CPU.Build.0 = Release|Any CPU + {0DE14F1B-A51E-4B59-A87C-C6012DCD2844}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0DE14F1B-A51E-4B59-A87C-C6012DCD2844}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0DE14F1B-A51E-4B59-A87C-C6012DCD2844}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0DE14F1B-A51E-4B59-A87C-C6012DCD2844}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -238,6 +244,7 @@ Global {3F8CF0AE-5F24-4A54-89E7-A3EE829DB5F8} = {985E0ADB-D4B4-473A-AA40-567E279B7946} {B6269AAC-170A-4346-8B9A-444DED3D9A44} = {8F890C6F-9ACC-438D-928A-AD61CDA862F2} {6580580B-1EFD-4922-B0EC-FF290DB279EE} = {985E0ADB-D4B4-473A-AA40-567E279B7946} + {0DE14F1B-A51E-4B59-A87C-C6012DCD2844} = {0BB8B634-407A-4610-A91F-11586990767A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {DC539027-9852-430C-B19F-FD035D018458} diff --git a/test/WireMock.Net.XamarinUI.Tests/AppInitializer.cs b/test/WireMock.Net.XamarinUI.Tests/AppInitializer.cs new file mode 100644 index 00000000..1f129295 --- /dev/null +++ b/test/WireMock.Net.XamarinUI.Tests/AppInitializer.cs @@ -0,0 +1,22 @@ +using System; +using System.IO; +using Xamarin.UITest; +using Xamarin.UITest.Queries; + +namespace WireMock.Net.XamarinUI.Tests +{ + public class AppInitializer + { + public static IApp StartApp(Platform platform) + { + if (platform == Platform.Android) + { + var androidAppConfigurator = ConfigureApp.Android.InstalledApp("test"); + + return androidAppConfigurator.StartApp(); + } + + return ConfigureApp.iOS.InstalledApp("test").StartApp(); + } + } +} \ No newline at end of file diff --git a/test/WireMock.Net.XamarinUI.Tests/UIFlowTests.cs b/test/WireMock.Net.XamarinUI.Tests/UIFlowTests.cs new file mode 100644 index 00000000..e346011f --- /dev/null +++ b/test/WireMock.Net.XamarinUI.Tests/UIFlowTests.cs @@ -0,0 +1,58 @@ +using System.Net.Http; +using System.Threading.Tasks; +using NUnit.Framework; +using WireMock.RequestBuilders; +using WireMock.ResponseBuilders; +using WireMock.Server; +using WireMock.Settings; +using Xamarin.UITest; + +namespace WireMock.Net.XamarinUI.Tests +{ + [TestFixture(Platform.Android)] + [TestFixture(Platform.iOS)] + public class UIFlowTests + { + IApp app; + Platform platform; + + private WireMockServer _server; + + public UIFlowTests(Platform platform) + { + this.platform = platform; + } + + [SetUp] + public void BeforeEachTest() + { + var serverSettings = new WireMockServerSettings(); + // serverSettings.Port = 5005; + serverSettings.AllowPartialMapping = true; + + _server = WireMockServer.Start(serverSettings); + } + + [Test] + public async Task TestMockServerIsWorking() + { + _server + .Given(Request.Create() + .UsingGet()) + .RespondWith(Response.Create() + .WithBody("test")); + + var httpClient = new HttpClient(); + + var result = await httpClient.GetAsync(_server.Urls[0]); + var content = await result.Content.ReadAsStringAsync(); + Assert.AreEqual("test", content); + } + + [TearDown] + public void ShutdownServer() + { + _server.Stop(); + } + } +} \ No newline at end of file diff --git a/test/WireMock.Net.XamarinUI.Tests/WireMock.Net.XamarinUI.Tests.csproj b/test/WireMock.Net.XamarinUI.Tests/WireMock.Net.XamarinUI.Tests.csproj new file mode 100644 index 00000000..4ee2ac1b --- /dev/null +++ b/test/WireMock.Net.XamarinUI.Tests/WireMock.Net.XamarinUI.Tests.csproj @@ -0,0 +1,27 @@ + + + + net472 + false + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + + + + +