Skip to content

Commit 83a965a

Browse files
committed
Refactor enumerables unit testing
1 parent 7c97136 commit 83a965a

File tree

75 files changed

+1762
-1228
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+1762
-1228
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,28 @@
1-
using System.Linq;
21
using NetFabric.Assertive;
32
using Xunit;
3+
using System.Linq;
4+
using System.Collections.Generic;
45

5-
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable
6+
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable.Enumerable
67
{
7-
public partial class EnumerableTests
8+
public partial class Tests
89
{
9-
[Theory]
10-
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
11-
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
12-
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
13-
public void AsValueEnumerable1_With_ValidData_Must_Succeed(int[] source)
10+
[Fact]
11+
public void AsValueEnumerable1_Enumerator_With_ValidData_Must_Succeed()
1412
{
1513
// Arrange
1614
var wrapped = Wrap
17-
.AsEnumerable(source);
15+
.AsEnumerable(System.Array.Empty<int>());
1816

1917
// Act
2018
var result = wrapped
21-
.AsValueEnumerable();
19+
.AsValueEnumerable<int>();
2220

2321
// Assert
2422
_ = result.Must()
25-
.BeEnumerableOf<int>()
26-
.BeEqualTo(source);
23+
.BeOfType<EnumerableExtensions.ValueEnumerable<int>>();
2724
}
28-
25+
2926
[Theory]
3027
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
3128
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
@@ -37,15 +34,27 @@ public void AsValueEnumerable1_Sum_With_ValidData_Must_Succeed(int[] source)
3734
.AsEnumerable(source);
3835
var expected = source
3936
.Sum();
40-
37+
4138
// Act
4239
var result = wrapped
43-
.AsValueEnumerable()
40+
.AsValueEnumerable<int>()
4441
.Sum();
45-
42+
4643
// Assert
4744
_ = result.Must()
4845
.BeEqualTo(expected);
49-
}
46+
}
5047
}
48+
49+
public class ValueEnumerableTests1
50+
: ValueEnumerableTestsBase<
51+
EnumerableExtensions.ValueEnumerable<int>,
52+
ValueEnumerableExtensions.SkipEnumerable<EnumerableExtensions.ValueEnumerable<int>, ValueEnumerator<int>, int>,
53+
ValueEnumerableExtensions.TakeEnumerable<EnumerableExtensions.ValueEnumerable<int>, ValueEnumerator<int>, int>>
54+
{
55+
public ValueEnumerableTests1()
56+
: base(array => Wrap.AsEnumerable(array).AsValueEnumerable<int>())
57+
{}
58+
}
59+
5160
}
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,27 @@
1-
using System.Linq;
21
using NetFabric.Assertive;
2+
using System.Linq;
33
using Xunit;
44

