public void ShouldExecuteMethodsInOrder() { // Arrange var executeMethodStep1 = new ExecuteMethodStep(); executeMethodStep1.MethodName = "MethodA"; var executeMethodStep2 = new ExecuteMethodStep(); executeMethodStep2.MethodName = "MethodB"; var executeMethodStep3 = new ExecuteMethodStep(); executeMethodStep3.MethodName = "MethodC"; var collection = new TestStepCollection() { executeMethodStep2, executeMethodStep3, executeMethodStep1 }; collection.Accept(visitor); // Act var result = visitor.Build(); // Assert result.IndexOf("this.MethodA();") .ShouldBeGreaterThan(result.IndexOf("this.MethodB();")); result.IndexOf("public void MethodA()") .ShouldBeLessThan(result.IndexOf("public void MethodB()")); }
public void ShouldCreateUniqueMethodSignatures_WhenSameMethodAndParameters() { // Arrange var executeMethodStep1 = new ExecuteMethodStep(); var executeMethodStep2 = new ExecuteMethodStep(); executeMethodStep2.MethodName = "Method1"; executeMethodStep2.Parameters.Add(new MethodParameter("age", "32")); var executeMethodStep3 = new ExecuteMethodStep(); executeMethodStep3.MethodName = "Method1"; executeMethodStep3.Parameters.Add(new MethodParameter("age", "132")); var collection = new TestStepCollection() { executeMethodStep1, executeMethodStep2, executeMethodStep3 }; collection.Accept(visitor); // Act var result = visitor.Build(); // Assert result.IndexOf("public void Method1(string age)") .ShouldEqual(result.LastIndexOf("public void Method1(string age)")); // same index, no duplicates. }
public void ShouldExecuteAcceptOnAllChildren() { // Arrange var visitor = Mock.Of <ITestStepVisitor>(); var step1 = Mock.Of <TestStep>(); var step2 = Mock.Of <TestStep>(); steps.AddRange(new TestStep[] { step1, step2 }); // Act steps.Accept(visitor); // Assert Mock.Get(step1) .Verify(s => s.Accept(visitor)); Mock.Get(step2) .Verify(s => s.Accept(visitor)); }