Ejemplo n.º 1
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);
        }
Ejemplo n.º 2
0
        public void TestSerialization()
        {
            AcmaCSEntryChange toSerialize = new AcmaCSEntryChange();

            toSerialize.ObjectModificationType = ObjectModificationType.Update;
            toSerialize.ObjectType             = "person";
            toSerialize.DN = "testDN";
            toSerialize.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("sn", "myValue"));
            toSerialize.AttributeChanges.Add(AttributeChange.CreateAttributeAdd("mailAlternateAddresses", new List <object>()
            {
                "myValue1", "myValue2"
            }));
            toSerialize.AttributeChanges.Add(AttributeChange.CreateAttributeDelete("accountName"));
            toSerialize.AttributeChanges.Add(AttributeChange.CreateAttributeReplace("activeExpiryDate", 900L));
            toSerialize.AttributeChanges.Add(AttributeChange.CreateAttributeUpdate("displayName", new List <ValueChange>()
            {
                ValueChange.CreateValueAdd("addValue"), ValueChange.CreateValueDelete("deleteValue")
            }));
            toSerialize.AnchorAttributes.Add(AnchorAttribute.Create("myAnchor1", "99"));
            toSerialize.AnchorAttributes.Add(AnchorAttribute.Create("myAnchor2", "my second test anchor"));


            AcmaCSEntryChange deserialized = UnitTestControl.XmlSerializeRoundTrip <AcmaCSEntryChange>(toSerialize);

            Assert.AreEqual(toSerialize.ObjectModificationType, deserialized.ObjectModificationType);
            Assert.AreEqual(toSerialize.ObjectType, deserialized.ObjectType);
            Assert.AreEqual(toSerialize.DN, deserialized.DN);

            Assert.AreEqual(toSerialize.AttributeChanges[0].Name, deserialized.AttributeChanges[0].Name);
            Assert.AreEqual(toSerialize.AttributeChanges[0].ModificationType, deserialized.AttributeChanges[0].ModificationType);
            Assert.AreEqual(toSerialize.AttributeChanges[0].ValueChanges[0].Value, deserialized.AttributeChanges[0].ValueChanges[0].Value);
            Assert.AreEqual(toSerialize.AttributeChanges[0].ValueChanges[0].ModificationType, deserialized.AttributeChanges[0].ValueChanges[0].ModificationType);

            Assert.AreEqual(toSerialize.AttributeChanges[1].Name, deserialized.AttributeChanges[1].Name);
            Assert.AreEqual(toSerialize.AttributeChanges[1].ModificationType, deserialized.AttributeChanges[1].ModificationType);
            Assert.AreEqual(toSerialize.AttributeChanges[1].ValueChanges[0].Value, deserialized.AttributeChanges[1].ValueChanges[0].Value);
            Assert.AreEqual(toSerialize.AttributeChanges[1].ValueChanges[0].ModificationType, deserialized.AttributeChanges[1].ValueChanges[0].ModificationType);
            Assert.AreEqual(toSerialize.AttributeChanges[1].ValueChanges[1].Value, deserialized.AttributeChanges[1].ValueChanges[1].Value);
            Assert.AreEqual(toSerialize.AttributeChanges[1].ValueChanges[1].ModificationType, deserialized.AttributeChanges[1].ValueChanges[1].ModificationType);

            Assert.AreEqual(toSerialize.AttributeChanges[2].Name, deserialized.AttributeChanges[2].Name);
            Assert.AreEqual(toSerialize.AttributeChanges[2].ModificationType, deserialized.AttributeChanges[2].ModificationType);

            Assert.AreEqual(toSerialize.AttributeChanges[3].Name, deserialized.AttributeChanges[3].Name);
            Assert.AreEqual(toSerialize.AttributeChanges[3].ModificationType, deserialized.AttributeChanges[3].ModificationType);
            Assert.AreEqual(toSerialize.AttributeChanges[3].ValueChanges[0].Value, deserialized.AttributeChanges[3].ValueChanges[0].Value);
            Assert.AreEqual(toSerialize.AttributeChanges[3].ValueChanges[0].ModificationType, deserialized.AttributeChanges[3].ValueChanges[0].ModificationType);

            Assert.AreEqual(toSerialize.AttributeChanges[4].Name, deserialized.AttributeChanges[4].Name);
            Assert.AreEqual(toSerialize.AttributeChanges[4].ModificationType, deserialized.AttributeChanges[4].ModificationType);
            Assert.AreEqual(toSerialize.AttributeChanges[4].ValueChanges[0].Value, deserialized.AttributeChanges[4].ValueChanges[0].Value);
            Assert.AreEqual(toSerialize.AttributeChanges[4].ValueChanges[0].ModificationType, deserialized.AttributeChanges[4].ValueChanges[0].ModificationType);
            Assert.AreEqual(toSerialize.AttributeChanges[4].ValueChanges[1].Value, deserialized.AttributeChanges[4].ValueChanges[1].Value);
            Assert.AreEqual(toSerialize.AttributeChanges[4].ValueChanges[1].ModificationType, deserialized.AttributeChanges[4].ValueChanges[1].ModificationType);

            Assert.AreEqual(toSerialize.AnchorAttributes[0].Name, deserialized.AnchorAttributes[0].Name);
            Assert.AreEqual(toSerialize.AnchorAttributes[0].Value, deserialized.AnchorAttributes[0].Value);

            Assert.AreEqual(toSerialize.AnchorAttributes[1].Name, deserialized.AnchorAttributes[1].Name);
            Assert.AreEqual(toSerialize.AnchorAttributes[1].Value, deserialized.AnchorAttributes[1].Value);
        }
