Esempio n. 1
0
        public void TestSerialization()
        {
            AcmaExternalExitEventCmd toSerialize = new AcmaExternalExitEventCmd();

            toSerialize.ID        = "test external event";
            toSerialize.RuleGroup = new RuleGroup()
            {
                Operator = GroupOperator.Any
            };
            toSerialize.RuleGroup.Items.Add(new ObjectChangeRule()
            {
                TriggerEvents = TriggerEvents.Delete
            });
            toSerialize.CommandLine = "cmd.exe";
            toSerialize.Arguments   = new ValueDeclaration("/c dir >> testfile.txt");
            Lithnet.Common.ObjectModel.UniqueIDCache.ClearIdCache();

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

            Assert.AreEqual(toSerialize.ID, deserialized.ID);
            Assert.AreEqual(toSerialize.RuleGroup.Operator, deserialized.RuleGroup.Operator);
            Assert.AreEqual(((ObjectChangeRule)toSerialize.RuleGroup.Items[0]).TriggerEvents, ((ObjectChangeRule)deserialized.RuleGroup.Items[0]).TriggerEvents);
            Assert.AreEqual(toSerialize.CommandLine, deserialized.CommandLine);
            Assert.AreEqual(toSerialize.Arguments.Declaration, deserialized.Arguments.Declaration);
        }
Esempio n. 2
0
        public void TextExitEvent()
        {
            Guid newId = Guid.NewGuid();

            string tempFileName = Path.Combine(Path.GetTempPath(), newId.ToString());

            try
            {
                AcmaExternalExitEventCmd e = new AcmaExternalExitEventCmd();
                e.ID        = "test external event";
                e.RuleGroup = new RuleGroup()
                {
                    Operator = GroupOperator.Any
                };
                e.RuleGroup.Items.Add(new ObjectChangeRule()
                {
                    TriggerEvents = TriggerEvents.Add
                });
                e.CommandLine = "cmd.exe";
                e.Arguments   = new ValueDeclaration("/c dir >> " + tempFileName.Replace(@"\", @"\\"));

                if (!ActiveConfig.XmlConfig.ClassConstructors.Contains("person"))
                {
                    ClassConstructor constructor = new ClassConstructor();
                    constructor.ObjectClass = ActiveConfig.DB.GetObjectClass("person");
                    ActiveConfig.XmlConfig.ClassConstructors.Add(constructor);
                }

                ActiveConfig.XmlConfig.ClassConstructors["person"].ExitEvents.Add(e);

                MAObjectHologram sourceObject = ActiveConfig.DB.CreateMAObject(newId, "person");
                sourceObject.SetAttributeValue(ActiveConfig.DB.GetAttribute("mail"), "*****@*****.**");
                sourceObject.CommitCSEntryChange();

                if (!System.IO.File.Exists(tempFileName))
                {
                    Assert.Fail("The external event did not created the expected file");
                }
            }
            finally
            {
                if (System.IO.File.Exists(tempFileName))
                {
                    System.IO.File.Delete(tempFileName);
                }
            }
        }
        public AcmaExternalExitEventCmdViewModel(AcmaExternalExitEventCmd model)
            : base(model)
        {
            this.typedModel = model;

            if (this.typedModel.RuleGroup == null)
            {
                this.typedModel.RuleGroup = new RuleGroup();
            }

            this.RuleGroup = new RuleGroupViewModel(this.typedModel.RuleGroup, false, "Execution rules");

            if (model.Arguments == null)
            {
                model.Arguments = new ValueDeclaration();
            }

            this.Arguments = new ValueDeclarationViewModel(model.Arguments, model.ObjectClass);
        }