Skip to content

Commit

Permalink
Refactor enumerables unit testing
Browse files Browse the repository at this point in the history
  • Loading branch information
aalmada committed Mar 24, 2021
1 parent 7c97136 commit 83a965a
Show file tree
Hide file tree
Showing 75 changed files with 1,762 additions and 1,228 deletions.
Original file line number Diff line number Diff line change
@@ -1,31 +1,28 @@
using System.Linq;
using NetFabric.Assertive;
using Xunit;
using System.Linq;
using System.Collections.Generic;

namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable.Enumerable
{
public partial class EnumerableTests
public partial class Tests
{
[Theory]
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
public void AsValueEnumerable1_With_ValidData_Must_Succeed(int[] source)
[Fact]
public void AsValueEnumerable1_Enumerator_With_ValidData_Must_Succeed()
{
// Arrange
var wrapped = Wrap
.AsEnumerable(source);
.AsEnumerable(System.Array.Empty<int>());

// Act
var result = wrapped
.AsValueEnumerable();
.AsValueEnumerable<int>();

// Assert
_ = result.Must()
.BeEnumerableOf<int>()
.BeEqualTo(source);
.BeOfType<EnumerableExtensions.ValueEnumerable<int>>();
}

[Theory]
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
Expand All @@ -37,15 +34,27 @@ public void AsValueEnumerable1_Sum_With_ValidData_Must_Succeed(int[] source)
.AsEnumerable(source);
var expected = source
.Sum();

// Act
var result = wrapped
.AsValueEnumerable()
.AsValueEnumerable<int>()
.Sum();

// Assert
_ = result.Must()
.BeEqualTo(expected);
}
}
}

public class ValueEnumerableTests1
: ValueEnumerableTestsBase<
EnumerableExtensions.ValueEnumerable<int>,
ValueEnumerableExtensions.SkipEnumerable<EnumerableExtensions.ValueEnumerable<int>, ValueEnumerator<int>, int>,
ValueEnumerableExtensions.TakeEnumerable<EnumerableExtensions.ValueEnumerable<int>, ValueEnumerator<int>, int>>
{
public ValueEnumerableTests1()
: base(array => Wrap.AsEnumerable(array).AsValueEnumerable<int>())
{}
}

}
Original file line number Diff line number Diff line change
@@ -1,53 +1,27 @@
using System.Linq;
using NetFabric.Assertive;
using System.Linq;
using Xunit;

namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable.ReadOnlyCollection
{
public partial class ReadOnlyCollectionTests
public partial class Tests
{
[Theory]
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
public void AsValueEnumerable1_With_ValidData_Must_Succeed(int[] source)
{
// Arrange
var wrapped = Wrap
.AsReadOnlyCollection(source);

// Act
var result = wrapped
.AsValueEnumerable();

// Assert
_ = result.Must()
.BeEnumerableOf<int>()
.BeEqualTo(source);
}

[Theory]
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
public void AsValueEnumerable1_Count_With_ValidData_Must_Succeed(int[] source)
[Fact]
public void AsValueEnumerable1_Enumerator_With_ValidData_Must_Succeed()
{
// Arrange
var wrapped = Wrap
.AsReadOnlyCollection(source);
var expected = source
.Count();
.AsReadOnlyCollection(System.Array.Empty<int>());

// Act
var result = wrapped
.AsValueEnumerable()
.Count();
.AsValueEnumerable<int>();

// Assert
_ = result.Must()
.BeEqualTo(expected);
.BeOfType<ReadOnlyCollectionExtensions.ValueEnumerable<int>>();
}

[Theory]
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
Expand All @@ -59,15 +33,27 @@ public void AsValueEnumerable1_Sum_With_ValidData_Must_Succeed(int[] source)
.AsReadOnlyCollection(source);
var expected = source
.Sum();

// Act
var result = wrapped
.AsValueEnumerable()
.AsValueEnumerable<int>()
.Sum();

// Assert
_ = result.Must()
.BeEqualTo(expected);
}
}

