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();