Add tests for parameter optionality

This commit is contained in:
GHXX 2024-01-14 03:07:34 +01:00
parent 14ab546d4d
commit 92e472d526

View File

@ -1,4 +1,5 @@
using SimpleHttpServer; using SimpleHttpServer;
using SimpleHttpServer.Types;
using System.Net; using System.Net;
namespace SimpleHttpServerTest; namespace SimpleHttpServerTest;
@ -82,9 +83,13 @@ public class SimpleServerTest {
foreach (var a1 in "test1;longstring2;something else with a space".Split(';')) { 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 a2 in new[] { -10, 2, -2, 5, 0, 4 }) {
foreach (var a3 in new[] { -1, 9, 2, -20, 0 }) { foreach (var a3 in new[] { -1, 9, 2, -20, 0 }) {
var resp = await AssertGetStatusCodeAsync($"returnqueries?arg1={a1}&arg2={a2}&arg3={a3}", HttpStatusCode.OK); foreach (var a4 in new[] { -1, 9, 0 }) {
var str = await resp.Content.ReadAsStringAsync(); foreach (var page in "returnqueries;returnqueries2".Split(';')) {
Assert.AreEqual(TestEndpoints.GetReturnQueryPageResult(a1, a2, a3), str); 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}"; public static string GetReturnQueryPageResult(string arg1, int arg2, int arg3) => $"{arg1};{arg2 * 2 - arg3 * 5}";
[HttpEndpoint(HttpRequestType.GET, "/returnqueries")] [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)); 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));
}
} }
} }