Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }