public void Ceate() { Random random = new Random(); String name = random.GetAlphanumericString(); String description = random.GetAlphanumericString(); String triggerInputName = random.GetAlphanumericString(); NotificationConditionCreateModel conditionCreateModel = new NotificationConditionCreateModel() { Typename = random.GetAlphanumericString() }; NotificationActorCreateModel actorCreateModel = new NotificationActorCreateModel() { Typename = random.GetAlphanumericString() }; DummyNotificationCondition condition = new DummyNotificationCondition { ToCreateModelResult = conditionCreateModel }; DummyNotificationActor actor = new DummyNotificationActor { ToCreateModelResult = actorCreateModel }; Mock <INotificationConditionFactory> conditionFactoryMock = new Mock <INotificationConditionFactory>(MockBehavior.Strict); conditionFactoryMock.Setup(x => x.Initilize(conditionCreateModel)).Returns(condition).Verifiable(); Mock <INotificationActorFactory> actorFactoryMock = new Mock <INotificationActorFactory>(MockBehavior.Strict); actorFactoryMock.Setup(x => x.Initilize(actorCreateModel)).Returns(actor).Verifiable(); var pipeline = NotificationPipeline.Create( NotificationPipelineName.FromString(name), NotificationPipelineDescription.FromString(description), triggerInputName, condition, actor, Mock.Of <ILogger <NotificationPipeline> >(), conditionFactoryMock.Object, actorFactoryMock.Object); Assert.Equal(name, pipeline.Name); Assert.Equal(description, pipeline.Description); Assert.Equal(triggerInputName, pipeline.TriggerIdentifier); Assert.Equal(condition, pipeline.Condition); Assert.Equal(actor, pipeline.Actor); var @event = GetFirstEvent <NotificationPipelineCreatedEvent>(pipeline); Assert.Equal(name, @event.Name); Assert.Equal(description, @event.Description); Assert.Equal(triggerInputName, @event.TriggerIdentifier); Assert.Equal(actorCreateModel, @event.ActorCreateInfo); Assert.Equal(conditionCreateModel, @event.ConditionCreateInfo); }
public NotificationCondition Initilize(NotificationConditionCreateModel actorCreateInfo) { if (_typeResolver.ContainsKey(actorCreateInfo.Typename) == false) { return(NotificationCondition.Invalid); } var condition = (NotificationCondition)_serviceProvider.GetService(_typeResolver[actorCreateInfo.Typename]); Boolean applied = condition.ApplyValues(actorCreateInfo.PropertiesAndValues); if (applied == false) { return(NotificationCondition.Invalid); } return(condition); }
public static NotificationPipeline CreatePipleline(Random random, string triggerIdentifier, NotificationCondition condition = null, NotificationActor actor = null) { NotificationActorCreateModel actorCreateModel = new NotificationActorCreateModel { Typename = random.GetAlphanumericString(), PropertiesAndValues = new Dictionary <String, String>(), }; NotificationConditionCreateModel conditionCreateModel = new NotificationConditionCreateModel { Typename = random.GetAlphanumericString(), PropertiesAndValues = new Dictionary <String, String>(), }; Mock <INotificationConditionFactory> conditionFactoryMock = new Mock <INotificationConditionFactory>(MockBehavior.Strict); conditionFactoryMock.Setup(x => x.Initilize(conditionCreateModel)).Returns(condition ?? DummyNotificationCondition.AllErrors).Verifiable(); Mock <INotificationActorFactory> actorFactoryMock = new Mock <INotificationActorFactory>(MockBehavior.Strict); actorFactoryMock.Setup(x => x.Initilize(actorCreateModel)).Returns(actor ?? DummyNotificationActor.AllErrors).Verifiable(); Guid id = random.NextGuid(); var pipeline = new NotificationPipeline(id, conditionFactoryMock.Object, actorFactoryMock.Object, Mock.Of <ILogger <NotificationPipeline> >()); pipeline.Load(new[] { new NotificationPipelineCreatedEvent { Id = id, Description = random.GetAlphanumericString(), Name = random.GetAlphanumericString(), TriggerIdentifier = triggerIdentifier, ActorCreateInfo = actorCreateModel, ConditionCreateInfo = conditionCreateModel, } }); return(pipeline); }