示例#1
0
        public async Task <Guid?> Handle(CreateNotificationPipelineCommand request, CancellationToken cancellationToken)
        {
            _logger.LogDebug("Handle started");

            var pipeline = NotificationPipeline.Create(
                NotificationPipelineName.FromString(request.Name),
                String.IsNullOrEmpty(request.Description) == true ? NotificationPipelineDescription.Empty : NotificationPipelineDescription.FromString(request.Description),
                request.TriggerName,
                _conditionFactory.Initilize(new NotificationConditionCreateModel
            {
                Typename            = request.CondtionName,
                PropertiesAndValues = request.ConditionProperties,
            }),
                _actorFactory.Initilize(new NotificationActorCreateModel
            {
                Typename            = request.ActorName,
                PropertiesAndValues = request.ActorProperties,
            }),
                _loggerFactory.CreateLogger <NotificationPipeline>(),
                _conditionFactory, _actorFactory
                );

            Boolean storeResult = await _engine.AddNotificationPipeline(pipeline);

            if (storeResult == false)
            {
                return(null);
            }

            return(pipeline.Id);
        }
示例#2
0
        public void FromString_Failed_Empty()
        {
            IEnumerable <String> emptyInputs = InputHelper.GetEmptyStringInputs();

            foreach (String input in emptyInputs)
            {
                Assert.ThrowsAny <Exception>(() => NotificationPipelineName.FromString(input));
            }
        }
示例#3
0
        public void FromString()
        {
            Random random = new Random();
            String value  = random.GetAlphanumericString();

            NotificationPipelineName name = NotificationPipelineName.FromString(value);

            Assert.NotNull(name);
            Assert.Equal(value, name.Value);
            Assert.Equal(value, name);
        }
示例#4
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);
        }
示例#5
0
        public void FromString_MinMax(Int32 lenght, Boolean shouldThrowException)
        {
            Random random = new Random();
            String value  = random.GetAlphanumericString(lenght);

            if (shouldThrowException == true)
            {
                Assert.ThrowsAny <Exception>(() => NotificationPipelineName.FromString(value));
            }
            else
            {
                NotificationPipelineName name = NotificationPipelineName.FromString(value);

                Assert.NotNull(name);
                Assert.Equal(value, name.Value);
                Assert.Equal(value, name);
            }
        }