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. }