示例#1
0
        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()"));
        }
示例#2
0
        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.
        }
示例#3
0
        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");
        }
示例#4
0
        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");
        }
示例#5
0
        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)");
        }
示例#6
0
        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;
            }
        }
示例#7
0
        public void Visit(ExecuteMethodStep executeMethodStep)
        {
            this.assemblyBuilder.Build();

            this.stepBuilder.Add(executeMethodStep);
        }
示例#8
0
 public void Add(ExecuteMethodStep executeMethodStep)
 {
     steps.Add(executeMethodStep);
 }