Skip to content

Commit d077e11

Browse files
committed
Reorganized test library
1 parent 7dedd33 commit d077e11

12 files changed

Lines changed: 179 additions & 115 deletions
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
namespace Egil.RazorComponents.Testing
1313
{
1414
[SuppressMessage("Reliability", "CA2007:Consider calling ConfigureAwait on the awaited task", Justification = "<Pending>")]
15-
public class AllTypesOfParamsTest : ComponentTestFixture
15+
public class ComponentTestFixtureTest : ComponentTestFixture
1616
{
1717
[Fact(DisplayName = "All types of parameters are correctly assigned to component on render")]
1818
public void Test001()

tests/BlazorElementReferencesIncludedInRenderedMarkup.razor renamed to tests/Components/TestComponentBaseTest/BlazorElementReferencesIncludedInRenderedMarkup.razor

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
@*@inherits TestComponentBase
1+
@inherits TestComponentBase
22

33

44
<Fixture Test="Test">
@@ -9,12 +9,12 @@
99
@code {
1010
ElementReference refElm;
1111

12-
void Test(IRazorTestContext context)
12+
void Test()
1313
{
14-
var cut = context.GetFragment();
15-
14+
var cut = GetFragment();
15+
1616
var html = cut.GetMarkup();
1717

1818
html.ShouldContain($"=\"{refElm.Id}\"");
1919
}
20-
}*@
20+
}

tests/CorrectImplicitRazorTestContextAvailable.razor renamed to tests/Components/TestComponentBaseTest/CorrectImplicitRazorTestContextAvailable.razor

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
void Test1()
2121
{
22+
this.
2223
GetComponentUnderTest<SimpleWithDeps>().Find("p").TextContent.ShouldBe(dep1Expected.Name);
2324
GetFragment<Simple1>().ShouldNotBeNull();
2425
}
@@ -28,6 +29,13 @@
2829
GetComponentUnderTest<SimpleWithDeps>().Find("p").TextContent.ShouldBe(dep1Expected.Name);
2930
GetFragment<Simple1>().ShouldNotBeNull();
3031
}
32+
33+
Task TestAsync1()
34+
{
35+
GetComponentUnderTest<SimpleWithDeps>().Find("p").TextContent.ShouldBe(dep1Expected.Name);
36+
GetFragment<Simple1>().ShouldNotBeNull();
37+
return Task.CompletedTask;
38+
}
3139
}
3240

3341
<Fixture Description="TADA" Setup="Setup2" Test="Test2" Tests="new Action[] { Test2_1 }">
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
@inherits TestComponentBase
2+
3+
<Fixture Setup="Setup"
4+
Test="Test1"
5+
TestAsync="TestAsync1"
6+
Tests=@(new Action[] { Test2, Test3 })
7+
TestsAsync=@(new Func<Task>[] { TestAsync2, TestAsync3 })>
8+
<ComponentUnderTest><div /></ComponentUnderTest>
9+
</Fixture>
10+
@code{
11+
List<string> callOrder = new List<string>();
12+
IRazorTestContext? seenContext;
13+
14+
void Setup()
15+
{
16+
seenContext = this;
17+
callOrder.Add(nameof(Setup));
18+
callOrder.Count.ShouldBe(1);
19+
callOrder[0].ShouldBe(nameof(Setup));
20+
}
21+
22+
void Test1()
23+
{
24+
callOrder.Add(nameof(Test1));
25+
callOrder.Count.ShouldBe(2);
26+
callOrder[0].ShouldBe(nameof(Setup));
27+
callOrder[1].ShouldBe(nameof(Test1));
28+
this.ShouldBe(seenContext);
29+
}
30+
31+
Task TestAsync1()
32+
{
33+
callOrder.Add(nameof(TestAsync1));
34+
callOrder.Count.ShouldBe(3);
35+
callOrder[0].ShouldBe(nameof(Setup));
36+
callOrder[1].ShouldBe(nameof(Test1));
37+
callOrder[2].ShouldBe(nameof(TestAsync1));
38+
this.ShouldBe(seenContext);
39+
return Task.CompletedTask;
40+
}
41+
42+
void Test2()
43+
{
44+
callOrder.Add(nameof(Test2));
45+
callOrder.Count.ShouldBe(4);
46+
callOrder[0].ShouldBe(nameof(Setup));
47+
callOrder[1].ShouldBe(nameof(Test1));
48+
callOrder[2].ShouldBe(nameof(TestAsync1));
49+
callOrder[3].ShouldBe(nameof(Test2));
50+
this.ShouldBe(seenContext);
51+
}
52+
53+
void Test3()
54+
{
55+
callOrder.Add(nameof(Test3));
56+
callOrder.Count.ShouldBe(5);
57+
callOrder[0].ShouldBe(nameof(Setup));
58+
callOrder[1].ShouldBe(nameof(Test1));
59+
callOrder[2].ShouldBe(nameof(TestAsync1));
60+
callOrder[3].ShouldBe(nameof(Test2));
61+
callOrder[4].ShouldBe(nameof(Test3));
62+
63+
this.ShouldBe(seenContext);
64+
}
65+
66+
Task TestAsync2()
67+
{
68+
callOrder.Add(nameof(TestAsync2));
69+
callOrder.Count.ShouldBe(6);
70+
callOrder[0].ShouldBe(nameof(Setup));
71+
callOrder[1].ShouldBe(nameof(Test1));
72+
callOrder[2].ShouldBe(nameof(TestAsync1));
73+
callOrder[3].ShouldBe(nameof(Test2));
74+
callOrder[4].ShouldBe(nameof(Test3));
75+
callOrder[5].ShouldBe(nameof(TestAsync2));
76+
this.ShouldBe(seenContext);
77+
return Task.CompletedTask;
78+
}
79+
80+
Task TestAsync3()
81+
{
82+
callOrder.Add(nameof(TestAsync3));
83+
callOrder.Count.ShouldBe(7);
84+
callOrder[0].ShouldBe(nameof(Setup));
85+
callOrder[1].ShouldBe(nameof(Test1));
86+
callOrder[2].ShouldBe(nameof(TestAsync1));
87+
callOrder[3].ShouldBe(nameof(Test2));
88+
callOrder[4].ShouldBe(nameof(Test3));
89+
callOrder[5].ShouldBe(nameof(TestAsync2));
90+
callOrder[6].ShouldBe(nameof(TestAsync3));
91+
this.ShouldBe(seenContext);
92+
return Task.CompletedTask;
93+
}
94+
}

