Exemple #1
0
 public void ConstructWithParametersTest()
 {
     this.testObject = new MemberBuildResult();
 }
Exemple #2
0
 public void TearDown()
 {
     this.testObject = null;
 }
Exemple #3
0
        public void BuildWithAssignmentsNoMatchingParameters()
        {
            var method          = new CodeMemberMethod();
            var assCol1         = new AssignmentInfoCollection();
            var assCol2         = new AssignmentInfoCollection();
            var assignments     = new[] { assCol1, assCol2 };
            var memberField     = new CodeMemberField(typeof(int), "myField");
            var assignStatement = new CodeAssignStatement();
            var ctorAssignment  = new ConstructorAssignment("theParameter", assignStatement, memberField, typeof(string));

            assignments[0].AddAssignment(ctorAssignment);
            var helpctors = typeof(ConstructorBuilderHelpType).GetConstructors();

            assignments[0].UsedConstructor = helpctors[0];
            assignments[1].UsedConstructor = helpctors[0];

            var tobuilder = this.mocks.StrictMock <ITestObjectComposer>();

            Expect.Call(tobuilder.Assignments).Return(assignments);

            var stcontext = this.mocks.StrictMock <ISetupAndTearDownCreationContext>();

            Expect.Call(stcontext.TestObjectCreator).Return(tobuilder);

            Expect.Call(this.context.SetUpTearDownContext).Return(stcontext);//.Repeat.Any();
            Expect.Call(this.context.TestObjectType).Return(typeof(int)).Repeat.AtLeastOnce();
            var ctdecl = new CodeTypeDeclaration("TheTestClass");

            Expect.Call(this.context.TestClassDeclaration).Return(ctdecl).Repeat.AtLeastOnce();
            var buildResult = new MemberBuildResult();

            Expect.Call(this.context.BuildResult).Return(buildResult).Repeat.AtLeastOnce();

            Expect.Call(delegate { tobuilder.AssignExtra(ctdecl, method, null, assCol1); })
            //.Constraints(Is.Equal(ctdecl), Is.Equal(method), Is.Anything(), Is.Equal(assCol1)
            .Constraints(Is.Equal(ctdecl), Is.Anything(), Is.Anything(), Is.Equal(assCol1))
            .Do((Action <CodeTypeDeclaration, CodeMemberMethod, CodeObjectCreateExpression, AssignmentInfoCollection>)
                delegate(CodeTypeDeclaration testClassDeclaration,
                         CodeMemberMethod testMethod,
                         CodeObjectCreateExpression testObjectConstructor,
                         AssignmentInfoCollection ctorAssignments)
            {
                var a = testClassDeclaration;
                var b = testMethod;
                Assert.IsInstanceOfType <CustomConstructorCodeMemberMethod>(testMethod);
                Assert.AreEqual("ConstructWithParametersTheIntParameterTest", testMethod.Name);
                var c = testObjectConstructor;
                Assert.IsEmpty(testObjectConstructor.Parameters);
                Assert.AreEqual("Int32", testObjectConstructor.CreateType.BaseType);
                var d = ctorAssignment;

                var e = ctorAssignment;
            });
            Expect.Call(delegate { tobuilder.AssignExtra(ctdecl, method, null, assCol1); })
            //.Constraints(Is.Equal(ctdecl), Is.Equal(method), Is.Anything(), Is.Equal(assCol1)
            .Constraints(Is.Equal(ctdecl), Is.Anything(), Is.Anything(), Is.Equal(assCol2)
                         );
            mocks.ReplayAll();
            var expected = true;
            var actual   = testObject.Build(this.context);

            Assert.AreEqual(expected, actual);

            // there should be two methods (constructor testers) added.
            Assert.Count(2, buildResult.ClassMethodsToAdd);
            var bresList = buildResult.ClassMethodsToAdd.ToList();

            Assert.IsInstanceOfType <CustomConstructorCodeMemberMethod>(bresList[0]);
            Assert.IsInstanceOfType <CustomConstructorCodeMemberMethod>(bresList[1]);

            mocks.VerifyAll();
        }