5-
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable
5+
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable.ReadOnlyCollection
66
{
7-
public partial class ReadOnlyCollectionTests
7+
public partial class Tests
88
{
9-
[Theory]
10-
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
11-
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
12-
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
13-
public void AsValueEnumerable1_With_ValidData_Must_Succeed(int[] source)
14-
{
15-
// Arrange
16-
var wrapped = Wrap
17-
.AsReadOnlyCollection(source);
18-
19-
// Act
20-
var result = wrapped
21-
.AsValueEnumerable();
22-
23-
// Assert
24-
_ = result.Must()
25-
.BeEnumerableOf<int>()
26-
.BeEqualTo(source);
27-
}
28-
29-
[Theory]
30-
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
31-
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
32-
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
33-
public void AsValueEnumerable1_Count_With_ValidData_Must_Succeed(int[] source)
9+
[Fact]
10+
public void AsValueEnumerable1_Enumerator_With_ValidData_Must_Succeed()
3411
{
3512
// Arrange
3613
var wrapped = Wrap
37-
.AsReadOnlyCollection(source);
38-
var expected = source
39-
.Count();
14+
.AsReadOnlyCollection(System.Array.Empty<int>());
4015

4116
// Act
4217
var result = wrapped
43-
.AsValueEnumerable()
44-
.Count();
18+
.AsValueEnumerable<int>();
4519

4620
// Assert
4721
_ = result.Must()
48-
.BeEqualTo(expected);
22+
.BeOfType<ReadOnlyCollectionExtensions.ValueEnumerable<int>>();
4923
}
50-
24+
5125
[Theory]
5226
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
5327
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
@@ -59,15 +33,27 @@ public void AsValueEnumerable1_Sum_With_ValidData_Must_Succeed(int[] source)
5933
.AsReadOnlyCollection(source);
6034
var expected = source
6135
.Sum();
62-
36+
6337
// Act
6438
var result = wrapped
65-
.AsValueEnumerable()
39+
.AsValueEnumerable<int>()
6640
.Sum();
67-
41+
6842
// Assert
6943
_ = result.Must()
7044
.BeEqualTo(expected);
45+
}
46+
}
47+
48+
public class ValueEnumerableTests1
49+
: ValueEnumerableTestsBase<
50+
ReadOnlyCollectionExtensions.ValueEnumerable<int>,
51+
ValueReadOnlyCollectionExtensions.SkipTakeEnumerable<ReadOnlyCollectionExtensions.ValueEnumerable<int>, ValueEnumerator<int>, int>,
52+
ValueReadOnlyCollectionExtensions.SkipTakeEnumerable<ReadOnlyCollectionExtensions.ValueEnumerable<int>, ValueEnumerator<int>, int>>
53+
{
54+
public ValueEnumerableTests1()
55+
: base(array => Wrap.AsReadOnlyCollection(array).AsValueEnumerable<int>())
56+
{
7157
}
7258
}
7359
}
+19-6
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,23 @@
22
using NetFabric.Assertive;
33
using Xunit;
44

