Skip to content

Commit eb2f42f

Browse files
author
Jake Ginnivan
committed
Tollerate null references in Argument Expression
1 parent e09a23b commit eb2f42f

2 files changed

Lines changed: 16 additions & 1 deletion

File tree

TestStack.BDDfy.Tests/Scanner/FluentScanner/ExpressionExtensionsTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,14 @@ public void ComplexArgument2()
218218
AssertReturnedArguments(arguments, container.SubContainer);
219219
}
220220

221+
[Test]
222+
public void ComplexArgumentWhenContainerIsNull()
223+
{
224+
ContainerType nullContainer = null;
225+
var arguments = GetArguments(x => x.MethodWithInputs(nullContainer.SubContainer), new ClassUnderTest());
226+
AssertReturnedArguments(arguments, new object[] { null });
227+
}
228+
221229
[Test]
222230
public void ArrayInputArgumentsProvidedUsingInheritedProperty()
223231
{

TestStack.BDDfy/Scanners/StepScanners/Fluent/ExpressionExtensions.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -223,10 +223,17 @@ private static IEnumerable<object> ExtractPropertyValue<T>(MemberExpression expr
223223
if (memberExpression != null)
224224
{
225225
var extractArguments = ExtractArguments(memberExpression, value);
226-
return new[]
226+
try
227+
{
228+
return new[]
227229
{
228230
member.GetValue(extractArguments.Single(), null)
229231
};
232+
}
233+
catch (TargetException)
234+
{
235+
return new object[] {null};
236+
}
230237
}
231238
return new[]
232239
{

0 commit comments

Comments
 (0)