Exemplo n.º 1
0
        private void UnitTestStepsViewModel_OnModelRemoved(ListViewModelChangedEventArgs args)
        {
            if (args.Model is UnitTestStepObjectCreation)
            {
                UnitTestStepObjectCreation step = (UnitTestStepObjectCreation)args.Model;

                foreach (UnitTestStepObjectModificationViewModel modStep in this.OfType <UnitTestStepObjectModificationViewModel>().ToList <UnitTestStepObjectModificationViewModel>())
                {
                    if (modStep.ObjectCreationStep == step)
                    {
                        this.Remove(modStep);
                    }
                    else
                    {
                        foreach (AttributeChangeViewModel change in modStep.AttributeChanges.Where(t => t.Model.DataType == AttributeType.Reference).ToList())
                        {
                            foreach (ValueChangeViewModel value in change.ValueChanges.ToList())
                            {
                                if (value.Value == step.ObjectId.ToString())
                                {
                                    change.ValueChanges.Remove(value);
                                }

                                if (change.ValueChanges.Count == 0)
                                {
                                    modStep.AttributeChanges.Remove(change);
                                }
                            }
                        }
                    }
                }

                foreach (UnitTestStepObjectEvaluationViewModel evalStep in this.OfType <UnitTestStepObjectEvaluationViewModel>().ToList <UnitTestStepObjectEvaluationViewModel>())
                {
                    if (evalStep.ObjectCreationStep == step)
                    {
                        this.Remove(evalStep);
                    }
                }

                foreach (UnitTestStepObjectCreationViewModel createStep in this.OfType <UnitTestStepObjectCreationViewModel>().ToList <UnitTestStepObjectCreationViewModel>())
                {
                    foreach (AttributeChangeViewModel change in createStep.AttributeChanges.Where(t => t.Model.DataType == AttributeType.Reference).ToList())
                    {
                        foreach (ValueChangeViewModel value in change.ValueChanges.ToList())
                        {
                            if (value.Value == step.ObjectId.ToString())
                            {
                                change.ValueChanges.Remove(value);
                            }

                            if (change.ValueChanges.Count == 0)
                            {
                                createStep.AttributeChanges.Remove(change);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        public UnitTestStepObjectCreationViewModel(UnitTestStepObjectCreation model)
            : base(model)
        {
            this.typedModel = model;
            AcmaSchemaObjectClass objectClass = ActiveConfig.DB.GetObjectClass(model.ObjectClassName);

            this.AttributeChanges = new AttributeChangesViewModel(model.CSEntryChange.AttributeChanges, model.CSEntryChange.ObjectModificationType, objectClass, () => this.GetAllowedReferenceObjects());
        }
Exemplo n.º 3
0
        public void TestSerialization()
        {
            UnitTest toSerlialize = new UnitTest();

            toSerlialize.Description = "unit test 1";
            toSerlialize.ExpectedConstructors.Add("ABC123");
            toSerlialize.ExpectedConstructors.Add("123DGS");
            toSerlialize.ID = "ID12340000";

            UnitTestStepObjectCreation step1   = new UnitTestStepObjectCreation();
            AcmaCSEntryChange          csentry = new AcmaCSEntryChange();

            csentry.ObjectModificationType = ObjectModificationType.Add;
            csentry.ObjectType             = "person";
            csentry.DN          = "testDN";
            step1.Name          = "mystep1";
            step1.CSEntryChange = csentry;
            toSerlialize.Steps.Add(step1);

            UnitTestStepObjectEvaluation step2 = new UnitTestStepObjectEvaluation();

            step2.Name = "mystep2";
            step2.ObjectCreationStep = step1;
            step2.SuccessCriteria    = new RuleGroup();
            step2.SuccessCriteria.Items.Add(new ObjectChangeRule()
            {
                Description = "test", TriggerEvents = TriggerEvents.Add
            });
            toSerlialize.Steps.Add(step2);

            UniqueIDCache.ClearIdCache();
            UnitTest deserialized = UnitTestControl.XmlSerializeRoundTrip <UnitTest>(toSerlialize);

            Assert.AreEqual(toSerlialize.Description, deserialized.Description);
            Assert.AreEqual(toSerlialize.ExpectedConstructors[0], deserialized.ExpectedConstructors[0]);
            Assert.AreEqual(toSerlialize.ExpectedConstructors[1], deserialized.ExpectedConstructors[1]);
            Assert.AreEqual(toSerlialize.ID, deserialized.ID);
            Assert.AreEqual(((UnitTestStepObjectCreation)toSerlialize.Steps[0]).Name, ((UnitTestStepObjectCreation)deserialized.Steps[0]).Name);
            Assert.AreEqual(((UnitTestStepObjectCreation)toSerlialize.Steps[0]).CSEntryChange.DN, ((UnitTestStepObjectCreation)deserialized.Steps[0]).CSEntryChange.DN);
            Assert.AreEqual(((UnitTestStepObjectCreation)toSerlialize.Steps[0]).CSEntryChange.ObjectType, ((UnitTestStepObjectCreation)deserialized.Steps[0]).CSEntryChange.ObjectType);
            Assert.AreEqual(((UnitTestStepObjectCreation)toSerlialize.Steps[0]).CSEntryChange.ObjectModificationType, ((UnitTestStepObjectCreation)deserialized.Steps[0]).CSEntryChange.ObjectModificationType);

            Assert.AreEqual(((UnitTestStepObjectEvaluation)toSerlialize.Steps[1]).Name, ((UnitTestStepObjectEvaluation)deserialized.Steps[1]).Name);
            Assert.AreEqual(((UnitTestStepObjectEvaluation)toSerlialize.Steps[1]).ObjectCreationStepName, ((UnitTestStepObjectEvaluation)deserialized.Steps[1]).ObjectCreationStepName);
            Assert.AreEqual(((UnitTestStepObjectEvaluation)toSerlialize.Steps[1]).SuccessCriteria.Items.Count, ((UnitTestStepObjectEvaluation)deserialized.Steps[1]).SuccessCriteria.Items.Count);
        }
Exemplo n.º 4
0
        public void AddUnitTestObjectCreation()
        {
            NewObjectCreationWindow    window = new NewObjectCreationWindow();
            NewObjectCreationViewModel vm     = new NewObjectCreationViewModel(window);

            window.DataContext = vm;
            vm.StepName        = vm.ObjectClass.Name;

            bool?result = window.ShowDialog();

            if (result.HasValue && result.Value)
            {
                UnitTestStepObjectCreation step = new UnitTestStepObjectCreation();
                step.ParentTest       = this.parentUnitTest;
                step.ObjectId         = Guid.NewGuid();
                step.Name             = vm.StepName;
                step.ObjectClassName  = vm.ObjectClass.Name;
                step.ModificationType = ObjectModificationType.Add;
                this.Add(step, true);
            }
        }
Exemplo n.º 5
0
        public void TestSerialization()
        {
            UnitTest unitTest1 = new UnitTest();

            unitTest1.Description = "unit test 1";
            unitTest1.ExpectedConstructors.Add("ABC123");
            unitTest1.ExpectedConstructors.Add("123DGS");
            unitTest1.ID = "ID1234";

            UnitTestStepObjectCreation ut1step1 = new UnitTestStepObjectCreation();
            AcmaCSEntryChange          csentry1 = new AcmaCSEntryChange();

            csentry1.ObjectModificationType = ObjectModificationType.Add;
            csentry1.ObjectType             = "person";
            csentry1.DN            = "testDN";
            ut1step1.Name          = "mystep1";
            ut1step1.CSEntryChange = csentry1;
            unitTest1.Steps.Add(ut1step1);


            UnitTestStepObjectEvaluation ut1step2 = new UnitTestStepObjectEvaluation();

            ut1step2.Name = "mystep2";
            ut1step2.ObjectCreationStep = ut1step1;
            ut1step2.SuccessCriteria    = new RuleGroup();
            ut1step2.SuccessCriteria.Items.Add(new ObjectChangeRule()
            {
                Description = "test", TriggerEvents = TriggerEvents.Add
            });
            unitTest1.Steps.Add(ut1step2);

            UnitTest unitTest2 = new UnitTest();

            unitTest2.Description = "unit test 1";
            unitTest2.ExpectedConstructors.Add("ABC123");
            unitTest2.ExpectedConstructors.Add("123DGS");
            unitTest2.ID = "ID1234";

            UnitTestStepObjectModification ut2step1 = new UnitTestStepObjectModification();
            AcmaCSEntryChange csentry2 = new AcmaCSEntryChange();

            csentry2.ObjectModificationType = ObjectModificationType.Update;
            csentry2.ObjectType             = "person";
            csentry2.DN            = "testDN";
            ut2step1.Name          = "mystep1";
            ut2step1.CSEntryChange = csentry2;
            unitTest2.Steps.Add(ut2step1);

            UnitTestStepObjectEvaluation ut2step2 = new UnitTestStepObjectEvaluation();

            ut2step2.Name = "mystep2";
            ut2step2.ObjectCreationStep = ut1step1;
            ut2step2.SuccessCriteria    = new RuleGroup();
            ut2step2.SuccessCriteria.Items.Add(new ObjectChangeRule()
            {
                Description = "test", TriggerEvents = TriggerEvents.Add
            });
            unitTest2.Steps.Add(ut2step2);

            UnitTestFile toSerialize = new UnitTestFile();

            toSerialize.ConfigVersion = "1";
            toSerialize.Description   = "test description";
            toSerialize.UnitTestObjects.Add(unitTest1);
            toSerialize.UnitTestObjects.Add(unitTest2);

            UniqueIDCache.ClearIdCache();
            UnitTestFile deserialized = UnitTestControl.XmlSerializeRoundTrip <UnitTestFile>(toSerialize);

            Assert.AreEqual(toSerialize.Description, deserialized.Description);
            Assert.AreEqual(toSerialize.ConfigVersion, deserialized.ConfigVersion);
            Assert.AreEqual(toSerialize.UnitTestObjects.Count, deserialized.UnitTestObjects.Count);

            UnitTest deserializedUnitTest1 = deserialized.UnitTestObjects[0] as UnitTest;

            Assert.AreEqual(unitTest1.Description, deserializedUnitTest1.Description);
            Assert.AreEqual(unitTest1.ExpectedConstructors[0], deserializedUnitTest1.ExpectedConstructors[0]);
            Assert.AreEqual(unitTest1.ExpectedConstructors[1], deserializedUnitTest1.ExpectedConstructors[1]);
            Assert.AreEqual(unitTest1.ID, deserializedUnitTest1.ID);
            Assert.AreEqual(((UnitTestStepObjectCreation)unitTest1.Steps[0]).Name, ((UnitTestStepObjectCreation)deserializedUnitTest1.Steps[0]).Name);
            Assert.AreEqual(((UnitTestStepObjectCreation)unitTest1.Steps[0]).CSEntryChange.DN, ((UnitTestStepObjectCreation)deserializedUnitTest1.Steps[0]).CSEntryChange.DN);
            Assert.AreEqual(((UnitTestStepObjectCreation)unitTest1.Steps[0]).CSEntryChange.ObjectType, ((UnitTestStepObjectCreation)deserializedUnitTest1.Steps[0]).CSEntryChange.ObjectType);
            Assert.AreEqual(((UnitTestStepObjectCreation)unitTest1.Steps[0]).CSEntryChange.ObjectModificationType, ((UnitTestStepObjectCreation)deserializedUnitTest1.Steps[0]).CSEntryChange.ObjectModificationType);

            Assert.AreEqual(((UnitTestStepObjectEvaluation)unitTest1.Steps[1]).Name, ((UnitTestStepObjectEvaluation)deserializedUnitTest1.Steps[1]).Name);
            Assert.AreEqual(((UnitTestStepObjectEvaluation)unitTest1.Steps[1]).ObjectCreationStepName, ((UnitTestStepObjectEvaluation)deserializedUnitTest1.Steps[1]).ObjectCreationStepName);
            Assert.AreEqual(((UnitTestStepObjectEvaluation)unitTest1.Steps[1]).SuccessCriteria.Items.Count, ((UnitTestStepObjectEvaluation)deserializedUnitTest1.Steps[1]).SuccessCriteria.Items.Count);
        }