Skip to content

Commit 1c05199

Browse files
committed
fix: improved tests by adding CompareResult.Unknown to use as initial option
1 parent 5a95070 commit 1c05199

15 files changed

+80
-64
lines changed

src/AngleSharp.Diffing.Tests/Strategies/AttributeStrategies/AttributeComparerTest.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public void Test002()
2727
var comparison = ToAttributeComparison(@"<b foo>", "foo",
2828
"<b foo>", "foo");
2929

30-
AttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Same);
30+
AttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Same);
3131
}
3232

3333
[Fact(DisplayName = "When two attributes does not have the same name, the compare result is Different")]
@@ -36,7 +36,7 @@ public void Test003()
3636
var comparison = ToAttributeComparison(@"<b foo>", "foo",
3737
"<b bar>", "bar");
3838

39-
AttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different);
39+
AttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Different);
4040
}
4141

4242
[Fact(DisplayName = "When two attribute values are the same, the compare result is Same")]
@@ -45,7 +45,7 @@ public void Test004()
4545
var comparison = ToAttributeComparison(@"<b foo=""bar"">", "foo",
4646
@"<b foo=""bar"">", "foo");
4747

48-
AttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Same);
48+
AttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Same);
4949
}
5050

5151
[Fact(DisplayName = "When two attribute values are different, the compare result is Different")]
@@ -54,7 +54,7 @@ public void Test005()
5454
var comparison = ToAttributeComparison(@"<b foo=""bar"">", "foo",
5555
@"<b foo=""baz"">", "foo");
5656

57-
AttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different);
57+
AttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Different);
5858
}
5959

6060
[Fact(DisplayName = "When the control attribute is postfixed with :ignoreCase, " +
@@ -64,7 +64,7 @@ public void Test006()
6464
var comparison = ToAttributeComparison(@"<b foo:ignoreCase=""BAR"">", "foo:ignorecase",
6565
@"<b foo=""bar"">", "foo");
6666

67-
AttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Same);
67+
AttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Same);
6868
}
6969

7070
[Fact(DisplayName = "When the control attribute is postfixed with :regex, " +
@@ -75,7 +75,7 @@ public void Test007()
7575
var comparison = ToAttributeComparison(@"<b foo:regex=""foobar-\d{4}"">", "foo:regex",
7676
@"<b foo=""foobar-2000"">", "foo");
7777

78-
AttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Same);
78+
AttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Same);
7979
}
8080

8181
[Theory(DisplayName = "When the control attribute is postfixed with :regex:ignoreCase " +
@@ -90,7 +90,7 @@ public void Test008(string attrNamePostfix)
9090
var comparison = ToAttributeComparison($@"<b {controlAttrName}=""foobar-\d{{4}}"">", controlAttrName,
9191
@"<b foo=""FOOBAR-2000"">", "foo");
9292

93-
AttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Same);
93+
AttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Same);
9494
}
9595
}
9696
}

src/AngleSharp.Diffing.Tests/Strategies/AttributeStrategies/BooleanAttributeComparerTest.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public void Test001()
2323
var sut = new BooleanAttributeComparer(BooleanAttributeComparision.Strict);
2424
var comparison = ToAttributeComparison("<b foo>", "foo", "<b bar>", "bar");
2525

26-
sut.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different);
26+
sut.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Different);
2727
}
2828