public class ValueEnumerableTests1
: ValueEnumerableTestsBase<
ReadOnlyCollectionExtensions.ValueEnumerable<int>,
ValueReadOnlyCollectionExtensions.SkipTakeEnumerable<ReadOnlyCollectionExtensions.ValueEnumerable<int>, ValueEnumerator<int>, int>,
ValueReadOnlyCollectionExtensions.SkipTakeEnumerable<ReadOnlyCollectionExtensions.ValueEnumerable<int>, ValueEnumerator<int>, int>>
{
public ValueEnumerableTests1()
: base(array => Wrap.AsReadOnlyCollection(array).AsValueEnumerable<int>())
{
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,23 @@
using NetFabric.Assertive;
using Xunit;

namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable.ValueEnumerable
{
public partial class ValueEnumerableTests
public partial class Tests
{
[Theory]
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
public void AsValueEnumerable1_With_ValidData_Must_Succeed(int[] source)
public void AsValueEnumerable2_With_ValidData_Must_Succeed(int[] source)
{
// Arrange
var wrapped = Wrap
.AsValueEnumerable(source);

// Act
var result = wrapped
.AsValueEnumerable();
.AsValueEnumerable<Wrap.Enumerator<int>, int>();

// Assert
_ = result.Must()
Expand All @@ -30,7 +30,7 @@ public void AsValueEnumerable1_With_ValidData_Must_Succeed(int[] source)
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
public void AsValueEnumerable1_Sum_With_ValidData_Must_Succeed(int[] source)
public void AsValueEnumerable2_Sum_With_ValidData_Must_Succeed(int[] source)
{
// Arrange
var wrapped = Wrap
Expand All @@ -39,13 +39,26 @@ public void AsValueEnumerable1_Sum_With_ValidData_Must_Succeed(int[] source)
.Sum();

// Act
// ReSharper disable once HeapView.BoxingAllocation
var result = wrapped
.AsValueEnumerable()
.AsValueEnumerable<Wrap.Enumerator<int>, int>()
.Sum();

// Assert
_ = result.Must()
.BeEqualTo(expected);
}
}

public class ValueEnumerableTests2
: ValueEnumerableTestsBase<
ValueEnumerableExtensions.ValueEnumerable<Wrap.Enumerator<int>, int>,
ValueEnumerableExtensions.SkipEnumerable<IValueEnumerable<int, Wrap.Enumerator<int>>, Wrap.Enumerator<int>, int>,
ValueEnumerableExtensions.TakeEnumerable<IValueEnumerable<int, Wrap.Enumerator<int>>, Wrap.Enumerator<int>, int>>
{
public ValueEnumerableTests2()
// ReSharper disable once HeapView.BoxingAllocation
: base(array => Wrap.AsValueEnumerable(array).AsValueEnumerable<Wrap.Enumerator<int>, int>())
{}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,24 @@
using NetFabric.Assertive;
using Xunit;

namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable
namespace NetFabric.Hyperlinq.UnitTests.Conversion.AsValueEnumerable.ValueReadOnlyCollection
{
public partial class ValueReadOnlyCollectionTests
public partial class Tests
{
[Theory]
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
public void AsValueReadOnlyCollection1_With_ValidData_Must_Succeed(int[] source)
public void AsValueReadOnlyCollection2_With_ValidData_Must_Succeed(int[] source)
{
// Arrange
var wrapped = Wrap
.AsValueReadOnlyCollection(source);

// Act
// ReSharper disable once HeapView.BoxingAllocation
var result = wrapped
.AsValueEnumerable();
.AsValueEnumerable<Wrap.Enumerator<int>, int>();

// Assert
_ = result.Must()
Expand All @@ -30,29 +31,7 @@ public void AsValueReadOnlyCollection1_With_ValidData_Must_Succeed(int[] source)
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
public void AsValueReadOnlyCollection1_Count_With_ValidData_Must_Succeed(int[] source)
{
// Arrange
var wrapped = Wrap
.AsValueReadOnlyCollection(source);
var expected = source
.Count();

// Act
var result = wrapped
.AsValueEnumerable()
.Count();

// Assert
_ = result.Must()
.BeEqualTo(expected);
}

[Theory]
[MemberData(nameof(TestData.Empty), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Single), MemberType = typeof(TestData))]
[MemberData(nameof(TestData.Multiple), MemberType = typeof(TestData))]
public void AsValueReadOnlyCollection1_Sum_With_ValidData_Must_Succeed(int[] source)
public void AsValueReadOnlyCollection2_Sum_With_ValidData_Must_Succeed(int[] source)
{
// Arrange
var wrapped = Wrap
Expand All @@ -61,13 +40,26 @@ public void AsValueReadOnlyCollection1_Sum_With_ValidData_Must_Succeed(int[] sou
.Sum();

// Act
// ReSharper disable once HeapView.BoxingAllocation
var result = wrapped
.AsValueEnumerable()
.AsValueEnumerable<Wrap.Enumerator<int>, int>()
.Sum();

// Assert
_ = result.Must()
.BeEqualTo(expected);
}
}

public class ValueReadOnlyCollectionTests2
: ValueEnumerableTestsBase<
ValueReadOnlyCollectionExtensions.ValueEnumerable<Wrap.Enumerator<int>, int>,
ValueReadOnlyCollectionExtensions.SkipTakeEnumerable<IValueReadOnlyCollection<int, Wrap.Enumerator<int>>, Wrap.Enumerator<int>, int>,
ValueReadOnlyCollectionExtensions.SkipTakeEnumerable<IValueReadOnlyCollection<int, Wrap.Enumerator<int>>, Wrap.Enumerator<int>, int>>
{
public ValueReadOnlyCollectionTests2()
// ReSharper disable once HeapView.BoxingAllocation
: base(array => Wrap.AsValueReadOnlyCollection(array).AsValueEnumerable<Wrap.Enumerator<int>, int>())
{}
}
}
Loading

0 comments on commit 83a965a

Please sign in to comment.