Ejemplo n.º 3
0
        protected override void ProcessRecord()
        {
            Global.ThrowIfNotConnected(this);

            try
            {
                MAStatistics.StartOperation(MAOperationType.Export);
                ActiveConfig.DB.CanCache = true;

                Console.WriteLine("Reading import file... ");

                StreamReader r      = new StreamReader(this.FileName);
                XmlReader    reader = XmlReader.Create(r);
                var          doc    = XDocument.Load(reader);

                Console.WriteLine("Importing objects... ");
                this.totalObjectCount = doc.Root.Elements().Count();
                ProgressRecord progress = new ProgressRecord(0, "Import", "Starting import");

                this.operationStartTime      = DateTime.Now;
                this.sampleIntervalStartTime = DateTime.Now;

                this.timer          = new Timer(1000);
                this.timer.Elapsed += this.timer_Elapsed;
                this.timer.Start();

                progress.RecordType      = ProgressRecordType.Processing;
                progress.PercentComplete = 0;
                this.WriteProgress(progress);

                foreach (var node in doc.Root.Elements("object-change"))
                {
                    bool refretry;
                    //XElement element = node;
                    AcmaCSEntryChange csentry = CSEntryChangeXmlImport.ImportFromXml(node, !this.IgnoreMissingAttributes.IsPresent);

                    progress.PercentComplete   = Convert.ToInt32(((decimal)this.currentObjectCount / this.totalObjectCount) * 100);
                    progress.StatusDescription = string.Format("Importing {0}/{1}... {2} ({3} objects/sec)", this.currentObjectCount, this.totalObjectCount, csentry.DN, this.sampleOpsSec);
                    progress.CurrentOperation  = string.Format("Average rate: {0} objects/sec", this.averageOpsSec);
                    progress.SecondsRemaining  = this.secondsRemaining;

                    this.WriteProgress(progress);

                    try
                    {
                        CSEntryExport.PutExportEntry(csentry, out refretry);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Error importing object {0}: {1}: {2}", this.currentObjectCount, csentry.DN, ex.Message);
                    }

                    this.currentObjectCount++;
                }

                progress.RecordType = ProgressRecordType.Completed;
                WriteProgress(progress);

                Console.WriteLine("Done");
                MAStatistics.StopOperation();
                Console.WriteLine(MAStatistics.ToString());
            }
            catch (Exception ex)
            {
                Logger.WriteException(ex);
                ErrorRecord error = new ErrorRecord(ex, "UnknownError", ErrorCategory.NotSpecified, this.FileName);
                ThrowTerminatingError(error);
            }
            finally
            {
                if (this.timer != null)
                {
                    this.timer.Stop();
                    this.timer.Elapsed -= this.timer_Elapsed;
                }
            }
        }
Ejemplo n.º 4
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);
        }