예제 #1
0
        public Task <NotificationPipelineDescriptions> GetPiplelineDescriptions()
        {
            var triggerDescriptions = new[]
            {
                new NotificationTriggerDescription
                {
                    Name = nameof(PrefixEdgeRouterBindingUpdatedTrigger),
                }
            };

            var conditionsDescriptions = new[]
            {
                new NotifcationCondititonDescription
                {
                    Name       = nameof(DHCPv6ScopeIdNotificationCondition),
                    Properties = new Dictionary <string, NotifcationCondititonDescription.ConditionsPropertyTtpes>
                    {
                        { nameof(DHCPv6ScopeIdNotificationCondition.IncludesChildren), NotifcationCondititonDescription.ConditionsPropertyTtpes.Boolean },
                        { nameof(DHCPv6ScopeIdNotificationCondition.ScopeIds), NotifcationCondititonDescription.ConditionsPropertyTtpes.DHCPv6ScopeList },
                    }
                },
            };

            var actorDescription = new[]
            {
                new NotifcationActorDescription
                {
                    Name       = nameof(NxOsStaticRouteUpdaterNotificationActor),
                    Properties = new Dictionary <String, NotifcationActorDescription.ActorPropertyTtpes>
                    {
                        { nameof(NxOsStaticRouteUpdaterNotificationActor.Url), NotifcationActorDescription.ActorPropertyTtpes.Endpoint },
                        { nameof(NxOsStaticRouteUpdaterNotificationActor.Username), NotifcationActorDescription.ActorPropertyTtpes.Username },
                        { nameof(NxOsStaticRouteUpdaterNotificationActor.Password), NotifcationActorDescription.ActorPropertyTtpes.Password },
                    }
                }
            };

            var mapping = new[]
            {
                new NotificationPipelineTriggerMapperEntry
                {
                    TriggerName           = nameof(PrefixEdgeRouterBindingUpdatedTrigger),
                    CompactibleConditions = new[] { nameof(DHCPv6ScopeIdNotificationCondition) },
                    CompactibleActors     = new[] { nameof(NxOsStaticRouteUpdaterNotificationActor) }
                }
            };

            NotificationPipelineDescriptions result = new NotificationPipelineDescriptions
            {
                Actors       = actorDescription,
                Conditions   = conditionsDescriptions,
                Trigger      = triggerDescriptions,
                MapperEnries = mapping,
            };

            return(Task.FromResult(result));
        }
예제 #2
0
        protected override async Task OnInitializedAsync()
        {
            await base.OnInitializedAsync();

            _pipelineDescriptions = await _service.GetpipelineDescriptions();

            _conditionPropertiesModel.SetDescription(_pipelineDescriptions);
            _actorPropertiesModel.SetDescription(_pipelineDescriptions);
        }
예제 #3
0
        public async Task GetPiplelineDescriptions()
        {
            var descriptions = new NotificationPipelineDescriptions();

            Mock <INotificationEngine> notificationEngineMock = new Mock <INotificationEngine>(MockBehavior.Strict);

            notificationEngineMock.Setup(x => x.GetPiplelineDescriptions()).ReturnsAsync(descriptions).Verifiable();

            var controller = new NotificationsController(
                notificationEngineMock.Object, Mock.Of <IMediator>(MockBehavior.Strict),
                Mock.Of <ILogger <NotificationsController> >());

            var actionResult = await controller.GetPiplelineDescriptions();

            var result = actionResult.EnsureOkObjectResult <NotificationPipelineDescriptions>(true);

            Assert.Equal(descriptions, result);
        }
예제 #4
0
 public void SetDescription(NotificationPipelineDescriptions descriptions) => _descriptions = descriptions;