Skip to content

Commit f9691a8

Browse files
authored
Merge pull request #27 from atc-net/fix/memberdata-removes-duplicate-values
MemberAutoNSubstituteDataAttribute removes parameters with same values
2 parents edb3c01 + 36f7778 commit f9691a8

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

src/Atc.Test/MemberAutoNSubstituteDataAttribute.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ protected override object[] ConvertDataItem(MethodInfo testMethod, object item)
3333
var fixture = FixtureFactory.Create();
3434

3535
return values
36-
.Union(testMethod
36+
.Concat(testMethod
3737
.GetParameters()
3838
.Skip(values.Length)
3939
.Select(p => GetSpecimen(fixture, p)))

test/Atc.Test.Tests/MemberAutoNSubstituteDataAttributeTests.cs

Lines changed: 28 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@ namespace Atc.Test.Tests;
22

33
public class MemberAutoNSubstituteDataAttributeTests
44
{
5-
public static readonly IEnumerable<object[]> TestData = new[]
5+
public static readonly IEnumerable<object[]> MemberData = new[]
66
{
77
new object[] { SampleEnum.One },
88
new object[] { SampleEnum.Two },
99
new object[] { SampleEnum.Three },
1010
};
1111

1212
[Theory]
13-
[MemberAutoNSubstituteData(nameof(TestData))]
14-
public void MemberAutoNSubstituteData_Should_Call_For_Each_Value(
13+
[MemberAutoNSubstituteData(nameof(MemberData))]
14+
public void MemberAutoNSubstituteData_Should_Call_For_MemberData(
1515
SampleEnum value,
1616
[Frozen] ISampleInterface interfaceType,
1717
SampleClass concreteType,
@@ -25,4 +25,29 @@ public void MemberAutoNSubstituteData_Should_Call_For_Each_Value(
2525
dependantType.Should().NotBeNull();
2626
dependantType.Dependency.Should().Be(interfaceType);
2727
}
28+
29+
public static readonly IEnumerable<object[]> MemberDataMultipleValues = new[]
30+
{
31+
new object[] { SampleEnum.One, SampleEnum.Two },
32+
new object[] { SampleEnum.One, SampleEnum.One },
33+
};
34+
35+
[Theory]
36+
[MemberAutoNSubstituteData(nameof(MemberDataMultipleValues))]
37+
public void MemberAutoNSubstituteData_Should_Call_For_Each_MemderData_Values(
38+
SampleEnum firstValue,
39+
SampleEnum secondValue,
40+
[Frozen] ISampleInterface interfaceType,
41+
SampleClass concreteType,
42+
SampleDependantClass dependantType)
43+
{
44+
firstValue.Should().BeOneOf(SampleEnum.One, SampleEnum.Two, SampleEnum.Three);
45+
secondValue.Should().BeOneOf(SampleEnum.One, SampleEnum.Two, SampleEnum.Three);
46+
interfaceType.Should().NotBeNull();
47+
interfaceType.IsSubstitute().Should().BeTrue();
48+
concreteType.Should().NotBeNull();
49+
concreteType.IsSubstitute().Should().BeFalse();
50+
dependantType.Should().NotBeNull();
51+
dependantType.Dependency.Should().Be(interfaceType);
52+
}
2853
}

0 commit comments

Comments
 (0)