diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index 04d4d539..dfcbccac 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"dotnet-sonarscanner": {
- "version": "5.14.0",
+ "version": "5.15.0",
"commands": [
"dotnet-sonarscanner"
]
diff --git a/Modules/Protobuf/GenHTTP.Modules.Protobuf.csproj b/Modules/Protobuf/GenHTTP.Modules.Protobuf.csproj
index e3fd5292..2285f69e 100644
--- a/Modules/Protobuf/GenHTTP.Modules.Protobuf.csproj
+++ b/Modules/Protobuf/GenHTTP.Modules.Protobuf.csproj
@@ -40,7 +40,7 @@
-
+
diff --git a/Playground/Program.cs b/Playground/Program.cs
index b8451216..64ff2816 100644
--- a/Playground/Program.cs
+++ b/Playground/Program.cs
@@ -1,34 +1,11 @@
-using System.Collections.Generic;
+using GenHTTP.Engine;
-using GenHTTP.Engine;
-
-using GenHTTP.Modules.Functional;
-using GenHTTP.Modules.Layouting;
+using GenHTTP.Modules.IO;
using GenHTTP.Modules.Practices;
-using GenHTTP.Modules.Security;
-
-var books = new List()
-{
- new Book(1, "Lord of the Rings")
-};
-
-var bookApi = Inline.Create()
- .Get(() => books) // GET http://localhost:8080/books/
- .Put((Book book) => books.Add(book)); // PUT http://localhost:8080/books/
-
-var content = Layout.Create()
- .Add("books", bookApi)
- .Add(CorsPolicy.Permissive());
-
-return Host.Create()
- .Handler(content)
- .Defaults()
- .Console()
-//-:cnd:noEmit
-#if DEBUG
- .Development()
-#endif
-//+:cnd:noEmit
- .Run();
-record class Book(int ID, string Title);
\ No newline at end of file
+Host.Create()
+ .Handler(Content.From(Resource.FromString("Hello World")))
+ .Defaults()
+ .Development()
+ .Console()
+ .Run();
diff --git a/Testing/AssertX.cs b/Testing/AssertX.cs
index 9ca7d828..cd444ec7 100644
--- a/Testing/AssertX.cs
+++ b/Testing/AssertX.cs
@@ -1,5 +1,10 @@
-using System.Collections.Generic;
+using System;
+using System.Collections.Generic;
using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
using Microsoft.VisualStudio.TestTools.UnitTesting;
@@ -30,6 +35,46 @@ public static class AssertX
public static void IsNullOrEmpty(string? value) => Assert.IsTrue(string.IsNullOrEmpty(value));
+ ///
+ /// Raises an assertion expection if the response does not have the expected status code
+ /// and additionally prints information about the response to be able to further debug
+ /// issues in workflow runs.
+ ///
+ /// The response to be evaluated
+ /// The expected status code to check for
+ public static async Task AssertStatusAsync(this HttpResponseMessage response, HttpStatusCode expectedStatus)
+ {
+ if (response.StatusCode != expectedStatus)
+ {
+ var builder = new StringBuilder();
+
+ builder.AppendLine($"Response returned with status '{response.StatusCode}', expected '{expectedStatus}'.");
+ builder.AppendLine();
+
+ builder.AppendLine("Headers");
+ builder.AppendLine();
+
+ foreach (var header in response.Headers)
+ {
+ builder.AppendLine($" {header.Key} = {string.Join(',', header.Value.ToList())}");
+ }
+
+ builder.AppendLine();
+
+ var content = await response.Content.ReadAsStringAsync();
+
+ if (!string.IsNullOrEmpty(content))
+ {
+ builder.AppendLine("Body");
+ builder.AppendLine();
+
+ builder.AppendLine(content);
+ }
+
+ throw new AssertFailedException(builder.ToString());
+ }
+ }
+
}
}
diff --git a/Testing/Engine/BasicTests.cs b/Testing/Engine/BasicTests.cs
index 9cc51f8f..6b40fb3a 100644
--- a/Testing/Engine/BasicTests.cs
+++ b/Testing/Engine/BasicTests.cs
@@ -25,7 +25,7 @@ public async Task TestBuilder()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -37,7 +37,7 @@ public async Task TestLegacyHttp()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -50,7 +50,7 @@ public async Task TestConnectionClose()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
Assert.IsTrue(response.Headers.Connection.Contains("Close"));
}
@@ -61,7 +61,7 @@ public async Task TestEmptyQuery()
using var response = await runner.GetResponse("/?");
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
diff --git a/Testing/Engine/ErrorHandlingTest.cs b/Testing/Engine/ErrorHandlingTest.cs
index 7fe098bc..ee84c62c 100644
--- a/Testing/Engine/ErrorHandlingTest.cs
+++ b/Testing/Engine/ErrorHandlingTest.cs
@@ -25,7 +25,7 @@ public async Task TestGenericError()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.InternalServerError, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.InternalServerError);
}
}
diff --git a/Testing/Engine/HeaderTests.cs b/Testing/Engine/HeaderTests.cs
index 9e5a5692..ccabc097 100644
--- a/Testing/Engine/HeaderTests.cs
+++ b/Testing/Engine/HeaderTests.cs
@@ -43,7 +43,7 @@ public async Task TestReservedHeaderCannotBeSet()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.InternalServerError, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.InternalServerError);
}
}
diff --git a/Testing/Engine/HostTests.cs b/Testing/Engine/HostTests.cs
index 8a655283..f942ec7f 100644
--- a/Testing/Engine/HostTests.cs
+++ b/Testing/Engine/HostTests.cs
@@ -19,7 +19,7 @@ public async Task TestStart()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -31,7 +31,7 @@ public async Task TestRestart()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
}
diff --git a/Testing/Engine/ResponseTests.cs b/Testing/Engine/ResponseTests.cs
index b0e2ddf0..0354d4af 100644
--- a/Testing/Engine/ResponseTests.cs
+++ b/Testing/Engine/ResponseTests.cs
@@ -73,7 +73,7 @@ public async Task TestProperties()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Hello World", await response.GetContent());
Assert.AreEqual("text/x-custom", response.GetContentHeader("Content-Type"));
diff --git a/Testing/Engine/RoutingTests.cs b/Testing/Engine/RoutingTests.cs
index 72938f66..4c9ea6a8 100644
--- a/Testing/Engine/RoutingTests.cs
+++ b/Testing/Engine/RoutingTests.cs
@@ -19,7 +19,7 @@ public async Task NotFoundForUnknownRoute()
using var runner = TestRunner.Run();
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
}
diff --git a/Testing/Engine/SecurityTests.cs b/Testing/Engine/SecurityTests.cs
index 621818dd..3b44ea6f 100644
--- a/Testing/Engine/SecurityTests.cs
+++ b/Testing/Engine/SecurityTests.cs
@@ -34,7 +34,7 @@ public Task TestSecure()
using var response = await client.GetAsync($"https://localhost:{sec}");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Hello Alice!", await response.Content.ReadAsStringAsync());
});
}
@@ -52,7 +52,7 @@ public Task TestDefaultRedirection()
using var response = await client.GetAsync($"http://localhost:{insec}");
- Assert.AreEqual(HttpStatusCode.MovedPermanently, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.MovedPermanently);
Assert.AreEqual($"https://localhost:{sec}/", response.Headers.GetValues("Location").First());
});
}
@@ -70,7 +70,7 @@ public Task TestNoRedirectionWithAllowed()
using var response = await client.GetAsync($"http://localhost:{insec}");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
}, mode: SecureUpgrade.Allow);
}
@@ -90,7 +90,8 @@ public Task TestRedirectionWhenRequested()
using var response = await client.SendAsync(request);
- Assert.AreEqual(HttpStatusCode.TemporaryRedirect, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.TemporaryRedirect);
+
Assert.AreEqual($"https://localhost:{sec}/", response.Headers.GetValues("Location").First());
Assert.AreEqual($"Upgrade-Insecure-Requests", response.Headers.GetValues("Vary").First());
}, mode: SecureUpgrade.Allow);
@@ -109,12 +110,12 @@ public Task TestTransportPolicy()
using var insecureResponse = await client.GetAsync($"http://localhost:{insec}");
- Assert.AreEqual(HttpStatusCode.OK, insecureResponse.StatusCode);
+ await insecureResponse.AssertStatusAsync(HttpStatusCode.OK);
Assert.IsFalse(insecureResponse.Headers.Contains("Strict-Transport-Security"));
using var secureResponse = await client.GetAsync($"https://localhost:{sec}");
- Assert.AreEqual(HttpStatusCode.OK, secureResponse.StatusCode);
+ await secureResponse.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("max-age=31536000; includeSubDomains; preload", secureResponse.Headers.GetValues("Strict-Transport-Security").First());
}, mode: SecureUpgrade.None);
@@ -139,7 +140,7 @@ await Assert.ThrowsExceptionAsync(async () =>
using var client = TestRunner.GetClient(ignoreSecurityErrors: true);
using var response = await client.GetAsync($"https://localhost:{sec}");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
});
}
diff --git a/Testing/GenHTTP.Testing.Acceptance.csproj b/Testing/GenHTTP.Testing.Acceptance.csproj
index 647f4de0..5f52624e 100644
--- a/Testing/GenHTTP.Testing.Acceptance.csproj
+++ b/Testing/GenHTTP.Testing.Acceptance.csproj
@@ -47,7 +47,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/Testing/Modules/Authentication/ApiKeyAuthenticationTests.cs b/Testing/Modules/Authentication/ApiKeyAuthenticationTests.cs
index 3b5ccf1b..d5773891 100644
--- a/Testing/Modules/Authentication/ApiKeyAuthenticationTests.cs
+++ b/Testing/Modules/Authentication/ApiKeyAuthenticationTests.cs
@@ -26,7 +26,7 @@ public async Task TestNoKey()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.Unauthorized);
}
[TestMethod]
@@ -52,7 +52,7 @@ public async Task TestValidKey()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
}
[TestMethod]
@@ -83,7 +83,7 @@ public async Task TestValidKeyFromHeader()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
}
[TestMethod]
@@ -100,7 +100,7 @@ public async Task TestCustomExtractor()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
}
[TestMethod]
@@ -118,7 +118,7 @@ public async Task TestCustomAuthenticator()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
}
private static TestRunner GetRunnerWithKeys(params string[] keys)
diff --git a/Testing/Modules/Authentication/BasicAuthenticationTests.cs b/Testing/Modules/Authentication/BasicAuthenticationTests.cs
index 13811c6d..17cf06b9 100644
--- a/Testing/Modules/Authentication/BasicAuthenticationTests.cs
+++ b/Testing/Modules/Authentication/BasicAuthenticationTests.cs
@@ -27,7 +27,7 @@ public async Task TestNoUser()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.Unauthorized);
}
[TestMethod]
@@ -65,7 +65,7 @@ public async Task TestInvalidUser()
using var response = await GetResponse(runner, "u", "password");
- Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.Unauthorized);
}
[TestMethod]
@@ -89,7 +89,7 @@ public async Task TestNoCustomUser()
using var response = await GetResponse(runner, "_", "_");
- Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.Unauthorized);
}
[TestMethod]
@@ -104,7 +104,7 @@ public async Task TestOtherAuthenticationIsNotAccepted()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.Unauthorized);
}
[TestMethod]
@@ -119,7 +119,7 @@ public async Task TestNoValidBase64()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.Unauthorized);
}
private static async Task GetResponse(TestRunner runner, string user, string password)
diff --git a/Testing/Modules/Authentication/UserInjectionTests.cs b/Testing/Modules/Authentication/UserInjectionTests.cs
index 3941ed8c..f2f8a516 100644
--- a/Testing/Modules/Authentication/UserInjectionTests.cs
+++ b/Testing/Modules/Authentication/UserInjectionTests.cs
@@ -27,7 +27,7 @@ public async Task TestUserInjected()
using var response = await runner.GetResponse(client: client);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("abc", await response.GetContent());
}
@@ -38,7 +38,7 @@ public async Task TestNoUser()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.Unauthorized, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.Unauthorized);
}
#endregion
diff --git a/Testing/Modules/CacheValidationTests.cs b/Testing/Modules/CacheValidationTests.cs
index 566efffb..8d20d78e 100644
--- a/Testing/Modules/CacheValidationTests.cs
+++ b/Testing/Modules/CacheValidationTests.cs
@@ -44,7 +44,7 @@ public async Task TestServerReturnsUnmodified()
using var cached = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.NotModified, cached.StatusCode);
+ await cached.AssertStatusAsync(HttpStatusCode.NotModified);
Assert.AreEqual("0", cached.GetContentHeader("Content-Length"));
}
@@ -60,7 +60,7 @@ public async Task TestServerReturnsModified()
using var reloaded = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.OK, reloaded.StatusCode);
+ await reloaded.AssertStatusAsync(HttpStatusCode.OK);
}
[TestMethod]
diff --git a/Testing/Modules/Controllers/ActionTests.cs b/Testing/Modules/Controllers/ActionTests.cs
index 2e4305e5..5409800c 100644
--- a/Testing/Modules/Controllers/ActionTests.cs
+++ b/Testing/Modules/Controllers/ActionTests.cs
@@ -86,7 +86,7 @@ public async Task TestIndex()
using var response = await runner.GetResponse("/t/");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Hello World!", await response.GetContent());
}
@@ -97,7 +97,7 @@ public async Task TestAction()
using var response = await runner.GetResponse("/t/action/");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Action", await response.GetContent());
}
@@ -108,7 +108,7 @@ public async Task TestActionWithQuery()
using var response = await runner.GetResponse("/t/action/?query=0815");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("815", await response.GetContent());
}
@@ -129,7 +129,7 @@ public async Task TestActionWithQueryFromBody()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Action test", await response.GetContent());
}
@@ -147,7 +147,7 @@ public async Task TestActionWithBody()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("FieldData", await response.GetContent());
}
@@ -158,7 +158,7 @@ public async Task TestActionWithParameter()
using var response = await runner.GetResponse("/t/simple-action/4711/");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("4711", await response.GetContent());
}
@@ -169,7 +169,7 @@ public async Task TestActionWithBadParameter()
using var response = await runner.GetResponse("/t/simple-action/string/");
- Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.BadRequest);
}
[TestMethod]
@@ -179,7 +179,7 @@ public async Task TestActionWithMixedParameters()
using var response = await runner.GetResponse("/t/complex-action/1/2/?three=3");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("6", await response.GetContent());
}
@@ -190,7 +190,7 @@ public async Task TestActionWithNoResult()
using var response = await runner.GetResponse("/t/void/");
- Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NoContent);
}
[TestMethod]
@@ -200,7 +200,7 @@ public async Task TestNonExistingAction()
using var response = await runner.GetResponse("/t/nope/");
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -210,7 +210,7 @@ public async Task TestHypenCasing()
using var response = await runner.GetResponse("/t/hypen-casing-99/");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("OK", await response.GetContent());
}
@@ -221,7 +221,7 @@ public async Task TestIndexController()
using var response = await runner.GetResponse("/simple-action/4711/");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("4711", await response.GetContent());
}
diff --git a/Testing/Modules/Controllers/ErrorHandlingTests.cs b/Testing/Modules/Controllers/ErrorHandlingTests.cs
index 65393a84..b8e6954a 100644
--- a/Testing/Modules/Controllers/ErrorHandlingTests.cs
+++ b/Testing/Modules/Controllers/ErrorHandlingTests.cs
@@ -49,7 +49,7 @@ public async Task TestMustNotReturnSimpleType()
{
using var response = await Run("/c/simple-type/");
- Assert.AreEqual(HttpStatusCode.InternalServerError, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.InternalServerError);
}
[TestMethod]
diff --git a/Testing/Modules/Controllers/ResultTypeTests.cs b/Testing/Modules/Controllers/ResultTypeTests.cs
index 136618b2..05d0840d 100644
--- a/Testing/Modules/Controllers/ResultTypeTests.cs
+++ b/Testing/Modules/Controllers/ResultTypeTests.cs
@@ -57,7 +57,7 @@ public async Task ControllerMayReturnHandlerBuilder()
using var response = await runner.GetResponse("/t/handler-builder/");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("HandlerBuilder", await response.GetContent());
}
@@ -68,7 +68,7 @@ public async Task ControllerMayReturnHandler()
using var response = await runner.GetResponse("/t/handler/");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Handler", await response.GetContent());
}
@@ -79,7 +79,7 @@ public async Task ControllerMayReturnResponseBuilder()
using var response = await runner.GetResponse("/t/response-builder/");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("ResponseBuilder", await response.GetContent());
}
@@ -90,7 +90,7 @@ public async Task ControllerMayReturnResponse()
using var response = await runner.GetResponse("/t/response/");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Response", await response.GetContent());
}
diff --git a/Testing/Modules/Controllers/SeoTests.cs b/Testing/Modules/Controllers/SeoTests.cs
index 60b16fb7..d5fbe786 100644
--- a/Testing/Modules/Controllers/SeoTests.cs
+++ b/Testing/Modules/Controllers/SeoTests.cs
@@ -50,7 +50,7 @@ public async Task TestActionCasingMatters()
using var response = await runner.GetResponse("/t/Action/");
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
#endregion
diff --git a/Testing/Modules/Conversion/ErrorHandlingTests.cs b/Testing/Modules/Conversion/ErrorHandlingTests.cs
index 53d7c1c1..1e27e6cb 100644
--- a/Testing/Modules/Conversion/ErrorHandlingTests.cs
+++ b/Testing/Modules/Conversion/ErrorHandlingTests.cs
@@ -38,7 +38,7 @@ public async Task UndeserializableBodyReturnsWithBadRequest()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.BadRequest);
}
#endregion
diff --git a/Testing/Modules/ConversionTests.cs b/Testing/Modules/ConversionTests.cs
index d5437e6b..581bf9de 100644
--- a/Testing/Modules/ConversionTests.cs
+++ b/Testing/Modules/ConversionTests.cs
@@ -129,7 +129,7 @@ public ConversionHandler(ISerializationFormat format, IHandler parent)
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual(serialized, await response.GetContent());
}
diff --git a/Testing/Modules/Functional/InlineTests.cs b/Testing/Modules/Functional/InlineTests.cs
index 81af6c2b..0ec51e1b 100644
--- a/Testing/Modules/Functional/InlineTests.cs
+++ b/Testing/Modules/Functional/InlineTests.cs
@@ -116,7 +116,7 @@ public async Task TestNotFound()
using var response = await host.GetResponse("/nope");
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
diff --git a/Testing/Modules/IO/ContentTests.cs b/Testing/Modules/IO/ContentTests.cs
index 058cf7d6..5a1cfd9e 100644
--- a/Testing/Modules/IO/ContentTests.cs
+++ b/Testing/Modules/IO/ContentTests.cs
@@ -19,7 +19,7 @@ public async Task TestContent()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Hello World!", await response.GetContent());
}
@@ -30,7 +30,7 @@ public async Task TestContentIgnoresRouting()
using var response = await runner.GetResponse("/some/path");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
}
}
diff --git a/Testing/Modules/IO/DownloadTests.cs b/Testing/Modules/IO/DownloadTests.cs
index 9f175696..1ece7c1b 100644
--- a/Testing/Modules/IO/DownloadTests.cs
+++ b/Testing/Modules/IO/DownloadTests.cs
@@ -22,7 +22,7 @@ public async Task TestDownload()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("This is text!", await response.GetContent());
Assert.AreEqual("text/plain", response.GetContentHeader("Content-Type"));
@@ -38,7 +38,7 @@ public async Task TestDownloadDoesNotAcceptRouting()
using var response = await runner.GetResponse("/file.txt/blubb");
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -55,7 +55,7 @@ public async Task DownloadsCannotBeModified()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.MethodNotAllowed, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.MethodNotAllowed);
}
[TestMethod]
diff --git a/Testing/Modules/IO/RangeTests.cs b/Testing/Modules/IO/RangeTests.cs
index 6ee19259..706ff4d1 100644
--- a/Testing/Modules/IO/RangeTests.cs
+++ b/Testing/Modules/IO/RangeTests.cs
@@ -19,7 +19,7 @@ public async Task TestRangesAreOptional()
{
using var response = await GetResponse(null);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual(CONTENT, await response.GetContent());
}
@@ -28,7 +28,7 @@ public async Task TestFullRangeIsSatisfied()
{
using var response = await GetResponse("bytes=1-8");
- Assert.AreEqual(HttpStatusCode.PartialContent, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.PartialContent);
Assert.AreEqual("12345678", await response.GetContent());
Assert.AreEqual("bytes 1-8/10", response.GetContentHeader("Content-Range"));
}
@@ -38,7 +38,7 @@ public async Task TestRangeFromStartIsSatisfied()
{
using var response = await GetResponse("bytes=4-");
- Assert.AreEqual(HttpStatusCode.PartialContent, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.PartialContent);
Assert.AreEqual("456789", await response.GetContent());
Assert.AreEqual("bytes 4-9/10", response.GetContentHeader("Content-Range"));
}
@@ -48,7 +48,7 @@ public async Task TestRangeFromEndIsSatisfied()
{
using var response = await GetResponse("bytes=-4");
- Assert.AreEqual(HttpStatusCode.PartialContent, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.PartialContent);
Assert.AreEqual("6789", await response.GetContent());
Assert.AreEqual("bytes 6-9/10", response.GetContentHeader("Content-Range"));
}
@@ -58,7 +58,7 @@ public async Task TestSingleRangeIsSatisfied()
{
using var response = await GetResponse("bytes=1-1");
- Assert.AreEqual(HttpStatusCode.PartialContent, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.PartialContent);
Assert.AreEqual("1", await response.GetContent());
Assert.AreEqual("bytes 1-1/10", response.GetContentHeader("Content-Range"));
}
@@ -68,7 +68,7 @@ public async Task TestFullRangeNotSatisfied()
{
using var response = await GetResponse("bytes=9-13");
- Assert.AreEqual(HttpStatusCode.RequestedRangeNotSatisfiable, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.RequestedRangeNotSatisfiable);
Assert.AreEqual("bytes */10", response.GetContentHeader("Content-Range"));
}
@@ -77,7 +77,7 @@ public async Task TestRangeFromStartNotSatisfied()
{
using var response = await GetResponse("bytes=12-");
- Assert.AreEqual(HttpStatusCode.RequestedRangeNotSatisfiable, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.RequestedRangeNotSatisfiable);
Assert.AreEqual("bytes */10", response.GetContentHeader("Content-Range"));
}
@@ -86,7 +86,7 @@ public async Task TestRangeFromEndNotSatisfied()
{
using var response = await GetResponse("bytes=-12");
- Assert.AreEqual(HttpStatusCode.RequestedRangeNotSatisfiable, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.RequestedRangeNotSatisfiable);
Assert.AreEqual("bytes */10", response.GetContentHeader("Content-Range"));
}
@@ -95,7 +95,7 @@ public async Task TestMultipleRangesNotSatisfied()
{
using var response = await GetResponse("bytes=1-2,3-4");
- Assert.AreEqual(HttpStatusCode.RequestedRangeNotSatisfiable, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.RequestedRangeNotSatisfiable);
Assert.AreEqual("bytes */10", response.GetContentHeader("Content-Range"));
}
@@ -104,7 +104,7 @@ public async Task TestOneBasedIndexDoesNotWork()
{
using var response = await GetResponse("bytes=1-10");
- Assert.AreEqual(HttpStatusCode.RequestedRangeNotSatisfiable, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.RequestedRangeNotSatisfiable);
Assert.AreEqual("bytes */10", response.GetContentHeader("Content-Range"));
}
@@ -113,7 +113,7 @@ public async Task TestHeadRequest()
{
using var response = await GetResponse("bytes=1-8", HttpMethod.Head);
- Assert.AreEqual(HttpStatusCode.PartialContent, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.PartialContent);
Assert.AreEqual("bytes 1-8/10", response.GetContentHeader("Content-Range"));
Assert.AreEqual("8", response.GetContentHeader("Content-Length"));
@@ -126,7 +126,7 @@ public async Task TestRangesIgnoredOnPostRequests()
{
using var response = await GetResponse("bytes=1-8", HttpMethod.Post);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual(CONTENT, await response.GetContent());
}
diff --git a/Testing/Modules/IO/ResourcesTests.cs b/Testing/Modules/IO/ResourcesTests.cs
index ef234051..3b0cd602 100644
--- a/Testing/Modules/IO/ResourcesTests.cs
+++ b/Testing/Modules/IO/ResourcesTests.cs
@@ -21,7 +21,7 @@ public async Task TestFileDownload()
using var response = await runner.GetResponse("/Resources/File.txt");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("This is text!", await response.GetContent());
}
@@ -32,7 +32,7 @@ public async Task TestSubdirectoryFileDownload()
using var response = await runner.GetResponse("/Resources/Subdirectory/AnotherFile.txt");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("This is another text!", await response.GetContent());
}
@@ -43,7 +43,7 @@ public async Task TestNoFileDownload()
using var response = await runner.GetResponse("/Resources/nah.txt");
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -53,7 +53,7 @@ public async Task TestNoSubdirectoryFileDownload()
using var response = await runner.GetResponse("/Resources/nah/File.txt");
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -63,7 +63,7 @@ public async Task TestRootDownload()
using var response = await runner.GetResponse("/File.txt");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("This is text!", await response.GetContent());
}
@@ -74,7 +74,7 @@ public async Task TestDirectory()
using var response = await runner.GetResponse("/Resources/nah/");
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -84,7 +84,7 @@ public async Task TestNonExistingDirectory()
using var response = await runner.GetResponse("/Resources/nah/");
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
diff --git a/Testing/Modules/LayoutTests.cs b/Testing/Modules/LayoutTests.cs
index 1f653cad..9728af6f 100644
--- a/Testing/Modules/LayoutTests.cs
+++ b/Testing/Modules/LayoutTests.cs
@@ -27,12 +27,12 @@ public async Task TestGetIndex()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Hello World!", await response.GetContent());
using var notFound = await runner.GetResponse("/notfound");
- Assert.AreEqual(HttpStatusCode.NotFound, notFound.StatusCode);
+ await notFound.AssertStatusAsync(HttpStatusCode.NotFound);
}
///
@@ -49,7 +49,7 @@ public async Task TestDefaultContent()
{
using var response = await runner.GetResponse(path);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Hello World!", await response.GetContent());
}
}
@@ -68,12 +68,12 @@ public async Task TestRedirect()
using var response = await runner.GetResponse("/section/");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Hello World!", await response.GetContent());
using var redirected = await runner.GetResponse("/section");
- Assert.AreEqual(HttpStatusCode.MovedPermanently, redirected.StatusCode);
+ await redirected.AssertStatusAsync(HttpStatusCode.MovedPermanently);
AssertX.EndsWith("/section/", redirected.GetHeader("Location")!);
}
diff --git a/Testing/Modules/ListingTests.cs b/Testing/Modules/ListingTests.cs
index 289fd756..43b9f6f2 100644
--- a/Testing/Modules/ListingTests.cs
+++ b/Testing/Modules/ListingTests.cs
@@ -75,7 +75,7 @@ public async Task TestNonExistingFolder()
using var response = await runner.GetResponse("/idonotexist/");
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
diff --git a/Testing/Modules/LoadBalancerTests.cs b/Testing/Modules/LoadBalancerTests.cs
index 355927fa..1e3fb17d 100644
--- a/Testing/Modules/LoadBalancerTests.cs
+++ b/Testing/Modules/LoadBalancerTests.cs
@@ -27,7 +27,7 @@ public async Task TestProxy()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Proxy!", await response.GetContent());
}
@@ -41,7 +41,7 @@ public async Task TestRedirect()
using var response = await runner.GetResponse("/page");
- Assert.AreEqual(HttpStatusCode.TemporaryRedirect, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.TemporaryRedirect);
Assert.AreEqual("http://node/page", response.GetHeader("Location"));
}
@@ -55,7 +55,7 @@ public async Task TestCustomHandler()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("My Content!", await response.GetContent());
}
@@ -95,7 +95,7 @@ public async Task TestNoNodes()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
}
diff --git a/Testing/Modules/PageTests.cs b/Testing/Modules/PageTests.cs
index d16f2c19..381017b2 100644
--- a/Testing/Modules/PageTests.cs
+++ b/Testing/Modules/PageTests.cs
@@ -131,7 +131,7 @@ public async Task TestContentInfo()
var content = await response.GetContent();
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
AssertX.Contains("My Title", content);
AssertX.Contains("", content);
@@ -148,7 +148,7 @@ public async Task TestNoContentInfo()
var content = await response.GetContent();
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
AssertX.Contains("Untitled Page", content);
AssertX.Contains("", content);
@@ -207,7 +207,7 @@ public async Task TestRoutingToPath()
var content = await response.GetContent();
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
AssertX.Contains("/test/1", content);
}
}
diff --git a/Testing/Modules/Pages/ErrorHandlingTests.cs b/Testing/Modules/Pages/ErrorHandlingTests.cs
index 734ff80e..cc22ceb1 100644
--- a/Testing/Modules/Pages/ErrorHandlingTests.cs
+++ b/Testing/Modules/Pages/ErrorHandlingTests.cs
@@ -22,7 +22,7 @@ public async Task TestErrorPage()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.InternalServerError, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.InternalServerError);
}
}
diff --git a/Testing/Modules/RedirectTests.cs b/Testing/Modules/RedirectTests.cs
index 1bb537cf..3a0044a7 100644
--- a/Testing/Modules/RedirectTests.cs
+++ b/Testing/Modules/RedirectTests.cs
@@ -25,7 +25,7 @@ public async Task TestTemporary()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.TemporaryRedirect, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.TemporaryRedirect);
Assert.AreEqual("https://google.de/", response.GetHeader("Location"));
}
@@ -41,7 +41,7 @@ public async Task TestTemporaryPost()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.SeeOther, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.SeeOther);
Assert.AreEqual("https://google.de/", response.GetHeader("Location"));
}
@@ -54,7 +54,7 @@ public async Task TestPermanent()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.MovedPermanently, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.MovedPermanently);
Assert.AreEqual("https://google.de/", response.GetHeader("Location"));
}
@@ -70,7 +70,7 @@ public async Task TestPermanentPost()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.PermanentRedirect, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.PermanentRedirect);
Assert.AreEqual("https://google.de/", response.GetHeader("Location"));
}
diff --git a/Testing/Modules/ReverseProxyTests.cs b/Testing/Modules/ReverseProxyTests.cs
index 7dfc3952..3944f4b5 100644
--- a/Testing/Modules/ReverseProxyTests.cs
+++ b/Testing/Modules/ReverseProxyTests.cs
@@ -196,7 +196,7 @@ public async Task TestHead()
using var headed = await runner.GetResponse(headRequest);
- Assert.AreEqual(HttpStatusCode.OK, headed.StatusCode);
+ await headed.AssertStatusAsync(HttpStatusCode.OK);
}
[TestMethod]
@@ -224,7 +224,7 @@ public async Task TestCookies()
using var cookied = await client.SendAsync(cookieRequest);
- Assert.AreEqual(HttpStatusCode.OK, cookied.StatusCode);
+ await cookied.AssertStatusAsync(HttpStatusCode.OK);
var returned = cookies.GetCookies(new Uri(runner.GetUrl()));
@@ -279,7 +279,7 @@ public async Task TestPost()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Input", await response.GetContent());
}
@@ -394,7 +394,7 @@ public async Task TestBadGateway()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.BadGateway, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.BadGateway);
}
diff --git a/Testing/Modules/Security/CorsTests.cs b/Testing/Modules/Security/CorsTests.cs
index 3d18e567..495ea685 100644
--- a/Testing/Modules/Security/CorsTests.cs
+++ b/Testing/Modules/Security/CorsTests.cs
@@ -28,7 +28,7 @@ public async Task TestPreflight()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NoContent);
}
[TestMethod]
@@ -38,7 +38,7 @@ public async Task TestPermissive()
using var response = await runner.GetResponse("/t");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("*", response.GetHeader("Access-Control-Allow-Origin"));
@@ -60,7 +60,7 @@ public async Task TestPermissiveWithoutDefaultAuthorizationHeader()
using var response = await runner.GetResponse("/t");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("*", response.GetHeader("Access-Control-Allow-Origin"));
@@ -82,7 +82,7 @@ public async Task TestRestrictive()
using var response = await runner.GetResponse("/t");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.IsFalse(response.Headers.Contains("Access-Control-Allow-Origin"));
@@ -108,7 +108,7 @@ public async Task TestCustom()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("http://google.de", response.GetHeader("Access-Control-Allow-Origin"));
diff --git a/Testing/Modules/ServerCaching/PrecompressedContentTest.cs b/Testing/Modules/ServerCaching/PrecompressedContentTest.cs
index 0b720e58..d7615a33 100644
--- a/Testing/Modules/ServerCaching/PrecompressedContentTest.cs
+++ b/Testing/Modules/ServerCaching/PrecompressedContentTest.cs
@@ -30,7 +30,7 @@ public async Task TestContentCanBePreCompressed()
using var response = await runner.GetResponse(request);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("br", response.GetContentHeader("Content-Encoding"));
}
diff --git a/Testing/Modules/ServerCaching/ServerCacheTests.cs b/Testing/Modules/ServerCaching/ServerCacheTests.cs
index ca3b42c1..4cc768ca 100644
--- a/Testing/Modules/ServerCaching/ServerCacheTests.cs
+++ b/Testing/Modules/ServerCaching/ServerCacheTests.cs
@@ -40,14 +40,14 @@ public async Task TestContentIsInvalidated()
using var first = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.OK, first.StatusCode);
+ await first.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("1", await first.GetContent());
FileUtil.WriteText(file, "12");
using var second = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.OK, second.StatusCode);
+ await second.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("12", await second.GetContent());
}
finally
@@ -70,14 +70,14 @@ public async Task TestContentNotInvalidated()
using var first = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.OK, first.StatusCode);
+ await first.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("1", await first.GetContent());
FileUtil.WriteText(file, "12");
using var second = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.OK, second.StatusCode);
+ await second.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("1", await second.GetContent());
}
finally
@@ -105,7 +105,7 @@ public async Task TestVariationRespected()
using var gzipResponse = await runner.GetResponse(gzipRequest);
- Assert.AreEqual(HttpStatusCode.OK, gzipResponse.StatusCode);
+ await gzipResponse.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("gzip", gzipResponse.GetContentHeader("Content-Encoding"));
var brRequest = runner.GetRequest();
@@ -114,12 +114,12 @@ public async Task TestVariationRespected()
using var brResponse = await runner.GetResponse(brRequest);
- Assert.AreEqual(HttpStatusCode.OK, brResponse.StatusCode);
+ await brResponse.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("br", brResponse.GetContentHeader("Content-Encoding"));
using var uncompressedResponse = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.OK, uncompressedResponse.StatusCode);
+ await uncompressedResponse.AssertStatusAsync(HttpStatusCode.OK);
AssertX.IsNullOrEmpty(uncompressedResponse.GetContentHeader("Content-Encoding"));
Assert.AreEqual("This is some content!", await uncompressedResponse.GetContent());
}
diff --git a/Testing/Modules/SinglePageTests.cs b/Testing/Modules/SinglePageTests.cs
index 374b9f2b..6d5421a1 100644
--- a/Testing/Modules/SinglePageTests.cs
+++ b/Testing/Modules/SinglePageTests.cs
@@ -29,7 +29,7 @@ public async Task TestIndex()
using var index = await runner.GetResponse("/");
- Assert.AreEqual(HttpStatusCode.OK, index.StatusCode);
+ await index.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("text/html", index.GetContentHeader("Content-Type"));
var content = await index.GetContent();
@@ -51,7 +51,7 @@ public async Task TestIndexServedWithRouting()
using var index = await runner.GetResponse("/some-route/");
- Assert.AreEqual(HttpStatusCode.OK, index.StatusCode);
+ await index.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("text/html", index.GetContentHeader("Content-Type"));
}
@@ -62,7 +62,7 @@ public async Task TestNoIndex()
using var index = await runner.GetResponse("/");
- Assert.AreEqual(HttpStatusCode.NotFound, index.StatusCode);
+ await index.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -76,7 +76,7 @@ public async Task TestFile()
using var index = await runner.GetResponse("/some.txt");
- Assert.AreEqual(HttpStatusCode.OK, index.StatusCode);
+ await index.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("text/plain", index.GetContentHeader("Content-Type"));
var content = await index.GetContent();
@@ -91,7 +91,7 @@ public async Task TestNoFile()
using var index = await runner.GetResponse("/nope.txt");
- Assert.AreEqual(HttpStatusCode.NotFound, index.StatusCode);
+ await index.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
diff --git a/Testing/Modules/StaticWebsites/StaticWebsiteTests.cs b/Testing/Modules/StaticWebsites/StaticWebsiteTests.cs
index 76ca0ba1..8428902b 100644
--- a/Testing/Modules/StaticWebsites/StaticWebsiteTests.cs
+++ b/Testing/Modules/StaticWebsites/StaticWebsiteTests.cs
@@ -40,10 +40,10 @@ public async Task TestNoIndex()
using var runner = TestRunner.Run(StaticWebsite.From(tree));
using var indexResponse = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.NotFound, indexResponse.StatusCode);
+ await indexResponse.AssertStatusAsync(HttpStatusCode.NotFound);
- using var subIndexResponse = await runner.GetResponse("/sub/");
- Assert.AreEqual(HttpStatusCode.NotFound, subIndexResponse.StatusCode);
+ using var subIndexResponse = await runner.GetResponse("/sub/");
+ await subIndexResponse.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -70,7 +70,7 @@ public async Task TestNoSitemap()
using var response = await runner.GetResponse("/" + Sitemap.FILE_NAME);
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -91,7 +91,7 @@ public async Task TestRobots()
using var runner = TestRunner.Run(StaticWebsite.From(VirtualTree.Create()));
using var response = await runner.GetResponse("/" + BotInstructions.FILE_NAME);
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
}
[TestMethod]
@@ -101,7 +101,7 @@ public async Task TestNoRobots()
using var response = await runner.GetResponse("/" + BotInstructions.FILE_NAME);
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -123,7 +123,7 @@ public async Task TestNoRobotsInSubdirectory()
using var response = await runner.GetResponse("/sub/" + BotInstructions.FILE_NAME);
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
}
diff --git a/Testing/Modules/VirtualHostsTests.cs b/Testing/Modules/VirtualHostsTests.cs
index ef6b8602..0c4684e3 100644
--- a/Testing/Modules/VirtualHostsTests.cs
+++ b/Testing/Modules/VirtualHostsTests.cs
@@ -45,7 +45,7 @@ public async Task TestNoDefault()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
private static async Task TestHost(TestRunner runner, string host, string? expected = null)
diff --git a/Testing/Modules/WebserviceTests.cs b/Testing/Modules/WebserviceTests.cs
index 42968020..9d0b6570 100644
--- a/Testing/Modules/WebserviceTests.cs
+++ b/Testing/Modules/WebserviceTests.cs
@@ -105,13 +105,13 @@ public void Empty() { }
[TestMethod]
public async Task TestEmpty()
{
- await WithResponse("", r => { Assert.AreEqual(HttpStatusCode.NoContent, r.StatusCode); return Task.CompletedTask; });
+ await WithResponse("", async r => { await r.AssertStatusAsync(HttpStatusCode.NoContent); });
}
[TestMethod]
public async Task TestVoidReturn()
{
- await WithResponse("nothing", r => { Assert.AreEqual(HttpStatusCode.NoContent, r.StatusCode); return Task.CompletedTask; });
+ await WithResponse("nothing", async r => { await r.AssertStatusAsync(HttpStatusCode.NoContent); });
}
[TestMethod]
@@ -135,7 +135,7 @@ public async Task TestNullableSet()
[TestMethod]
public async Task TestNullableNotSet()
{
- await WithResponse("nullable", r => { Assert.AreEqual(HttpStatusCode.NoContent, r.StatusCode); return Task.CompletedTask; });
+ await WithResponse("nullable", async r => { await r.AssertStatusAsync(HttpStatusCode.NoContent); });
}
[TestMethod]
@@ -155,7 +155,7 @@ public async Task TestParam()
[TestMethod]
public async Task TestConversionFailure()
{
- await WithResponse("param/abc", r => { Assert.AreEqual(HttpStatusCode.BadRequest, r.StatusCode); return Task.CompletedTask; });
+ await WithResponse("param/abc", async r => { await r.AssertStatusAsync(HttpStatusCode.BadRequest); });
}
[TestMethod]
@@ -181,7 +181,7 @@ public async Task TestEntityWithNoNulls()
[TestMethod]
public async Task TestNotSupportedUpload()
{
- await WithResponse("entity", HttpMethod.Post, "123", "bla/blubb", null, r => { Assert.AreEqual(HttpStatusCode.UnsupportedMediaType, r.StatusCode); return Task.CompletedTask; });
+ await WithResponse("entity", HttpMethod.Post, "123", "bla/blubb", null, async r => { await r.AssertStatusAsync(HttpStatusCode.UnsupportedMediaType); });
}
[TestMethod]
@@ -194,13 +194,13 @@ public async Task TestUnsupportedDownloadEnforcesDefault()
[TestMethod]
public async Task TestWrongMethod()
{
- await WithResponse("entity", HttpMethod.Put, "123", null, null, r => { Assert.AreEqual(HttpStatusCode.MethodNotAllowed, r.StatusCode); return Task.CompletedTask; });
+ await WithResponse("entity", HttpMethod.Put, "123", null, null, async r => { await r.AssertStatusAsync(HttpStatusCode.MethodNotAllowed); });
}
[TestMethod]
public async Task TestNoMethod()
{
- await WithResponse("idonotexist", r => { Assert.AreEqual(HttpStatusCode.NotFound, r.StatusCode); return Task.CompletedTask; });
+ await WithResponse("idonotexist", async r => { await r.AssertStatusAsync(HttpStatusCode.NotFound); });
}
[TestMethod]
@@ -240,13 +240,13 @@ await WithResponse("entity", HttpMethod.Post, entity, "text/xml", "text/xml", as
[TestMethod]
public async Task TestException()
{
- await WithResponse("exception", r => { Assert.AreEqual(HttpStatusCode.AlreadyReported, r.StatusCode); return Task.CompletedTask; });
+ await WithResponse("exception", async r => { await r.AssertStatusAsync(HttpStatusCode.AlreadyReported); });
}
[TestMethod]
public async Task TestDuplicate()
{
- await WithResponse("duplicate", r => { Assert.AreEqual(HttpStatusCode.BadRequest, r.StatusCode); return Task.CompletedTask; });
+ await WithResponse("duplicate", async r => { await r.AssertStatusAsync(HttpStatusCode.BadRequest); });
}
[TestMethod]
@@ -258,7 +258,7 @@ public async Task TestWithInstance()
using var response = await runner.GetResponse("/t");
- Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NoContent);
}
#endregion
diff --git a/Testing/Modules/Webservices/ResultTypeTests.cs b/Testing/Modules/Webservices/ResultTypeTests.cs
index 31cab568..53250079 100644
--- a/Testing/Modules/Webservices/ResultTypeTests.cs
+++ b/Testing/Modules/Webservices/ResultTypeTests.cs
@@ -43,7 +43,7 @@ public async Task ControllerMayReturnTask()
using var response = await runner.GetResponse("/t/task");
- Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NoContent);
}
[TestMethod]
@@ -53,7 +53,7 @@ public async Task ControllerMayReturnValueTask()
using var response = await runner.GetResponse("/t/value-task");
- Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NoContent);
}
[TestMethod]
@@ -63,7 +63,7 @@ public async Task ControllerMayReturnGenericTask()
using var response = await runner.GetResponse("/t/generic-task");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("Task result", await response.GetContent());
}
@@ -74,7 +74,7 @@ public async Task ControllerMayReturnGenericValueTask()
using var response = await runner.GetResponse("/t/generic-value-task");
- Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("ValueTask result", await response.GetContent());
}
diff --git a/Testing/Modules/WebsiteTests.cs b/Testing/Modules/WebsiteTests.cs
index 839d8cfa..ae2cd936 100644
--- a/Testing/Modules/WebsiteTests.cs
+++ b/Testing/Modules/WebsiteTests.cs
@@ -65,7 +65,7 @@ public async Task TestErrorHandler()
using var file = await runner.GetResponse("/blubb");
- Assert.AreEqual(HttpStatusCode.NotFound, file.StatusCode);
+ await file.AssertStatusAsync(HttpStatusCode.NotFound);
Assert.AreEqual("text/html; charset=UTF-8", file.GetContentHeader("Content-Type"), StringComparer.InvariantCultureIgnoreCase);
var content = await file.GetContent();
@@ -85,16 +85,16 @@ public async Task TestDevelopmentResourcesWithoutBundle()
.Start();
using var style = await runner.GetResponse("/styles/custom.css");
- Assert.AreEqual(HttpStatusCode.OK, style.StatusCode);
+ await style.AssertStatusAsync(HttpStatusCode.OK);
using var script = await runner.GetResponse("/scripts/custom.js");
- Assert.AreEqual(HttpStatusCode.OK, script.StatusCode);
+ await script.AssertStatusAsync(HttpStatusCode.OK);
using var noStyle = await runner.GetResponse("/styles/no.css");
- Assert.AreEqual(HttpStatusCode.NotFound, noStyle.StatusCode);
+ await noStyle.AssertStatusAsync(HttpStatusCode.NotFound);
using var noScript = await runner.GetResponse("/scripts/no.js");
- Assert.AreEqual(HttpStatusCode.NotFound, noScript.StatusCode);
+ await noScript.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -103,10 +103,10 @@ public async Task TestBundleNotServed()
using var runner = TestRunner.Run(GetWebsite());
using var noStyle = await runner.GetResponse("/styles/custom.css");
- Assert.AreEqual(HttpStatusCode.NotFound, noStyle.StatusCode);
+ await noStyle.AssertStatusAsync(HttpStatusCode.NotFound);
using var noScript = await runner.GetResponse("/scripts/custom.js");
- Assert.AreEqual(HttpStatusCode.NotFound, noScript.StatusCode);
+ await noScript.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -137,7 +137,7 @@ public async Task TestStaticMenu()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -151,7 +151,7 @@ public async Task TestDynamicMenu()
using var response = await runner.GetResponse();
- Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
+ await response.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -160,10 +160,10 @@ public async Task TestResources()
using var runner = TestRunner.Run(GetWebsite());
using var file = await runner.GetResponse("/resources/some.txt");
- Assert.AreEqual(HttpStatusCode.OK, file.StatusCode);
+ await file.AssertStatusAsync(HttpStatusCode.OK);
using var noFile = await runner.GetResponse("/resources/other.txt");
- Assert.AreEqual(HttpStatusCode.NotFound, noFile.StatusCode);
+ await noFile.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -172,7 +172,7 @@ public async Task TestFavicon()
using var runner = TestRunner.Run(GetWebsite());
using var file = await runner.GetResponse("/favicon.ico");
- Assert.AreEqual(HttpStatusCode.OK, file.StatusCode);
+ await file.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("image/x-icon", file.GetContentHeader("Content-Type"));
}
@@ -183,7 +183,7 @@ public async Task TestSitemap()
using var file = await runner.GetResponse("/" + Sitemap.FILE_NAME);
- Assert.AreEqual(HttpStatusCode.OK, file.StatusCode);
+ await file.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("text/xml", file.GetContentHeader("Content-Type"));
}
@@ -194,7 +194,7 @@ public async Task TestRobots()
using var file = await runner.GetResponse("/" + BotInstructions.FILE_NAME);
- Assert.AreEqual(HttpStatusCode.OK, file.StatusCode);
+ await file.AssertStatusAsync(HttpStatusCode.OK);
Assert.AreEqual("text/plain", file.GetContentHeader("Content-Type"));
}
@@ -204,13 +204,13 @@ public async Task TestCoreWebsiteWithoutResources()
using var runner = TestRunner.Run();
using var robots = await runner.GetResponse("/" + BotInstructions.FILE_NAME);
- Assert.AreEqual(HttpStatusCode.NotFound, robots.StatusCode);
+ await robots.AssertStatusAsync(HttpStatusCode.NotFound);
using var favicon = await runner.GetResponse("/favicon.ico");
- Assert.AreEqual(HttpStatusCode.NotFound, favicon.StatusCode);
+ await favicon.AssertStatusAsync(HttpStatusCode.NotFound);
using var sitemap = await runner.GetResponse("/sitemaps/" + Sitemap.FILE_NAME);
- Assert.AreEqual(HttpStatusCode.NotFound, sitemap.StatusCode);
+ await sitemap.AssertStatusAsync(HttpStatusCode.NotFound);
}
[TestMethod]
@@ -279,7 +279,7 @@ public async Task TestAutoReload()
using var script = await runner.GetResponse("/scripts/genhttp-modules-autoreload.js");
- Assert.AreEqual(HttpStatusCode.OK, script.StatusCode);
+ await script.AssertStatusAsync(HttpStatusCode.OK);
AssertX.Contains("checkForModifications", await script.GetContent());
}