From b8ab4766d4d06f2d992d709dda74b58c064ef87f Mon Sep 17 00:00:00 2001 From: "Valeriano A.R" Date: Mon, 29 May 2023 03:27:24 +0200 Subject: [PATCH] Tests: Add PageCommon tests --- .../Code/ExtensionMethodsTests.cs | 8 ++- .../Code/ScriptsBundlerTests.cs | 1 + .../Code/StylesBundlerTests.cs | 1 + .../Fakes/FakeWebContext.cs | 13 +++-- VAR.WebFormsCore.Tests/Pages/FrmEchoTests.cs | 3 ++ VAR.WebFormsCore.Tests/Pages/FrmErrorTests.cs | 1 + .../Pages/PageCommonTests.cs | 52 +++++++++++++++++++ 7 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 VAR.WebFormsCore.Tests/Pages/PageCommonTests.cs diff --git a/VAR.WebFormsCore.Tests/Code/ExtensionMethodsTests.cs b/VAR.WebFormsCore.Tests/Code/ExtensionMethodsTests.cs index 8374787..4953cf0 100644 --- a/VAR.WebFormsCore.Tests/Code/ExtensionMethodsTests.cs +++ b/VAR.WebFormsCore.Tests/Code/ExtensionMethodsTests.cs @@ -1,4 +1,3 @@ -using System.Text; using Xunit; using VAR.WebFormsCore.Code; using VAR.WebFormsCore.Tests.Fakes; @@ -17,6 +16,7 @@ public class ExtensionMethodsTests string result = fakeWebContext.GetRequestParameter(key); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); Assert.Equal(string.Empty, result); } @@ -28,6 +28,7 @@ public class ExtensionMethodsTests string result = fakeWebContext.GetRequestParameter(key); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); Assert.Equal(string.Empty, result); } @@ -41,6 +42,7 @@ public class ExtensionMethodsTests string result = fakeWebContext.GetRequestParameter(key); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); Assert.Equal(value, result); } @@ -54,6 +56,7 @@ public class ExtensionMethodsTests string result = fakeWebContext.GetRequestParameter(key); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); Assert.Equal(value, result); } @@ -68,6 +71,7 @@ public class ExtensionMethodsTests string result = fakeWebContext.GetRequestParameter(key); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); Assert.Equal(string.Empty, result); } @@ -82,6 +86,7 @@ public class ExtensionMethodsTests string result = fakeWebContext.GetRequestParameter(key); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); Assert.Equal(string.Empty, result); } @@ -96,6 +101,7 @@ public class ExtensionMethodsTests fakeWebContext.ResponseObject(new object()); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); Assert.Single(fakeWebContext.FakeWritePackages); Assert.Equal("{ }", fakeWebContext.FakeWritePackages[0].ToString()); } diff --git a/VAR.WebFormsCore.Tests/Code/ScriptsBundlerTests.cs b/VAR.WebFormsCore.Tests/Code/ScriptsBundlerTests.cs index f14805b..8ba95e7 100644 --- a/VAR.WebFormsCore.Tests/Code/ScriptsBundlerTests.cs +++ b/VAR.WebFormsCore.Tests/Code/ScriptsBundlerTests.cs @@ -14,6 +14,7 @@ public class ScriptsBundlerTests scriptsBundler.ProcessRequest(fakeWebContext); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); Assert.Single(fakeWebContext.FakeWritePackages); // TODO: Verify contents of intrinsic scripts diff --git a/VAR.WebFormsCore.Tests/Code/StylesBundlerTests.cs b/VAR.WebFormsCore.Tests/Code/StylesBundlerTests.cs index c11683b..e083dc0 100644 --- a/VAR.WebFormsCore.Tests/Code/StylesBundlerTests.cs +++ b/VAR.WebFormsCore.Tests/Code/StylesBundlerTests.cs @@ -14,6 +14,7 @@ public class StylesBundlerTests stylesBundler.ProcessRequest(fakeWebContext); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); Assert.Single(fakeWebContext.FakeWritePackages); // TODO: Verify contents of intrinsic styles diff --git a/VAR.WebFormsCore.Tests/Fakes/FakeWebContext.cs b/VAR.WebFormsCore.Tests/Fakes/FakeWebContext.cs index 3e9362c..f2b8004 100644 --- a/VAR.WebFormsCore.Tests/Fakes/FakeWebContext.cs +++ b/VAR.WebFormsCore.Tests/Fakes/FakeWebContext.cs @@ -41,7 +41,8 @@ public class FakeWebContext : IWebContext public void ResponseRedirect(string url) { - throw new NotImplementedException(); + ResponseStatusCode = 302; + SetResponseHeader("location", url); } public void AddResponseCookie(string cookieName, string value, DateTime? expiration = null) @@ -55,14 +56,16 @@ public class FakeWebContext : IWebContext } public bool ResponseHasStarted => false; - - public int ResponseStatusCode { get; set; } + + public int ResponseStatusCode { get; set; } = 200; public string? ResponseContentType { get; set; } - + + public Dictionary FakeResponseHeaders { get; } = new(); + public void SetResponseHeader(string key, string value) { - throw new NotImplementedException(); + FakeResponseHeaders.Add(key, value); } public void PrepareCacheableResponse() diff --git a/VAR.WebFormsCore.Tests/Pages/FrmEchoTests.cs b/VAR.WebFormsCore.Tests/Pages/FrmEchoTests.cs index 56503ec..eaf7762 100644 --- a/VAR.WebFormsCore.Tests/Pages/FrmEchoTests.cs +++ b/VAR.WebFormsCore.Tests/Pages/FrmEchoTests.cs @@ -14,6 +14,7 @@ public class FrmEchoTests frmEcho.ProcessRequest(fakeWebContext); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); string result = fakeWebContext.FakeWritePackages.ToString(""); Assert.Equal( expected: """ @@ -35,6 +36,7 @@ public class FrmEchoTests frmEcho.ProcessRequest(fakeWebContext); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); string result = fakeWebContext.FakeWritePackages.ToString(""); Assert.Equal( expected: """ @@ -56,6 +58,7 @@ public class FrmEchoTests frmEcho.ProcessRequest(fakeWebContext); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); string result = fakeWebContext.FakeWritePackages.ToString(""); Assert.Equal( expected: """ diff --git a/VAR.WebFormsCore.Tests/Pages/FrmErrorTests.cs b/VAR.WebFormsCore.Tests/Pages/FrmErrorTests.cs index 475e6a3..5d5e8e2 100644 --- a/VAR.WebFormsCore.Tests/Pages/FrmErrorTests.cs +++ b/VAR.WebFormsCore.Tests/Pages/FrmErrorTests.cs @@ -14,6 +14,7 @@ public class FrmErrorTests frmError.ProcessRequest(fakeWebContext); + Assert.Equal(200, fakeWebContext.ResponseStatusCode); string result = fakeWebContext.FakeWritePackages.ToString(""); Assert.Equal( expected: """ diff --git a/VAR.WebFormsCore.Tests/Pages/PageCommonTests.cs b/VAR.WebFormsCore.Tests/Pages/PageCommonTests.cs new file mode 100644 index 0000000..6ad9e1e --- /dev/null +++ b/VAR.WebFormsCore.Tests/Pages/PageCommonTests.cs @@ -0,0 +1,52 @@ +using VAR.WebFormsCore.Pages; +using VAR.WebFormsCore.Tests.Fakes; +using Xunit; + +namespace VAR.WebFormsCore.Tests.Pages; + +public class PageCommonTests +{ + #region ProcessRequest TestForm + + private class TestEmptyForm : PageCommon + { + public TestEmptyForm(bool mustBeAuthenticated) + { + MustBeAuthenticated = mustBeAuthenticated; + } + } + + [Fact] + public void ProcessRequest__TestEmptyForm() + { + FakeWebContext fakeWebContext = new(); + TestEmptyForm testEmptyForm = new(mustBeAuthenticated: false); + + testEmptyForm.ProcessRequest(fakeWebContext); + + Assert.Equal(200, fakeWebContext.ResponseStatusCode); + string result = fakeWebContext.FakeWritePackages.ToString(""); + Assert.Equal( + expected: """ + + + +

+ """, + actual: result); + } + + [Fact] + public void ProcessRequest__TestEmptyFormNotAuthenticated__RedirectToFrmLogin() + { + FakeWebContext fakeWebContext = new(); + TestEmptyForm testEmptyForm = new(mustBeAuthenticated: true); + + testEmptyForm.ProcessRequest(fakeWebContext); + + Assert.Equal(302, fakeWebContext.ResponseStatusCode); + Assert.Equal(string.Empty, fakeWebContext.FakeResponseHeaders["location"]); + } + + #endregion ProcessRequest TestForm +} \ No newline at end of file