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 TestAutoRemoveInputOutputRelation() { var plan = new TestPlan(); var delay1 = new DelayStep(); var delay2 = new DelayStep(); plan.ChildTestSteps.Add(delay1); plan.ChildTestSteps.Add(delay2); { var member = TypeData.GetTypeData(delay1).GetMember(nameof(DelayStep.DelaySecs)); InputOutputRelation.Assign(delay2, member, delay1, member); Assert.IsTrue(InputOutputRelation.IsInput(delay2, member)); Assert.IsTrue(InputOutputRelation.IsOutput(delay1, member)); } plan.ChildTestSteps.Remove(delay2); { var member = TypeData.GetTypeData(delay1).GetMember(nameof(DelayStep.DelaySecs)); Assert.IsFalse(InputOutputRelation.IsInput(delay2, member)); Assert.IsFalse(InputOutputRelation.IsOutput(delay1, member)); } }
public void TestSerializeReadOnlyMemberInputOutput() { var plan = new TestPlan(); var a = new ReadOnlyMemberOutput(); var b = new ReadOnlyMemberOutput(); plan.ChildTestSteps.Add(a); plan.ChildTestSteps.Add(b); var readonlyMember = TypeData.GetTypeData(a).GetMember(nameof(a.X)); var writableMember = TypeData.GetTypeData(a).GetMember(nameof(a.Y)); InputOutputRelation.Assign(b, writableMember, a, readonlyMember); Assert.IsTrue(InputOutputRelation.IsOutput(a, readonlyMember)); Assert.IsTrue(InputOutputRelation.IsInput(b, writableMember)); var xml = plan.SerializeToString(); plan = Utils.DeserializeFromString <TestPlan>(xml); a = (ReadOnlyMemberOutput)plan.ChildTestSteps[0]; b = (ReadOnlyMemberOutput)plan.ChildTestSteps[1]; Assert.IsTrue(InputOutputRelation.IsOutput(a, readonlyMember)); Assert.IsTrue(InputOutputRelation.IsInput(b, writableMember)); }
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); } }