Exemple #4
0
 public void SetUp()
 {
     this.testObject = new MemberBuildResult();
 }
        public void BuildWithAssignmentsNoMatchingParameters()
        {
            var method = new CodeMemberMethod();
            var assCol1 = new AssignmentInfoCollection();
            var assCol2 = new AssignmentInfoCollection();
            var assignments = new[] { assCol1, assCol2 };
            var memberField = new CodeMemberField(typeof(int), "myField");
            var assignStatement = new CodeAssignStatement();
            var ctorAssignment = new ConstructorAssignment("theParameter", assignStatement, memberField, typeof(string));
            assignments[0].AddAssignment(ctorAssignment);
            var helpctors = typeof(ConstructorBuilderHelpType).GetConstructors();
            assignments[0].UsedConstructor = helpctors[0];
            assignments[1].UsedConstructor = helpctors[0];

            var tobuilder = this.mocks.StrictMock<ITestObjectComposer>();
            Expect.Call(tobuilder.Assignments).Return(assignments);

            var stcontext = this.mocks.StrictMock<ISetupAndTearDownCreationContext>();
            Expect.Call(stcontext.TestObjectCreator).Return(tobuilder);

            Expect.Call(this.context.SetUpTearDownContext).Return(stcontext);//.Repeat.Any();
            Expect.Call(this.context.TestObjectType).Return(typeof(int)).Repeat.AtLeastOnce();
            var ctdecl = new CodeTypeDeclaration("TheTestClass");
            Expect.Call(this.context.TestClassDeclaration).Return(ctdecl).Repeat.AtLeastOnce();
            var buildResult = new MemberBuildResult();
            Expect.Call(this.context.BuildResult).Return(buildResult).Repeat.AtLeastOnce();

            Expect.Call(delegate { tobuilder.AssignExtra(ctdecl, method, null, assCol1); })
                //.Constraints(Is.Equal(ctdecl), Is.Equal(method), Is.Anything(), Is.Equal(assCol1)
                .Constraints(Is.Equal(ctdecl), Is.Anything(), Is.Anything(), Is.Equal(assCol1))
                .Do((Action<CodeTypeDeclaration,CodeMemberMethod,CodeObjectCreateExpression ,AssignmentInfoCollection>)
                delegate(CodeTypeDeclaration testClassDeclaration,
            CodeMemberMethod testMethod,
            CodeObjectCreateExpression testObjectConstructor,
            AssignmentInfoCollection ctorAssignments)
            {
                var a = testClassDeclaration;
                var b = testMethod;
                Assert.IsInstanceOfType<CustomConstructorCodeMemberMethod>(testMethod);
                Assert.AreEqual("ConstructWithParametersTheIntParameterTest", testMethod.Name);
                var c = testObjectConstructor;
                Assert.IsEmpty(testObjectConstructor.Parameters);
                Assert.AreEqual("Int32", testObjectConstructor.CreateType.BaseType);
                var d = ctorAssignment;

                var e = ctorAssignment;
            });
            Expect.Call(delegate { tobuilder.AssignExtra(ctdecl, method, null, assCol1); })
                //.Constraints(Is.Equal(ctdecl), Is.Equal(method), Is.Anything(), Is.Equal(assCol1)
                .Constraints(Is.Equal(ctdecl), Is.Anything(), Is.Anything(), Is.Equal(assCol2)
                );
            mocks.ReplayAll();
            var expected = true;
            var actual = testObject.Build(this.context);
            Assert.AreEqual(expected, actual);

            // there should be two methods (constructor testers) added.
            Assert.Count(2, buildResult.ClassMethodsToAdd);
            var bresList = buildResult.ClassMethodsToAdd.ToList();
            Assert.IsInstanceOfType<CustomConstructorCodeMemberMethod>(bresList[0]);
            Assert.IsInstanceOfType<CustomConstructorCodeMemberMethod>(bresList[1]);

            mocks.VerifyAll();
        }