public void SelectSingleMethod() { var methods = new[] { CreateMethodStub("Method1", MethodAttributes.Assembly), CreateMethodStub("This method is filtered because of its name", MethodAttributes.Family), CreateMethodStub("Method1", MethodAttributes.Public) }; var bindingFlags = (BindingFlags)1; var typesOrNull = new[] { typeof(int), typeof(string) }; var modifiersOrNull = new[] { new ParameterModifier(2) }; _bindingFlagsEvaluatorMock.Expect(mock => mock.HasRightAttributes(methods[0].Attributes, bindingFlags)).Return(false); _bindingFlagsEvaluatorMock.Expect(mock => mock.HasRightAttributes(methods[2].Attributes, bindingFlags)).Return(true); var binderMock = MockRepository.GenerateStrictMock <Binder>(); var fakeResult = ReflectionObjectMother.GetSomeMethod(); binderMock .Expect(mock => mock.SelectMethod(bindingFlags, new MethodBase[] { methods[2] }, typesOrNull, modifiersOrNull)) .Return(fakeResult); var result = _selector.SelectSingleMethod(methods, binderMock, bindingFlags, "Method1", _someDeclaringType, typesOrNull, modifiersOrNull); _bindingFlagsEvaluatorMock.VerifyAllExpectations(); binderMock.VerifyAllExpectations(); Assert.That(result, Is.SameAs(fakeResult)); }
public void SelectSingleMethod() { var methods = new[] { CreateMethodStub("Method1", MethodAttributes.Assembly), CreateMethodStub("This method is filtered because of its name", MethodAttributes.Family), CreateMethodStub("Method1", MethodAttributes.Public) }; var bindingFlags = (BindingFlags)1; var typesOrNull = new[] { typeof(int), typeof(string) }; var modifiersOrNull = new[] { new ParameterModifier(2) }; _bindingFlagsEvaluatorMock.Setup(mock => mock.HasRightAttributes(methods[0].Attributes, bindingFlags)).Returns(false).Verifiable(); _bindingFlagsEvaluatorMock.Setup(mock => mock.HasRightAttributes(methods[2].Attributes, bindingFlags)).Returns(true).Verifiable(); var binderMock = new Mock <Binder> (MockBehavior.Strict); var fakeResult = ReflectionObjectMother.GetSomeMethod(); binderMock .Setup(mock => mock.SelectMethod(bindingFlags, It.Is <MethodBase[]> (param => param.SequenceEqual(new MethodBase[] { methods[2] })), typesOrNull, modifiersOrNull)) .Returns(fakeResult) .Verifiable(); var result = _selector.SelectSingleMethod(methods, binderMock.Object, bindingFlags, "Method1", _someDeclaringType, typesOrNull, modifiersOrNull); _bindingFlagsEvaluatorMock.Verify(); binderMock.Verify(); Assert.That(result, Is.SameAs(fakeResult)); }