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 ShouldFormatMethodName() { // Arrange var executeMethodStep = new ExecuteMethodStep(); executeMethodStep.MethodName = "Method With Spaces"; executeMethodStep.Accept(visitor); // Act var result = visitor.Build(); // Assert result.ShouldNotContain("Method With Spaces"); result.ShouldContain("Method_With_Spaces"); }
public void ShouldFormatParameterName() { // Arrange var executeMethodStep = new ExecuteMethodStep(); executeMethodStep.MethodName = "Method1"; executeMethodStep.Parameters.Add(new MethodParameter("parameter with spaces", "value")); executeMethodStep.Accept(visitor); // Act var result = visitor.Build(); // Assert result.ShouldNotContain("parameter with spaces"); result.ShouldContain("parameter_with_spaces"); }
public void ShouldCreateMethodWithMultipleParameters() { // Arrange var executeMethodStep = new ExecuteMethodStep(); executeMethodStep.MethodName = "Method1"; executeMethodStep.Parameters.Add(new MethodParameter("age", "32")); executeMethodStep.Parameters.Add(new MethodParameter("name", "rodrigo")); executeMethodStep.Parameters.Add(new MethodParameter("age", "33")); executeMethodStep.Accept(visitor); // Act var result = visitor.Build(); // Assert result.ShouldContain(@"this.Method1(""32"", ""rodrigo"", ""33"");"); result.ShouldContain("public void Method1(string age, string name, string age)"); }
public void Visit(ExecuteMethodStep executeMethodStep) { try { executeMethodStep.Status = ExecutionStatus.InProgress; var method = new TestEngine.Method(executeMethodStep.GetFormattedMethodName()); foreach (var p in executeMethodStep.Parameters) { method.Parameters[p.Name] = p.Value; } testEngine.MethodExecution.Execute(method); executeMethodStep.Status = ExecutionStatus.Passed; executeMethodStep.Error = null; } catch (Exception ex) { executeMethodStep.Status = ExecutionStatus.Failed; executeMethodStep.Error = ex.Message; hasError = true; } }
public void Visit(ExecuteMethodStep executeMethodStep) { this.assemblyBuilder.Build(); this.stepBuilder.Add(executeMethodStep); }
public void Add(ExecuteMethodStep executeMethodStep) { steps.Add(executeMethodStep); }