Skip to content

Commit 9df4e94

Browse files
committed
Fix issue with ClassAutoNSubstituteDataAttribute when using FrozenAtrribute
1 parent 42cbcc2 commit 9df4e94

File tree

2 files changed

+37
-3
lines changed

2 files changed

+37
-3
lines changed

src/Atc.Test/ClassAutoNSubstituteDataAttribute.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,12 @@ public override IEnumerable<object[]> GetData(MethodInfo testMethod)
3131
var fixture = FixtureFactory.Create();
3232
foreach (var frozenValue in frozenValues)
3333
{
34-
injectMethod?
35-
.MakeGenericMethod(frozenValue.ParameterType)
36-
.Invoke(null, [fixture, values[frozenValue.Index]]);
34+
if (values.Length > frozenValue.Index)
35+
{
36+
injectMethod?
37+
.MakeGenericMethod(frozenValue.ParameterType)
38+
.Invoke(null, [fixture, values[frozenValue.Index]]);
39+
}
3740
}
3841

3942
yield return values
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
namespace Atc.Test.Tests;
2+
3+
public class ClassAutoNSubstituteDataAttributeTests
4+
{
5+
public class TestData : TheoryData<SampleEnum>
6+
{
7+
public TestData()
8+
{
9+
AddRow(SampleEnum.One);
10+
AddRow(SampleEnum.Two);
11+
AddRow(SampleEnum.Three);
12+
}
13+
}
14+
15+
[Theory]
16+
[ClassAutoNSubstituteData(typeof(TestData))]
17+
public void MemberAutoNSubstituteData_Should_Call_For_MemberData(
18+
SampleEnum value,
19+
[Frozen] ISampleInterface interfaceType,
20+
SampleClass concreteType,
21+
SampleDependantClass dependantType)
22+
{
23+
value.Should().BeOneOf(SampleEnum.One, SampleEnum.Two, SampleEnum.Three);
24+
interfaceType.Should().NotBeNull();
25+
interfaceType.IsSubstitute().Should().BeTrue();
26+
concreteType.Should().NotBeNull();
27+
concreteType.IsSubstitute().Should().BeFalse();
28+
dependantType.Should().NotBeNull();
29+
dependantType.Dependency.Should().Be(interfaceType);
30+
}
31+
}

0 commit comments

Comments
 (0)