public void EmitCall_MethodInfo_BaseConstructorMethodInfo_WithOptionalParameters()
        {
            var methodInfo = new ConstructorAsMethodInfoAdapter(ReflectionObjectMother.GetSomeDefaultConstructor());

            Assert.That(
                () => _decorator.EmitCall(OpCodes.Call, methodInfo, new[] { ReflectionObjectMother.GetSomeType() }),
                Throws.ArgumentException
                .With.ArgumentExceptionMessageEqualTo("Constructor calls cannot have optional parameters.", "optionalParameterTypes"));
        }
Example #2
0
        public void EmitCall_MethodInfo_BaseConstructorMethodInfo_EmptyOptionalParameters()
        {
            var constructor          = ReflectionObjectMother.GetSomeConstructor();
            var fakeEmittableOperand = MockRepository.GenerateStub <ConstructorInfo> ();

            _emittableOperandProviderStub.Stub(stub => stub.GetEmittableConstructor(constructor)).Return(fakeEmittableOperand);

            _innerILGeneratorMock.Expect(mock => mock.Emit(OpCodes.Call, fakeEmittableOperand));

            var constructorAsMethodInfoAdapter = new ConstructorAsMethodInfoAdapter(constructor);

            _decorator.EmitCall(OpCodes.Call, constructorAsMethodInfoAdapter, Type.EmptyTypes);

            _innerILGeneratorMock.VerifyAllExpectations();
        }
        public void EmitCall_MethodInfo_BaseConstructorMethodInfo_NullOptionalParameters()
        {
            var constructor          = ReflectionObjectMother.GetSomeConstructor();
            var fakeEmittableOperand = new Mock <ConstructorInfo>().Object;

            _emittableOperandProviderStub.Setup(stub => stub.GetEmittableConstructor(constructor)).Returns(fakeEmittableOperand);

            _innerILGeneratorMock.Setup(mock => mock.Emit(OpCodes.Call, fakeEmittableOperand)).Verifiable();

            var constructorAsMethodInfoAdapter = new ConstructorAsMethodInfoAdapter(constructor);

            _decorator.EmitCall(OpCodes.Call, constructorAsMethodInfoAdapter, null);

            _innerILGeneratorMock.Verify();
        }
Example #4
0
        public void EmitCall_MethodInfo_BaseConstructorMethodInfo_WithOptionalParameters()
        {
            var methodInfo = new ConstructorAsMethodInfoAdapter(ReflectionObjectMother.GetSomeDefaultConstructor());

            _decorator.EmitCall(OpCodes.Call, methodInfo, new[] { ReflectionObjectMother.GetSomeType() });
        }
        public void SetUp()
        {
            var adaptedConstructor = ReflectionObjectMother.GetSomeConstructor();

            _adapter = new ConstructorAsMethodInfoAdapter(adaptedConstructor);
        }