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