2929
[Fact(DisplayName = "When attribute name is not an boolean attribute, its current result is returned")]
@@ -49,12 +49,12 @@ public void Test003(string attrName)
4949
var c5 = ToAttributeComparison($@"<b {attrName}="""">", attrName, $@"<b {attrName}>", attrName);
5050
var c6 = ToAttributeComparison($@"<b {attrName}=""{attrName}"">", attrName, $@"<b {attrName}>", attrName);
5151

52-
sut.Compare(c1, CompareResult.Different).ShouldBe(CompareResult.Same);
53-
sut.Compare(c2, CompareResult.Different).ShouldBe(CompareResult.Same);
54-
sut.Compare(c3, CompareResult.Different).ShouldBe(CompareResult.Same);
55-
sut.Compare(c4, CompareResult.Different).ShouldBe(CompareResult.Same);
56-
sut.Compare(c5, CompareResult.Different).ShouldBe(CompareResult.Same);
57-
sut.Compare(c6, CompareResult.Different).ShouldBe(CompareResult.Same);
52+
sut.Compare(c1, CompareResult.Unknown).ShouldBe(CompareResult.Same);
53+
sut.Compare(c2, CompareResult.Unknown).ShouldBe(CompareResult.Same);
54+
sut.Compare(c3, CompareResult.Unknown).ShouldBe(CompareResult.Same);
55+
sut.Compare(c4, CompareResult.Unknown).ShouldBe(CompareResult.Same);
56+
sut.Compare(c5, CompareResult.Unknown).ShouldBe(CompareResult.Same);
57+
sut.Compare(c6, CompareResult.Unknown).ShouldBe(CompareResult.Same);
5858
}
5959

6060
[Theory(DisplayName = "When attributes is boolean and mode is loose, the presence of " +
@@ -68,9 +68,9 @@ public void Test004(string attrName)
6868
var c3 = ToAttributeComparison($@"<b {attrName}=""true"">", attrName, $@"<b {attrName}=""false"">", attrName);
6969

7070

71-
sut.Compare(c1, CompareResult.Different).ShouldBe(CompareResult.Same);
72-
sut.Compare(c2, CompareResult.Different).ShouldBe(CompareResult.Same);
73-
sut.Compare(c3, CompareResult.Different).ShouldBe(CompareResult.Same);
71+
sut.Compare(c1, CompareResult.Unknown).ShouldBe(CompareResult.Same);
72+
sut.Compare(c2, CompareResult.Unknown).ShouldBe(CompareResult.Same);
73+
sut.Compare(c3, CompareResult.Unknown).ShouldBe(CompareResult.Same);
7474
}
7575
}
7676
}

src/AngleSharp.Diffing.Tests/Strategies/AttributeStrategies/ClassAttributeComparerTest.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void Test009(string controlClasses, string testClasses)
2424
var comparison = ToAttributeComparison($@"<p class=""{controlClasses}"">", "class",
2525
$@"<p class=""{testClasses}"">", "class");
2626

27-
ClassAttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Same);
27+
ClassAttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Same);
2828
}
2929

3030
[Fact(DisplayName = "When a class attribute is matched up with another attribute, the result is different")]
@@ -33,7 +33,7 @@ public void Test010()
3333
var comparison = ToAttributeComparison(@"<p class=""foo"">", "class",
3434
@"<p bar=""bar"">", "bar");
3535

36-
ClassAttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different);
36+
ClassAttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Different);
3737
}
3838

3939
[Theory(DisplayName = "When there are different number of classes in the class attributes the result is different")]
@@ -44,7 +44,7 @@ public void Test011(string controlClasses, string testClasses)
4444
var comparison = ToAttributeComparison($@"<p class=""{controlClasses}"">", "class",
4545
$@"<p class=""{testClasses}"">", "class");
4646

47-
ClassAttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different);
47+
ClassAttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Different);
4848
}
4949

5050
[Theory(DisplayName = "When the classes in the class attributes are different the result is different")]
@@ -57,7 +57,7 @@ public void Test012(string controlClasses, string testClasses)
5757
var comparison = ToAttributeComparison($@"<p class=""{controlClasses}"">", "class",
5858
$@"<p class=""{testClasses}"">", "class");
5959

60-
ClassAttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different);
60+
ClassAttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Different);
6161
}
6262
}
6363
}

src/AngleSharp.Diffing.Tests/Strategies/AttributeStrategies/IgnoreAttributeComparerTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public void Test004()
3333
@"<p foo=""baz""></p>", "foo"
3434
);
3535

36-
IgnoreAttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Same);
36+
IgnoreAttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Same);
3737
}
3838
}
3939
}

src/AngleSharp.Diffing.Tests/Strategies/AttributeStrategies/StyleAttributeComparerTest.cs

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
using AngleSharp.Diffing.Core;
2-
32
using Shouldly;
4-
53
using Xunit;
64

75
namespace AngleSharp.Diffing.Strategies.AttributeStrategies
@@ -21,18 +19,31 @@ public void Test001()
2119
StyleAttributeComparer.Compare(comparison, CompareResult.Skip).ShouldBe(CompareResult.Skip);
2220
}
2321

24-
[Fact(DisplayName = "When style attributes has different values then Different is returned")]
25-
public void Test002()
22+
[Theory(DisplayName = "When style attributes has different values then Different is returned")]
23+
[InlineData(@"<p style=""color: red"">", @"<p style=""color: black"">")]
24+
[InlineData(@"<p style=""color: red"">", @"<p style=""text-align:center"">")]
25+
[InlineData(@"<p style=""color: red"">", @"<p style=""color: red;text-align:center"">")]
26+
[InlineData(@"<p style=""color: red;text-align:center"">", @"<p style=""color: red"">")]
27+
public void Test002(string control, string test)
2628
{
27-
var comparison = ToAttributeComparison(@"<p style=""color: red"">", "style", @"<p style=""color: black"">", "style");
28-
StyleAttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different);
29+
var comparison = ToAttributeComparison(control, "style", test, "style");
30+
StyleAttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Different);
2931
}
3032

3133
[Fact(DisplayName = "Comparer should correctly ignore insignificant whitespace")]
3234
public void Test003()
3335
{
3436
var comparison = ToAttributeComparison(@"<p style=""color: red"">", "style", @"<p style=""color:red"">", "style");
35-
StyleAttributeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Same);
37+
StyleAttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Same);
38+
}
39+
40+
[Theory(DisplayName = "Comparer should ignore trailing semi colons")]
41+
[InlineData(@"<p style=""color:red;"">", @"<p style=""color:red"">")]
42+
[InlineData(@"<p style=""color:red"">", @"<p style=""color:red;"">")]
43+
public void Test004(string control, string test)
44+
{
45+
var comparison = ToAttributeComparison(control, "style", test, "style");
46+
StyleAttributeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Same);
3647
}
3748
}
3849
}

src/AngleSharp.Diffing.Tests/Strategies/ElementStrategies/IgnoreAttributesElementComparerTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ public void Test002(string controlHtml)
3737
{
3838
var comparison = ToComparison(controlHtml, "<p></p>");
3939

40-
IgnoreAttributesElementComparer.Compare(comparison, CompareResult.Same).ShouldBe(CompareResult.Same | CompareResult.SkipAttributes);
41-
IgnoreAttributesElementComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different | CompareResult.SkipAttributes);
40+
IgnoreAttributesElementComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.SkipAttributes);
41+
IgnoreAttributesElementComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.SkipAttributes);
4242
}
4343
}
4444
}

src/AngleSharp.Diffing.Tests/Strategies/ElementStrategies/IgnoreChildrenElementComparerTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ public void Test002(string controlHtml)
3737
{
3838
var comparison = ToComparison(controlHtml, "<p></p>");
3939

40-
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Same).ShouldBe(CompareResult.Same | CompareResult.SkipChildren);
41-
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different | CompareResult.SkipChildren);
40+
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.SkipChildren);
41+
IgnoreChildrenElementComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.SkipChildren);
4242
}
4343
}
4444
}

src/AngleSharp.Diffing.Tests/Strategies/ElementStrategies/IgnoreElementComparerTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ public void Test002(string controlHtml)
3535
{
3636
var comparison = ToComparison(controlHtml, "<p></p>");
3737

38-
IgnoreElementComparer.Compare(comparison, CompareResult.Same).ShouldBe(CompareResult.Skip);
39-
IgnoreElementComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Skip);
38+
IgnoreElementComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Skip);
39+
IgnoreElementComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Skip);
4040
}
4141
}
4242
}

src/AngleSharp.Diffing.Tests/Strategies/NodeStrategies/NodeComparerTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public NodeComparerTest(DiffingTestFixture fixture) : base(fixture)
1717
public void Test001()
1818
{
1919
var comparison = ToComparison("<p>", "<p>");
20-
ElementComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Same);
20+
ElementComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Same);
2121
}
2222

2323
[Theory(DisplayName = "When control and test nodes have the a different type and name, the result is Different")]
@@ -28,7 +28,7 @@ public void Test001()
2828
public void Test002(string controlHtml, string testHtml)
2929
{
3030
var comparison = ToComparison(controlHtml, testHtml);
31-
ElementComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different);
31+
ElementComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Different);
3232
}
3333
}
3434
}

src/AngleSharp.Diffing.Tests/Strategies/TextNodeStrategies/StyleSheetTextNodeComparerTest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@ public void Test0001()
3333
}
3434

3535

36-
[Fact(DisplayName = "The comparer responses with Different when style information is different")]
36+
[Fact(DisplayName = "The comparer responds with Different when style information is different")]
3737
public void Test001()
3838
{
3939
var comparison = ToStyleComparison(@"h1{background:#000;}", @"h1{color:#000;}");
4040

41-
StyleSheetTextNodeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Different);
41+
StyleSheetTextNodeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Different);
4242
}
4343

4444
[Theory(DisplayName = "The comparer ignores insignificant whitespace")]
@@ -51,7 +51,7 @@ public void Test003(string whitespace)
5151
{
5252
var comparison = ToStyleComparison($@"h1{whitespace}{{{whitespace}color:{whitespace}#000;{whitespace}}}", @"h1{color:#000;}");
5353

54-
StyleSheetTextNodeComparer.Compare(comparison, CompareResult.Different).ShouldBe(CompareResult.Same);
54+
StyleSheetTextNodeComparer.Compare(comparison, CompareResult.Unknown).ShouldBe(CompareResult.Same);
5555
}
5656

5757
private Comparison ToStyleComparison(string controlStyleText, string testStyleText)

0 commit comments

Comments
 (0)