public void TestMultipleOutputFromTheSameProperty() { var a = new OutputInput(); var b = new OutputInput(); var inputMember = TypeData.GetTypeData(a).GetMember(nameof(a.Input)); var outputMember = TypeData.GetTypeData(b).GetMember(nameof(b.Output)); var inputMember2 = TypeData.GetTypeData(a).GetMember(nameof(a.ExpectedInput)); InputOutputRelation.Assign(a, inputMember, b, outputMember); InputOutputRelation.Assign(a, inputMember2, b, outputMember); Assert.IsTrue(InputOutputRelation.IsInput(a, inputMember)); Assert.IsTrue(InputOutputRelation.IsInput(a, inputMember2)); Assert.Throws <ArgumentException>(() => InputOutputRelation.Assign(a, inputMember, b, outputMember)); Assert.Throws <ArgumentException>(() => InputOutputRelation.Assign(a, inputMember2, b, outputMember)); }
public void TestMenuAnnotationForInputOutputRelations() { var userInput = UserInput.GetInterface(); var request = new SelectAssignmentFromAnnotationMenu(); UserInput.SetInterface(request); try { var step1 = new OutputInput { Output = 5, Input = 5, Name = "Step 1" }; var step2 = new OutputInput { ExpectedInput = 5, CheckExpectedInput = true, Name = "Step 2" }; var step3 = new OutputInput { ExpectedInput = 5, CheckExpectedInput = true, Name = "Step 3" }; var plan = new TestPlan(); plan.ChildTestSteps.AddRange(new[] { step1, step2, step3 }); var menu = AnnotationCollection.Annotate(step2).GetMember(nameof(OutputInput.Input)) .Get <MenuAnnotation>(); request.SelectName = "Step 1"; menu.MenuItems.First(x => x.Get <IconAnnotationAttribute>().IconName == IconNames.AssignOutput).Get <IMethodAnnotation>().Invoke(); request.SelectName = "Step 2"; menu = AnnotationCollection.Annotate(step3).GetMember(nameof(OutputInput.Input)) .Get <MenuAnnotation>(); menu.MenuItems.First(x => x.Get <IconAnnotationAttribute>().IconName == IconNames.AssignOutput).Get <IMethodAnnotation>().Invoke(); var run = plan.Execute(); Assert.AreEqual(Verdict.Pass, run.Verdict); Assert.IsTrue(request.WasInvoked); } finally { UserInput.SetInterface(userInput); } }
public void TestSerializingConnectionsBetweenSteps() { var step1 = new OutputInput { Output = 5, Input = 5, Name = "Step 1" }; var step2 = new OutputInput { ExpectedInput = 5, CheckExpectedInput = true, Name = "Step 2" }; var step3 = new OutputInput { ExpectedInput = 5, CheckExpectedInput = true, Name = "Step 3" }; var plan = new TestPlan(); plan.ChildTestSteps.AddRange(new [] { step1, step2, step3 }); var outputMember = TypeData.GetTypeData(step1).GetMember(nameof(OutputInput.Output)); var inputMember = TypeData.GetTypeData(step1).GetMember(nameof(OutputInput.Input)); InputOutputRelation.Assign(step2, inputMember, step1, outputMember); InputOutputRelation.Assign(step3, inputMember, step2, outputMember); var xml = plan.SerializeToString(); var plan2 = Utils.DeserializeFromString <TestPlan>(xml); step1 = (OutputInput)plan2.Steps[0]; step2 = (OutputInput)plan2.Steps[1]; step3 = (OutputInput)plan2.Steps[2]; Assert.IsTrue(InputOutputRelation.IsOutput(step1, outputMember)); Assert.IsFalse(InputOutputRelation.IsInput(step1, outputMember)); Assert.IsFalse(InputOutputRelation.IsOutput(step1, inputMember)); Assert.IsFalse(InputOutputRelation.IsInput(step1, inputMember)); Assert.IsTrue(InputOutputRelation.IsInput(step2, inputMember)); Assert.IsTrue(InputOutputRelation.IsOutput(step2, outputMember)); Assert.IsTrue(InputOutputRelation.IsInput(step3, inputMember)); Assert.IsFalse(InputOutputRelation.IsOutput(step3, outputMember)); }
public void TestInputOutputRelationsInTestPlan() { var step1 = new OutputInput { Output = 5, Input = 5, Name = "Step 1" }; var step2 = new OutputInput { ExpectedInput = 5, CheckExpectedInput = true, Name = "Step 2" }; var step3 = new OutputInput { ExpectedInput = 5, CheckExpectedInput = true, Name = "Step 3" }; var plan = new TestPlan(); plan.ChildTestSteps.AddRange(new [] { step1, step2, step3 }); { var outputMember = TypeData.GetTypeData(step1).GetMember(nameof(OutputInput.Output)); var inputMember = TypeData.GetTypeData(step1).GetMember(nameof(OutputInput.Input)); InputOutputRelation.Assign(step2, inputMember, step1, outputMember); InputOutputRelation.Assign(step3, inputMember, step2, outputMember); Assert.IsTrue(InputOutputRelation.IsOutput(step1, outputMember)); Assert.IsFalse(InputOutputRelation.IsInput(step1, outputMember)); Assert.IsFalse(InputOutputRelation.IsOutput(step1, inputMember)); Assert.IsFalse(InputOutputRelation.IsInput(step1, inputMember)); Assert.IsTrue(InputOutputRelation.IsInput(step2, inputMember)); Assert.IsTrue(InputOutputRelation.IsOutput(step2, outputMember)); Assert.IsTrue(InputOutputRelation.IsInput(step3, inputMember)); Assert.IsFalse(InputOutputRelation.IsOutput(step3, outputMember)); } { var run = plan.Execute(); Assert.AreEqual(Verdict.Pass, run.Verdict); } }