public void FromMethodInfo_DoesNotAllow_AsyncVoid_Steps() { //arrange. var featureInstance = new FeatureWithAsyncVoidStep(); var methodInfoWithAsyncVoid = typeof(FeatureWithAsyncVoidStep).GetMethod(nameof(FeatureWithAsyncVoidStep.StepWithAsyncVoid)); //act / assert. Assert.Throws <InvalidOperationException>(() => MethodInfoWrapper.FromMethodInfo(methodInfoWithAsyncVoid, featureInstance)); }
public void GetMethodName_Returns_Wrapped_Method_Name() { //arrange. var target = new ClassWithMethod(); var sut = MethodInfoWrapper.FromMethodInfo(target.GetType().GetMethod(nameof(ClassWithMethod.MethodToCall)), target); //act. var name = sut.GetMethodName(); //assert. Assert.Equal(nameof(ClassWithMethod.MethodToCall), name); }
public async Task InvokeMethod_Invokes_Underlying_Async_Method() { //arrange. var target = new ClassWithMethod(); var sut = MethodInfoWrapper.FromMethodInfo(target.GetType().GetMethod(nameof(ClassWithMethod.MethodToCallAsync)), target); //act. await sut.InvokeMethodAsync(null); //assert. Assert.True(target.Called); }
public void IsSameAs_Identifies_Similar_Instances() { //arrange. var target = new ClassWithMethod(); var sut = MethodInfoWrapper.FromMethodInfo(target.GetType().GetMethod(nameof(ClassWithMethod.MethodToCall)), target); var other = MethodInfoWrapper.FromMethodInfo(target.GetType().GetMethod(nameof(ClassWithMethod.MethodToCall)), target); //act. var same = sut.IsSameAs(other) && other.IsSameAs(sut); //assert. Assert.True(same); }