tests/GettingCutAndFragmentFromRazorTestContextTest.razor renamed to tests/Components/TestComponentBaseTest/GettingCutAndFragmentFromRazorTestContextTest.razor

File renamed without changes.

tests/LifeCycleTrackerTest.razor renamed to tests/Components/TestComponentBaseTest/LifeCycleTrackerTest.razor

File renamed without changes.

tests/FixtureMethodsShouldBeCalledInExpectedOrder.razor

Lines changed: 0 additions & 47 deletions
This file was deleted.

tests/GlobalSuppressions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
[assembly: SuppressMessage("Reliability", "CA2007:Consider calling ConfigureAwait on the awaited task", Justification = "<Pending>")]
55
[assembly: SuppressMessage("Globalization", "CA1308:Normalize strings to uppercase", Justification = "<Pending>")]
66
[assembly: SuppressMessage("Design", "CA1031:Do not catch general exception types", Justification = "In tests its ok to catch the general exception type")]
7+
[assembly: SuppressMessage("Usage", "CA2234:Pass system uri objects instead of strings", Justification = "<Pending>")]

tests/Mocking/JSInterop/JsRuntimeAssertExtensionsTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,11 +120,11 @@ public void Test202()
120120
{
121121
using var htmlParser = new TestHtmlParser();
122122
var elmRef = new ElementReference(Guid.NewGuid().ToString());
123-
var elm = htmlParser.Parse($"<p {Htmlizer.ELEMENT_REFERENCE_ATTR_NAME}=\"ASDF\" />").First() as IElement;
123+
var elm = (IElement)htmlParser.Parse($"<p {Htmlizer.ELEMENT_REFERENCE_ATTR_NAME}=\"ASDF\" />").First();
124124

125125
Should.Throw<AssertActualExpectedException>(() => elmRef.ShouldBeElementReferenceTo(elm));
126126

127-
var elmWithoutRefAttr = htmlParser.Parse($"<p />").First() as IElement;
127+
var elmWithoutRefAttr = (IElement)htmlParser.Parse($"<p />").First();
128128

129129
Should.Throw<AssertActualExpectedException>(() => elmRef.ShouldBeElementReferenceTo(elmWithoutRefAttr));
130130
}

tests/RenderComponentTest.cs

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
using Egil.RazorComponents.Testing.EventDispatchExtensions;
2+
using Egil.RazorComponents.Testing.SampleComponents;
3+
using Shouldly;
4+
using Xunit;
5+
6+
namespace Egil.RazorComponents.Testing
7+
{
8+
public class RenderComponentTest : ComponentTestFixture
9+
{
10+
[Fact(DisplayName = "GetNodes should return the same instance " +
11+
"when a render has not resulted in any changes")]
12+
public void Test003()
13+
{
14+
var cut = RenderComponent<Wrapper>(ChildContent("<div>"));
15+
var initialNodes = cut.GetNodes();
16+
17+
cut.Render();
18+
cut.SetParametersAndRender(ChildContent("<div>"));
19+
20+
Assert.Same(initialNodes, cut.GetNodes());
21+
}
22+
23+
[Fact(DisplayName = "GetNodes should return new instance " +
24+
"when a SetParametersAndRender has caused changes to DOM tree")]
25+
public void Tets004()
26+
{
27+
var cut = RenderComponent<Wrapper>(ChildContent("<div>"));
28+
var initialNodes = cut.GetNodes();
29+
30+
cut.SetParametersAndRender(ChildContent("<p>"));
31+
32+
Assert.NotSame(initialNodes, cut.GetNodes());
33+
cut.Find("p").ShouldNotBeNull();
34+
}
35+
36+
[Fact(DisplayName = "GetNodes should return new instance " +
37+
"when a Render has caused changes to DOM tree")]
38+
public void Tets005()
39+
{
40+
var cut = RenderComponent<RenderCounter>();
41+
var initialNodes = cut.GetNodes();
42+
43+
cut.Render();
44+
45+
Assert.NotSame(initialNodes, cut.GetNodes());
46+
}
47+
48+
[Fact(DisplayName = "GetNodes should return new instance " +
49+
"when a event handler trigger has caused changes to DOM tree")]
50+
public void Tets006()
51+
{
52+
var cut = RenderComponent<ClickCounter>();
53+
var initialNodes = cut.GetNodes();
54+
55+
cut.Find("button").Click();
56+
57+
Assert.NotSame(initialNodes, cut.GetNodes());
58+
}
59+
60+
61+
}
62+
63+
}

0 commit comments

Comments
 (0)