Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }