Skip to content

Commit 51eb25a

Browse files
committed
Add: Dependency Ordering Tests
1 parent 7adefff commit 51eb25a

File tree

4 files changed

+97
-3
lines changed

4 files changed

+97
-3
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
using System.Collections.Generic;
2+
3+
namespace Xunit.Extensions.Ordering.Tests
4+
{
5+
[Trait("Ordered", "Dependency")]
6+
[TestCaseOrderer(TestDependencyOrderer.TypeName, TestDependencyOrderer.AssemblyName)]
7+
public partial class DependencyOrderTests
8+
{
9+
public static List<int> ExecutionOrder { get; set; } = new List<int>();
10+
11+
[Fact]
12+
[TestDependency("DependencyOrderedTest1")]
13+
public void DependencyOrderedTest0()
14+
{
15+
ExecutionOrder.Add(0);
16+
Assert.Contains(1, ExecutionOrder);
17+
Assert.Contains(2, ExecutionOrder);
18+
Assert.Contains(3, ExecutionOrder);
19+
}
20+
21+
[Fact]
22+
[TestDependency("DependencyOrderedTest3")]
23+
public void DependencyOrderedTest2()
24+
{
25+
ExecutionOrder.Add(2);
26+
Assert.DoesNotContain(0, ExecutionOrder);
27+
Assert.DoesNotContain(1, ExecutionOrder);
28+
Assert.Contains(3, ExecutionOrder);
29+
}
30+
}
31+
32+
public partial class DependencyOrderTests
33+
{
34+
[Fact]
35+
public void DependencyOrderedTest3()
36+
{
37+
ExecutionOrder.Add(3);
38+
Assert.DoesNotContain(0, ExecutionOrder);
39+
Assert.DoesNotContain(1, ExecutionOrder);
40+
Assert.DoesNotContain(2, ExecutionOrder);
41+
}
42+
43+
[Fact]
44+
[TestDependency("DependencyOrderedTest2")]
45+
public void DependencyOrderedTest1()
46+
{
47+
ExecutionOrder.Add(1);
48+
Assert.DoesNotContain(0, ExecutionOrder);
49+
Assert.Contains(2, ExecutionOrder);
50+
Assert.Contains(3, ExecutionOrder);
51+
}
52+
}
53+
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using System.Collections.Generic;
2+
3+
namespace Xunit.Extensions.Ordering.Tests
4+
{
5+
6+
public class Sort
7+
{
8+
[Fact]
9+
[Trait("Order", "TopologicalSort")]
10+
// ReSharper disable once InconsistentNaming
11+
public void TopologicalSortTest()
12+
{
13+
var t = typeof(Xunit.Extensions.Ordering.TestDependencyOrderer);
14+
var a = new Item("A");
15+
var b = new Item("B", "C", "E");
16+
var c = new Item("C");
17+
var d = new Item("D", "A");
18+
var e = new Item("E", "D", "G");
19+
var f = new Item("F");
20+
var g = new Item("G", "F", "H");
21+
var h = new Item("H");
22+
23+
var unsorted = new[] { a, b, c, d, e, f, g, h };
24+
var expected = new[] { a, c, d, f, h, g, e, b };
25+
var sorted = unsorted.TSort(x => x.Dependencies, y => y.DisplayName);
26+
Assert.Equal(expected, sorted);
27+
}
28+
}
29+
30+
public class Item
31+
{
32+
public IEnumerable<string> Dependencies { get; private set; }
33+
public string DisplayName { get; }
34+
public Item(string name, params string[] dependencies)
35+
{
36+
DisplayName = name;
37+
Dependencies = dependencies;
38+
}
39+
}
40+
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
22
"$schema": "https://xunit.github.io/schema/current/xunit.runner.schema.json",
3-
"diagnosticMessages": true
3+
"diagnosticMessages": true,
4+
"methodDisplay": "method"
45
}

Xunit.Extensions.Ordering.sln

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 15
4-
VisualStudioVersion = 15.0.28307.329
3+
# Visual Studio Version 16
4+
VisualStudioVersion = 16.0.28729.10
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xunit.Extensions.Ordering", "Xunit.Extensions.Ordering\Xunit.Extensions.Ordering.csproj", "{BBEF35AA-4C38-4F21-99C6-DB4FEE7F3049}"
77
EndProject

0 commit comments

Comments
 (0)