Example #1
0
        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));
            }
        }
Example #2
0
        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));
        }
Example #3
0
        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));
        }
Example #4
0
        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);
            }
        }