private void DefineParameters(IMethodBaseBuilder methodBaseBuilder, IMutableMethodBase mutableMethodBase) { foreach (var parameter in mutableMethodBase.MutableParameters) { DefineParameter(methodBaseBuilder, parameter); } }
private void CheckBodyBuildAction(Action testedAction, IMethodBaseBuilder methodBuilderMock, IMutableMethodBase mutableMethodBase) { methodBuilderMock.BackToRecord(); _expressionPreparerMock.Expect(mock => mock.PrepareBody(_context, mutableMethodBase.Body)).Return(_fakeBody); methodBuilderMock .Expect(mock => mock.SetBody(Arg <LambdaExpression> .Is.Anything, Arg.Is(_ilGeneratorFactoryStub), Arg.Is(_context.DebugInfoGenerator))) .WhenCalled( mi => { var lambdaExpression = (LambdaExpression)mi.Arguments[0]; Assert.That(lambdaExpression.Body, Is.SameAs(_fakeBody)); Assert.That(lambdaExpression.Parameters, Is.EqualTo(mutableMethodBase.ParameterExpressions)); }); methodBuilderMock.Replay(); testedAction(); _emittableOperandProviderMock.VerifyAllExpectations(); methodBuilderMock.VerifyAllExpectations(); }
private void CheckBodyBuildAction <T> (Action testedAction, Mock <T> methodBuilderMock, IMutableMethodBase mutableMethodBase) where T : class, IMethodBaseBuilder { _expressionPreparerMock.Setup(mock => mock.PrepareBody(_context, mutableMethodBase.Body)).Returns(_fakeBody).Verifiable(); methodBuilderMock .Setup( mock => mock.SetBody( It.IsAny <LambdaExpression>(), _ilGeneratorFactoryStub.Object, _context.DebugInfoGenerator)) .Callback( (LambdaExpression lambdaExpression, IILGeneratorFactory ilGeneratorFactory, DebugInfoGenerator debugInfoGenerator) => { Assert.That(lambdaExpression.Body, Is.SameAs(_fakeBody)); Assert.That(lambdaExpression.Parameters, Is.EqualTo(mutableMethodBase.ParameterExpressions)); }) .Verifiable(); testedAction(); _emittableOperandProviderMock.Verify(); methodBuilderMock.Verify(); }