public void WhenInvokeMethodContextHasResultSetAndThenExceptionItShouldHaveExceptionAndNoResult() { // Given var method = typeof(InvokeMethodTests).GetMethod(nameof(WhenInvokeMethodContextIsCreatedItShouldNotHaveResult)) !; var parameters = new object[0]; var context = new InvokeMethodContext( method, parameters, this); var exception = new Exception(); var result = new object(); // When context.SetResult(result); context.SetException(exception); // Then context.HasResult.Should().BeFalse(); context.Result.Should().BeNull(); context.HasException.Should().BeTrue(); context.Exception.Should().BeSameAs(exception); }
public static void CallSyncFunc(InvokeMethodContext context) { try { var result = context.Method.Invoke( obj: context.Instance, parameters: context.Parameters); context.SetResult(result); } catch (TargetInvocationException exception) { context.SetException(exception.InnerException ?? exception); } catch (Exception exception) { context.SetException(exception); } }
public void WhenInvokeMethodContextHasResultTypedReturnShouldNotFail() { // Given var method = typeof(InvokeMethodTests).GetMethod(nameof(WhenInvokeMethodContextIsCreatedItShouldNotHaveResult)) !; var parameters = new object[0]; var context = new InvokeMethodContext( method, parameters, this); var result = 42; // When context.SetResult(result); // Then context.Return <int>().Should().Be(42); }