This commit is contained in:
Stef Heyenrath
2026-02-14 12:23:19 +01:00
parent 6cc18e796c
commit b172f700e0
120 changed files with 201 additions and 360 deletions

View File

@@ -1,16 +1,12 @@
// Copyright © WireMock.Net
using System;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using FluentAssertions;
using NFluent;
using WireMock.RequestBuilders;
using WireMock.ResponseBuilders;
using WireMock.Server;
using Xunit;
namespace WireMock.Net.Tests;
@@ -294,6 +290,7 @@ public class StatefulBehaviorTests
public async Task Scenarios_TodoList_Example()
{
// Arrange
var cancelationToken = TestContext.Current.CancellationToken;
var server = WireMockServer.Start();
var client = server.CreateClient();
@@ -319,7 +316,7 @@ public class StatefulBehaviorTests
Check.That(server.Scenarios.Any()).IsFalse();
// Act and Assert
var getResponse1 = await client.GetStringAsync("/todo/items");
var getResponse1 = await client.GetStringAsync("/todo/items", cancelationToken);
Check.That(getResponse1).Equals("Buy milk");
Check.That(server.Scenarios["To do list"].Name).IsEqualTo("To do list");
@@ -327,7 +324,7 @@ public class StatefulBehaviorTests
Check.That(server.Scenarios["To do list"].Started).IsTrue();
Check.That(server.Scenarios["To do list"].Finished).IsFalse();
var postResponse = await client.PostAsync("/todo/items", new StringContent("Cancel newspaper subscription"));
var postResponse = await client.PostAsync("/todo/items", new StringContent("Cancel newspaper subscription"), cancelationToken);
Check.That(postResponse.StatusCode).Equals(HttpStatusCode.Created);
Check.That(server.Scenarios["To do list"].Name).IsEqualTo("To do list");
@@ -335,7 +332,7 @@ public class StatefulBehaviorTests
Check.That(server.Scenarios["To do list"].Started).IsTrue();
Check.That(server.Scenarios["To do list"].Finished).IsFalse();
string getResponse2 = await client.GetStringAsync("/todo/items");
string getResponse2 = await client.GetStringAsync("/todo/items", cancelationToken);
Check.That(getResponse2).Equals("Buy milk;Cancel newspaper subscription");
Check.That(server.Scenarios["To do list"].Name).IsEqualTo("To do list");
@@ -350,6 +347,7 @@ public class StatefulBehaviorTests
public async Task Scenarios_TodoList_WithSetState()
{
// Arrange
var cancelationToken = TestContext.Current.CancellationToken;
var scenario = "To do list";
using var server = WireMockServer.Start();
var client = server.CreateClient();
@@ -370,14 +368,14 @@ public class StatefulBehaviorTests
server.SetScenarioState(scenario, "Buy milk");
server.Scenarios[scenario].Should().BeEquivalentTo(new { Name = scenario, NextState = "Buy milk" });
var getResponse1 = await client.GetStringAsync("/todo/items");
var getResponse1 = await client.GetStringAsync("/todo/items", cancelationToken);
getResponse1.Should().Be("Buy milk");
server.SetScenarioState(scenario, "Cancel newspaper");
server.Scenarios[scenario].Name.Should().Be(scenario);
server.Scenarios[scenario].Should().BeEquivalentTo(new { Name = scenario, NextState = "Cancel newspaper" });
var getResponse2 = await client.GetStringAsync("/todo/items");
var getResponse2 = await client.GetStringAsync("/todo/items", cancelationToken);
getResponse2.Should().Be("Buy milk;Cancel newspaper subscription");
}
@@ -413,6 +411,7 @@ public class StatefulBehaviorTests
public async Task Scenarios_Should_process_request_if_equals_state_and_multiple_state_defined()
{
// Assign
var cancelationToken = TestContext.Current.CancellationToken;
var server = WireMockServer.Start();
server
@@ -441,16 +440,16 @@ public class StatefulBehaviorTests
// Act and Assert
string url = "http://localhost:" + server.Ports[0];
var responseNoState1 = await new HttpClient().GetStringAsync(url + "/state1");
var responseNoState1 = await new HttpClient().GetStringAsync(url + "/state1", cancelationToken);
Check.That(responseNoState1).Equals("No state msg 1");
var responseNoState2 = await new HttpClient().GetStringAsync(url + "/state2");
var responseNoState2 = await new HttpClient().GetStringAsync(url + "/state2", cancelationToken);
Check.That(responseNoState2).Equals("No state msg 2");
var responseWithState1 = await new HttpClient().GetStringAsync(url + "/foo1X");
var responseWithState1 = await new HttpClient().GetStringAsync(url + "/foo1X", cancelationToken);
Check.That(responseWithState1).Equals("Test state msg 1");
var responseWithState2 = await new HttpClient().GetStringAsync(url + "/foo2X");
var responseWithState2 = await new HttpClient().GetStringAsync(url + "/foo2X", cancelationToken);
Check.That(responseWithState2).Equals("Test state msg 2");
server.Stop();