Tests: Add test for FrmEcho.

This commit is contained in:
2023-05-29 01:10:58 +02:00
parent 602ec194fa
commit 82b237f7fd
3 changed files with 102 additions and 8 deletions

View File

@@ -97,7 +97,7 @@ public class ExtensionMethodsTests
fakeWebContext.ResponseObject(new object()); fakeWebContext.ResponseObject(new object());
Assert.Single(fakeWebContext.FakeWritePackages); Assert.Single(fakeWebContext.FakeWritePackages);
Assert.Equal("{ }", Encoding.UTF8.GetString(fakeWebContext.FakeWritePackages[0].Bin ?? Array.Empty<byte>())); Assert.Equal("{ }", fakeWebContext.FakeWritePackages[0].ToString());
} }
#endregion ResponseObject #endregion ResponseObject

View File

@@ -1,3 +1,4 @@
using System.Text;
using VAR.WebFormsCore.Code; using VAR.WebFormsCore.Code;
namespace VAR.WebFormsCore.Tests.Fakes; namespace VAR.WebFormsCore.Tests.Fakes;
@@ -21,12 +22,6 @@ public class FakeWebContext : IWebContext
public Dictionary<string, string?> RequestForm { get; } = new(); public Dictionary<string, string?> RequestForm { get; } = new();
public struct WritePackage
{
public string? Text { get; set; }
public byte[]? Bin { get; set; }
}
public List<WritePackage> FakeWritePackages { get; } = new(); public List<WritePackage> FakeWritePackages { get; } = new();
public void ResponseWrite(string text) public void ResponseWrite(string text)
@@ -79,4 +74,36 @@ public class FakeWebContext : IWebContext
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
} }
public struct WritePackage
{
public string? Text { get; set; }
public byte[]? Bin { get; set; }
public override string ToString()
{
if (Text != null)
{
return Text;
}
if (Bin == null)
{
return string.Empty;
}
string text = Encoding.UTF8.GetString(Bin ?? Array.Empty<byte>());
return text;
}
}
public static class WritePackageExtensions
{
public static string ToString(this List<WritePackage> list, string separator)
{
IEnumerable<string> listStrings = list.Select(x => x.ToString());
string result = string.Join(separator, listStrings);
return result;
}
}

View File

@@ -0,0 +1,67 @@
using VAR.WebFormsCore.Pages;
using VAR.WebFormsCore.Tests.Fakes;
using Xunit;
namespace VAR.WebFormsCore.Tests.Pages;
public class FrmEchoTests
{
[Fact]
public void ProcessRequest__Empty__Empty()
{
FakeWebContext fakeWebContext = new();
FrmEcho frmEcho = new();
frmEcho.ProcessRequest(fakeWebContext);
string result = fakeWebContext.FakeWritePackages.ToString("");
Assert.Equal(
expected: """
<pre><code>Header:{ }
Query:{ }
Form:{ }
</code></pre>
""",
actual: result);
}
[Fact]
public void ProcessRequest__OneQueryParameterGet__FormData()
{
FakeWebContext fakeWebContext = new();
fakeWebContext.RequestQuery.Add("Test", "Value");
FrmEcho frmEcho = new();
frmEcho.ProcessRequest(fakeWebContext);
string result = fakeWebContext.FakeWritePackages.ToString("");
Assert.Equal(
expected: """
<pre><code>Header:{ }
Query:{ "Test": "Value" }
Form:{ }
</code></pre>
""",
actual: result);
}
[Fact]
public void ProcessRequest__OneFormParameterPost__FormData()
{
FakeWebContext fakeWebContext = new(requestMethod: "POST");
fakeWebContext.RequestForm.Add("Test", "Value");
FrmEcho frmEcho = new();
frmEcho.ProcessRequest(fakeWebContext);
string result = fakeWebContext.FakeWritePackages.ToString("");
Assert.Equal(
expected: """
<pre><code>Header:{ }
Query:{ }
Form:{ "Test": "Value" }
</code></pre>
""",
actual: result);
}
}