public void CanExecuteTest() { const string TriggerName = "Test Trigger"; var triggerGuid = Guid.Parse("{A7B2AF5F-5444-479D-A700-29123F8748A9}"); const string DestinationProcess = "TestProcess"; const string FilterDefinition = "Test Filter"; const DataTriggerModificationType ModificationType = DataTriggerModificationType.Insert; var map = new DataTriggerMap(Enumerable.Empty<DataTriggerFieldMapping>(), Enumerable.Empty<DataTriggerListFieldMapping>()); var item = Mock.Create<IEditableRoot>(); var oldItem = Mock.Create<IEditableRoot>(); var trigger = new DataTriggerDefinition(TriggerName, triggerGuid, DestinationProcess, FilterDefinition, ModificationType, Enumerable.Empty<IActionRule>(), map); Assert.IsFalse(trigger.CanExecute(item, oldItem)); var rule1 = Mock.Create<IActionRule>(); Mock.Arrange(() => rule1.CanExecute(item, oldItem)).Returns(false); var rule2 = Mock.Create<IActionRule>(); Mock.Arrange(() => rule2.CanExecute(item, oldItem)).Returns(true); trigger = new DataTriggerDefinition(TriggerName, triggerGuid, DestinationProcess, FilterDefinition, ModificationType, new[] { rule1 }, map); Assert.IsFalse(trigger.CanExecute(item, oldItem)); trigger = new DataTriggerDefinition(TriggerName, triggerGuid, DestinationProcess, FilterDefinition, ModificationType, new[] { rule1, rule2 }, map); Assert.IsTrue(trigger.CanExecute(item, oldItem)); }
public void InitializeTest() { // Arrange. const string ProcessName = "TestProcess"; const string TriggerName = "Test Trigger"; var triggerGuid = new Guid("{A05F4E80-E1C6-4115-8582-0A823081BB19}"); const string ProcessToModify = "DestinationProcess"; const string FilterDefinition = "Test Filter"; const DataTriggerModificationType ModificationType = DataTriggerModificationType.Update; var fieldMapping1 = new DataTriggerFieldMapping("Field1", false, (s, d) => null); var fieldMapping2 = new DataTriggerFieldMapping("Field2", false, (s, d) => null); var listMapping1 = new DataTriggerListFieldMapping( Enumerable.Empty<FieldMappingDataSourceDefinition>(), "Field3", DataTriggerModificationType.Insert, Enumerable.Empty<DataTriggerFieldMapping>()); var listMapping2 = new DataTriggerListFieldMapping( Enumerable.Empty<FieldMappingDataSourceDefinition>(), "Field4", DataTriggerModificationType.Insert, Enumerable.Empty<DataTriggerFieldMapping>()); var triggerMap = new DataTriggerMap(new[] { fieldMapping1, fieldMapping2 }, new[] { listMapping1, listMapping2 }); var triggerDefinition = new DataTriggerDefinition(TriggerName, triggerGuid, ProcessToModify, FilterDefinition, ModificationType, Enumerable.Empty<IActionRule>(), triggerMap); var fieldUpdater1 = Mock.Create<IFieldUpdater>(); var fieldUpdater2 = Mock.Create<IFieldUpdater>(); var fieldUpdaterFactory = Mock.Create<IFieldUpdaterFactory>(); Mock.Arrange(() => fieldUpdaterFactory.CreateFieldUpdater(ProcessToModify, fieldMapping1)).Returns(fieldUpdater1); Mock.Arrange(() => fieldUpdaterFactory.CreateFieldUpdater(ProcessToModify, fieldMapping2)).Returns(fieldUpdater2); var listUpdater1 = Mock.Create<IListFieldUpdater>(); var listUpdater2 = Mock.Create<IListFieldUpdater>(); var listUpdaterFactory = Mock.Create<IListFieldUpdaterFactory>(); Mock.Arrange(() => listUpdaterFactory.CreateFieldUpdater(ProcessToModify, listMapping1)).Returns(listUpdater1); Mock.Arrange(() => listUpdaterFactory.CreateFieldUpdater(ProcessToModify, listMapping2)).Returns(listUpdater2); var trigger = new DataTrigger { FieldUpdaterFactory = fieldUpdaterFactory, ListFieldUpdaterFactory = listUpdaterFactory }; // Act. trigger.Initialize(ProcessName, triggerDefinition); // Assert. Assert.AreEqual(TriggerName, trigger.Name); Assert.AreEqual(triggerGuid, trigger.Guid); Assert.AreEqual(ModificationType, trigger.ModificationType); Assert.AreEqual(ProcessToModify, trigger.DestinationProcess); Assert.AreEqual(FilterDefinition, trigger.FilterDefinition); Assert.AreEqual(2, trigger.FieldUpdaters.Count); Assert.IsTrue(trigger.FieldUpdaters.Contains(fieldUpdater1)); Assert.IsTrue(trigger.FieldUpdaters.Contains(fieldUpdater2)); Assert.AreEqual(2, trigger.ListFieldUpdaters.Count); Assert.IsTrue(trigger.ListFieldUpdaters.Contains(listUpdater1)); Assert.IsTrue(trigger.ListFieldUpdaters.Contains(listUpdater2)); }
public void CreateProcessTriggerTest() { const string TriggerName = "Test Trigger"; var triggerGuid = Guid.Parse("{A7B2AF5F-5444-479D-A700-29123F8748A9}"); const string DestinationProcess = "TestProcess"; const string FilterDefinition = "Test Filter"; const DataTriggerModificationType ModificationType = DataTriggerModificationType.Insert; var map = new DataTriggerMap(Enumerable.Empty<DataTriggerFieldMapping>(), Enumerable.Empty<DataTriggerListFieldMapping>()); var trigger = new DataTriggerDefinition(TriggerName, triggerGuid, DestinationProcess, FilterDefinition, ModificationType, Enumerable.Empty<IActionRule>(), map); Assert.AreEqual(TriggerName, trigger.Name); Assert.AreEqual(triggerGuid, trigger.Guid); Assert.AreEqual(DestinationProcess, trigger.ProcessToModifySystemName); Assert.AreEqual(FilterDefinition, trigger.FilterDefinition); Assert.AreEqual(ModificationType, trigger.ModificationType); Assert.AreSame(map, trigger.Map); Assert.AreEqual(DataTriggerTypes.Process, trigger.TriggerType); }