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); } } } } } }
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()); }
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); }
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); } }
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); }