public void ConstructWithParametersTest() { this.testObject = new MemberBuildResult(); }
public void TearDown() { this.testObject = null; }
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(); }
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(); }