From 92e472d5260afc784ec5584f8bc503eced96dd91 Mon Sep 17 00:00:00 2001 From: GHXX Date: Sun, 14 Jan 2024 03:07:34 +0100 Subject: [PATCH] Add tests for parameter optionality --- SimpleHttpServerTest/SimpleServerTest.cs | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/SimpleHttpServerTest/SimpleServerTest.cs b/SimpleHttpServerTest/SimpleServerTest.cs index 4f1a209..9910f20 100644 --- a/SimpleHttpServerTest/SimpleServerTest.cs +++ b/SimpleHttpServerTest/SimpleServerTest.cs @@ -1,4 +1,5 @@ using SimpleHttpServer; +using SimpleHttpServer.Types; using System.Net; namespace SimpleHttpServerTest; @@ -82,9 +83,13 @@ public class SimpleServerTest { foreach (var a1 in "test1;longstring2;something else with a space".Split(';')) { foreach (var a2 in new[] { -10, 2, -2, 5, 0, 4 }) { foreach (var a3 in new[] { -1, 9, 2, -20, 0 }) { - var resp = await AssertGetStatusCodeAsync($"returnqueries?arg1={a1}&arg2={a2}&arg3={a3}", HttpStatusCode.OK); - var str = await resp.Content.ReadAsStringAsync(); - Assert.AreEqual(TestEndpoints.GetReturnQueryPageResult(a1, a2, a3), str); + foreach (var a4 in new[] { -1, 9, 0 }) { + foreach (var page in "returnqueries;returnqueries2".Split(';')) { + var resp = await AssertGetStatusCodeAsync($"{page}?arg1={a1}&arg2={a2}&arg3={a3}&arg4={a4}", HttpStatusCode.OK); + var str = await resp.Content.ReadAsStringAsync(); + Assert.AreEqual(TestEndpoints.GetReturnQueryPageResult(a1, a2, page == "returnqueries2" ? (a3 + a4) : a3), str); + } + } } } } @@ -119,8 +124,15 @@ public class SimpleServerTest { public static string GetReturnQueryPageResult(string arg1, int arg2, int arg3) => $"{arg1};{arg2 * 2 - arg3 * 5}"; [HttpEndpoint(HttpRequestType.GET, "/returnqueries")] - public static async Task TestPage3(RequestContext req, string arg1, int arg2, int arg3) { + public static async Task ReturnQueriesPage(RequestContext req, string arg1, int arg2, int arg3) { await req.RespWriter.WriteAsync(GetReturnQueryPageResult(arg1, arg2, arg3)); } + + [HttpEndpoint(HttpRequestType.GET, "/returnqueries2")] + public static async Task ReturnQueriesPage2(RequestContext req, + [Parameter("arg2")] int arg1, [Parameter("arg1")] string arg2, int arg3, [Parameter("arg4", true)] int arg4) { + // arg4 should be equal to zero as it should get the deafult value because it is not passed to the server + await req.RespWriter.WriteAsync(GetReturnQueryPageResult(arg2, arg1, arg3 + arg4)); + } } } \ No newline at end of file