From 61107226c8539d9b98c8b056e5c416603617e6f9 Mon Sep 17 00:00:00 2001 From: "Valeriano A.R" Date: Sun, 28 May 2023 21:57:05 +0200 Subject: [PATCH] Tests: Add tests for ExtensionMethods.GetRequestParameter, and coverage for ExtensionMethods.ResponseObject. --- .../Code/ExtensionMethodsTests.cs | 104 ++++++++++++++++++ .../Fakes/FakeWebContext.cs | 11 +- 2 files changed, 112 insertions(+), 3 deletions(-) create mode 100644 VAR.WebFormsCore.Tests/Code/ExtensionMethodsTests.cs diff --git a/VAR.WebFormsCore.Tests/Code/ExtensionMethodsTests.cs b/VAR.WebFormsCore.Tests/Code/ExtensionMethodsTests.cs new file mode 100644 index 0000000..ff80344 --- /dev/null +++ b/VAR.WebFormsCore.Tests/Code/ExtensionMethodsTests.cs @@ -0,0 +1,104 @@ +using System.Text; +using Xunit; +using VAR.WebFormsCore.Code; +using VAR.WebFormsCore.Tests.Fakes; + +namespace VAR.WebFormsCore.Tests.Code; + +public class ExtensionMethodsTests +{ + #region GetRequestParameter + + [Fact] + public void GetRequestParameter__EmptyGet__Empty() + { + FakeWebContext fakeWebContext = new(); + string key = "Key"; + + string result = fakeWebContext.GetRequestParameter(key); + + Assert.Equal(string.Empty, result); + } + + [Fact] + public void GetRequestParameter__EmptyPost__Empty() + { + FakeWebContext fakeWebContext = new(requestMethod: "POST"); + string key = "Key"; + + string result = fakeWebContext.GetRequestParameter(key); + + Assert.Equal(string.Empty, result); + } + + [Fact] + public void GetRequestParameter__QueryKeyGet__CorrectValue() + { + FakeWebContext fakeWebContext = new(); + string key = "Key"; + string value = "Value"; + fakeWebContext.RequestQuery.Add(key, value); + + string result = fakeWebContext.GetRequestParameter(key); + + Assert.Equal(value, result); + } + + [Fact] + public void GetRequestParameter__FormKeyPost__CorrectValue() + { + FakeWebContext fakeWebContext = new(requestMethod: "POST"); + string key = "Key"; + string value = "Value"; + fakeWebContext.RequestForm.Add(key, value); + + string result = fakeWebContext.GetRequestParameter(key); + + Assert.Equal(value, result); + } + + [Fact] + public void GetRequestParameter__OtherQueryKeyGet__CorrectValue() + { + FakeWebContext fakeWebContext = new(); + string keyInvalid = "KeyInvalid"; + string key = "Key"; + string value = "Value"; + fakeWebContext.RequestQuery.Add(keyInvalid, value); + + string result = fakeWebContext.GetRequestParameter(key); + + Assert.Equal(string.Empty, result); + } + + [Fact] + public void GetRequestParameter__OtherFormKeyPost__Empty() + { + FakeWebContext fakeWebContext = new(requestMethod: "POST"); + string keyInvalid = "KeyInvalid"; + string key = "Key"; + string value = "Value"; + fakeWebContext.RequestForm.Add(keyInvalid, value); + + string result = fakeWebContext.GetRequestParameter(key); + + Assert.Equal(string.Empty, result); + } + + #endregion GetRequestParameter + + #region ResponseObject + + [Fact] + public void ResponseObject__EmptyObject__NullString() + { + FakeWebContext fakeWebContext = new(); + + fakeWebContext.ResponseObject(new object()); + + Assert.Single(fakeWebContext.FakeWritePackages); + Assert.Equal("{ }", Encoding.UTF8.GetString(fakeWebContext.FakeWritePackages[0].Bin ?? Array.Empty())); + } + + #endregion ResponseObject +} \ No newline at end of file diff --git a/VAR.WebFormsCore.Tests/Fakes/FakeWebContext.cs b/VAR.WebFormsCore.Tests/Fakes/FakeWebContext.cs index 019da5d..a49c361 100644 --- a/VAR.WebFormsCore.Tests/Fakes/FakeWebContext.cs +++ b/VAR.WebFormsCore.Tests/Fakes/FakeWebContext.cs @@ -4,10 +4,15 @@ namespace VAR.WebFormsCore.Tests.Fakes; public class FakeWebContext : IWebContext { + public FakeWebContext(string requestMethod = "GET") + { + RequestMethod = requestMethod; + } + public string RequestPath => string.Empty; - - public string RequestMethod => string.Empty; - + + public string RequestMethod { get; } + public Dictionary RequestHeader { get; } = new(); public Dictionary RequestCookies { get; } = new();