public void ExecuteValueMethodWithReturnType() { var executor = GetExecutorForMethod(nameof(TestObject.ValueMethodWithReturnType)); var result = executor.Execute( _targetObject, new object[] { 10 }); var resultObject = Assert2.IsType <TestObject>(result); Assert2.False(executor.IsMethodAsync); Assert2.Equal("Hello", resultObject.value); }
public async Task ExecuteValueMethodWithReturnTypeAsync() { var executor = GetExecutorForMethod(nameof(TestObject.ValueMethodWithReturnTypeAsync)); var result = await executor.ExecuteAsync( _targetObject, new object[] { 10 }); var resultObject = Assert2.IsType <TestObject>(result); Assert2.True(executor.IsMethodAsync); Assert2.Equal("Hello", resultObject.value); }
public void ExecuteValueMethodUpdateValue() { var executor = GetExecutorForMethod(nameof(TestObject.ValueMethodUpdateValue)); var parameter = new TestObject(); var result = executor.Execute( _targetObject, new object[] { parameter }); var resultObject = Assert2.IsType <TestObject>(result); Assert2.False(executor.IsMethodAsync); Assert2.Equal("HelloWorld", resultObject.value); }
public async Task TargetMethodReturningCustomAwaitableOfValueType_CanInvokeViaExecuteAsync() { // Arrange var executor = GetExecutorForMethod(nameof(TestObject.CustomAwaitableOfValueTypeAsync)); // Act var result = await executor.ExecuteAsync(_targetObject, new object[] { 123, 456 }); // Assert Assert2.True(executor.IsMethodAsync); Assert2.Same(typeof(int), executor.AsyncResultType); Assert2.NotNull(result); Assert2.IsType <int>(result); Assert2.Equal(579, (int)result); }
public async Task TargetMethodReturningCustomAwaitableOfReferenceType_CanInvokeViaExecuteAsync() { // Arrange var executor = GetExecutorForMethod(nameof(TestObject.CustomAwaitableOfReferenceTypeAsync)); // Act var result = await executor.ExecuteAsync(_targetObject, new object[] { "Hello", 123 }); // Assert Assert2.True(executor.IsMethodAsync); Assert2.Same(typeof(TestObject), executor.AsyncResultType); Assert2.NotNull(result); Assert2.IsType <TestObject>(result); Assert2.Equal("Hello 123", ((TestObject)result).value); }