5-
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable
5+
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable.ValueEnumerable
66
{
7-
public partial class ValueEnumerableTests
7+
public partial class Tests
88
{
99
[Theory]
1010
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
1111
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
1212
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
13-
public void AsValueEnumerable1_With_ValidData_Must_Succeed(int[] source)
13+
public void AsValueEnumerable2_With_ValidData_Must_Succeed(int[] source)
1414
{
1515
// Arrange
1616
var wrapped = Wrap
1717
.AsValueEnumerable(source);
1818

1919
// Act
2020
var result = wrapped
21-
.AsValueEnumerable();
21+
.AsValueEnumerable<Wrap.Enumerator<int>, int>();
2222

2323
// Assert
2424
_ = result.Must()
@@ -30,7 +30,7 @@ public void AsValueEnumerable1_With_ValidData_Must_Succeed(int[] source)
3030
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
3131
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
3232
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
33-
public void AsValueEnumerable1_Sum_With_ValidData_Must_Succeed(int[] source)
33+
public void AsValueEnumerable2_Sum_With_ValidData_Must_Succeed(int[] source)
3434
{
3535
// Arrange
3636
var wrapped = Wrap
@@ -39,13 +39,26 @@ public void AsValueEnumerable1_Sum_With_ValidData_Must_Succeed(int[] source)
3939
.Sum();
4040

4141
// Act
42+
// ReSharper disable once HeapView.BoxingAllocation
4243
var result = wrapped
43-
.AsValueEnumerable()
44+
.AsValueEnumerable<Wrap.Enumerator<int>, int>()
4445
.Sum();
4546

4647
// Assert
4748
_ = result.Must()
4849
.BeEqualTo(expected);
4950
}
5051
}
52+
53+
public class ValueEnumerableTests2
54+
: ValueEnumerableTestsBase<
55+
ValueEnumerableExtensions.ValueEnumerable<Wrap.Enumerator<int>, int>,
56+
ValueEnumerableExtensions.SkipEnumerable<IValueEnumerable<int, Wrap.Enumerator<int>>, Wrap.Enumerator<int>, int>,
57+
ValueEnumerableExtensions.TakeEnumerable<IValueEnumerable<int, Wrap.Enumerator<int>>, Wrap.Enumerator<int>, int>>
58+
{
59+
public ValueEnumerableTests2()
60+
// ReSharper disable once HeapView.BoxingAllocation
61+
: base(array => Wrap.AsValueEnumerable(array).AsValueEnumerable<Wrap.Enumerator<int>, int>())
62+
{}
63+
}
5164
}
+20-28
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,24 @@
22
using NetFabric.Assertive;
33
using Xunit;
44

5-
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable
5+
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable.ValueReadOnlyCollection
66
{
7-
public partial class ValueReadOnlyCollectionTests
7+
public partial class Tests
88
{
99
[Theory]
1010
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
1111
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
1212
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
13-
public void AsValueReadOnlyCollection1_With_ValidData_Must_Succeed(int[] source)
13+
public void AsValueReadOnlyCollection2_With_ValidData_Must_Succeed(int[] source)
1414
{
1515
// Arrange
1616
var wrapped = Wrap
1717
.AsValueReadOnlyCollection(source);
1818

1919
// Act
20+
// ReSharper disable once HeapView.BoxingAllocation
2021
var result = wrapped
21-
.AsValueEnumerable();
22+
.AsValueEnumerable<Wrap.Enumerator<int>, int>();
2223

2324
// Assert
2425
_ = result.Must()
@@ -30,29 +31,7 @@ public void AsValueReadOnlyCollection1_With_ValidData_Must_Succeed(int[] source)
3031
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
3132
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
3233
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
33-
public void AsValueReadOnlyCollection1_Count_With_ValidData_Must_Succeed(int[] source)
34-
{
35-
// Arrange
36-
var wrapped = Wrap
37-
.AsValueReadOnlyCollection(source);
38-
var expected = source
39-
.Count();
40-
41-
// Act
42-
var result = wrapped
43-
.AsValueEnumerable()
44-
.Count();
45-
46-
// Assert
47-
_ = result.Must()
48-
.BeEqualTo(expected);
49-
}
50-
51-
[Theory]
52-
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
53-
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
54-
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
55-
public void AsValueReadOnlyCollection1_Sum_With_ValidData_Must_Succeed(int[] source)
34+
public void AsValueReadOnlyCollection2_Sum_With_ValidData_Must_Succeed(int[] source)
5635
{
5736
// Arrange
5837
var wrapped = Wrap
@@ -61,13 +40,26 @@ public void AsValueReadOnlyCollection1_Sum_With_ValidData_Must_Succeed(int[] sou
6140
.Sum();
6241

6342
// Act
43+
// ReSharper disable once HeapView.BoxingAllocation
6444
var result = wrapped
65-
.AsValueEnumerable()
45+
.AsValueEnumerable<Wrap.Enumerator<int>, int>()
6646
.Sum();
6747

6848
// Assert
6949
_ = result.Must()
7050
.BeEqualTo(expected);
7151
}
7252
}
53+
54+
public class ValueReadOnlyCollectionTests2
55+
: ValueEnumerableTestsBase<
56+
ValueReadOnlyCollectionExtensions.ValueEnumerable<Wrap.Enumerator<int>, int>,
57+
ValueReadOnlyCollectionExtensions.SkipTakeEnumerable<IValueReadOnlyCollection<int, Wrap.Enumerator<int>>, Wrap.Enumerator<int>, int>,
58+
ValueReadOnlyCollectionExtensions.SkipTakeEnumerable<IValueReadOnlyCollection<int, Wrap.Enumerator<int>>, Wrap.Enumerator<int>, int>>
59+
{
60+
public ValueReadOnlyCollectionTests2()
61+
// ReSharper disable once HeapView.BoxingAllocation
62+
: base(array => Wrap.AsValueReadOnlyCollection(array).AsValueEnumerable<Wrap.Enumerator<int>, int>())
63+
{}
64+
}
7365
}

0 commit comments

Comments
 (0)