public void ValidateAddsErrorIfFlowIsEmpty() { // Arrange var x = new Flow(); var actions = new CalculatorActionDefinitionProvider().Get; // Act var errors = x.Validate(actions); // Assert Assert.IsNotNull(errors); Assert.AreEqual(1, errors.Count); Assert.IsTrue(errors[0].Message.Contains("Nothing to do")); }
public void ValidateAddsErrorIfNumberOfInputParametersIsLessThanExpected() { // Arrange var x = new Flow(); var step = new Step(null, "DoArithmetic"); var prm = new Parameter("int", step.Id, 0); step.AddParameter(prm); x.Add(step); var actions = new CalculatorActionDefinitionProvider().Get; // Act var errors = x.Validate(actions); // Assert Assert.IsNotNull(errors); Assert.AreEqual(1, errors.Count); Assert.IsTrue(errors[0].Message.Contains("Number of input parameters")); }
public void ValidateAddsErrorIfParameterTypeIsDifferent() { // Arrange var x = new Flow(); var step1 = new Step("1", "GetIntFromUI"); var step2 = new Step("2", "PrintInt", new List<Parameter> { new Parameter("string", step1.Id, 0) }); x.Add(step1); x.Add(step2); var actions = new CalculatorActionDefinitionProvider().Get; // Act var errors = x.Validate(actions); // Assert Assert.IsNotNull(errors); Assert.AreEqual(2, errors.Count); Assert.IsTrue(errors[0].Message.Contains("parameter is of type")); Assert.IsTrue(errors[0].Message.Contains("while action needs")); }
public void ValidateAddsErrorIfParameterWasNotPreviouslyPublished() { // Arrange var x = new Flow(); var step = new Step(null, "PrintInt"); var prm = new Parameter("int", step.Id, 0); step.AddParameter(prm); x.Add(step); var actions = new CalculatorActionDefinitionProvider().Get; // Act var errors = x.Validate(actions); // Assert Assert.IsNotNull(errors); Assert.AreEqual(1, errors.Count); Assert.IsTrue(errors[0].Message.Contains("has not been previously published")); }
public void ValidateProducesNoErrorIfFlowIsOk() { // Arrange var actions = new CalculatorActionDefinitionProvider().Get; var flow = CreateValidFlow(); // Act var errors = flow.Validate(actions); // Assert Assert.IsNotNull(errors); Assert.AreEqual(0, errors.Count); }
public void ValidateAddsErrorIfStepNameIsNull() { // Arrange var x = new Flow(); var step = new Step(null, "GetIntFromUI"); step.Name = null; x.Add(step); var actions = new CalculatorActionDefinitionProvider().Get; // Act var errors = x.Validate(actions); // Assert Assert.IsNotNull(errors); Assert.AreEqual(1, errors.Count); Assert.IsTrue(errors[0].Message.Contains("is not named")); }
public void ValidateAddsErrorIfStepIsNull() { // Arrange var step = new Step("name", "action"); var x = new Flow { step }; x[0] = null; var actions = new CalculatorActionDefinitionProvider().Get; // Act // Assert Assert.Throws(typeof (ArgumentNullException), () => x.Validate(actions)); }
public void ValidateAddsErrorIfStepActionIsUnknown() { // Arrange var x = new Flow(); var step = new Step(null, "UnknownAction"); x.Add(step); var actions = new CalculatorActionDefinitionProvider().Get; // Act var errors = x.Validate(actions); // Assert Assert.IsNotNull(errors); Assert.AreEqual(1, errors.Count); Assert.IsTrue(errors[0].Message.Contains("Unknown action")); }