예제 #1
0
        /// <summary>
        /// Create endpoint registry
        /// </summary>
        /// <param name="iothub"></param>
        /// <param name="broker"></param>
        /// <param name="logger"></param>
        /// <param name="activator"></param>
        /// <param name="certificates"></param>
        /// <param name="supervisors"></param>
        /// <param name="serializer"></param>
        /// <param name="events"></param>
        public EndpointRegistry(IIoTHubTwinServices iothub, IJsonSerializer serializer,
                                IRegistryEventBroker <IEndpointRegistryListener> broker,
                                IActivationServices <EndpointRegistrationModel> activator,
                                ICertificateServices <EndpointRegistrationModel> certificates,
                                ISupervisorRegistry supervisors, ILogger logger,
                                IRegistryEvents <IApplicationRegistryListener> events = null)
        {
            _iothub       = iothub ?? throw new ArgumentNullException(nameof(iothub));
            _logger       = logger ?? throw new ArgumentNullException(nameof(logger));
            _certificates = certificates ?? throw new ArgumentNullException(nameof(certificates));
            _supervisors  = supervisors ?? throw new ArgumentNullException(nameof(supervisors));
            _activator    = activator ?? throw new ArgumentNullException(nameof(activator));
            _serializer   = serializer ?? throw new ArgumentNullException(nameof(serializer));
            _broker       = broker ?? throw new ArgumentNullException(nameof(broker));

            // Register for application registry events
            _unregister = events?.Register(this);
        }
예제 #2
0
        public void ListAllSupervisorsUsingQuery()
        {
            CreateSupervisorFixtures(out var site, out var supervisors, out var modules);

            using (var mock = AutoMock.GetLoose(builder => {
                var hub = IoTHubServices.Create(modules);
                builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>();
                builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>();
                builder.RegisterInstance(hub).As <IIoTHubTwinServices>();
            })) {
                ISupervisorRegistry service = mock.Create <SupervisorRegistry>();

                // Run
                var records = service.QuerySupervisorsAsync(null, false, null).Result;

                // Assert
                Assert.True(supervisors.IsSameAs(records.Items));
            }
        }
예제 #3
0
        public void GetSupervisorThatExists()
        {
            CreateSupervisorFixtures(out var site, out var supervisors, out var modules);

            using (var mock = AutoMock.GetLoose(builder => {
                var hub = IoTHubServices.Create(modules);
                builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>();
                builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>();
                builder.RegisterInstance(hub).As <IIoTHubTwinServices>();
            })) {
                ISupervisorRegistry service = mock.Create <SupervisorRegistry>();

                // Run
                var result = service.GetSupervisorAsync(supervisors.First().Id, false).Result;

                // Assert
                Assert.True(result.IsSameAs(supervisors.First()));
            }
        }
예제 #4
0
        public void GetSupervisorThatDoesNotExist()
        {
            CreateSupervisorFixtures(out var site, out var supervisors, out var modules);

            using (var mock = AutoMock.GetLoose(builder => {
                var hub = IoTHubServices.Create(modules);
                builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>();
                builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>();
                builder.RegisterInstance(hub).As <IIoTHubTwinServices>();
            })) {
                ISupervisorRegistry service = mock.Create <SupervisorRegistry>();

                // Run
                var t = service.GetSupervisorAsync("test", false);

                // Assert
                Assert.NotNull(t.Exception);
                Assert.IsType <AggregateException>(t.Exception);
                Assert.IsType <ResourceNotFoundException>(t.Exception.InnerException);
            }
        }
예제 #5
0
        public void QuerySupervisorsByNoneExistantSiteId()
        {
            CreateSupervisorFixtures(out var site, out var supervisors, out var modules, true);

            using (var mock = AutoMock.GetLoose(builder => {
                var hub = IoTHubServices.Create(modules);
                builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>();
                builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>();
                builder.RegisterInstance(hub).As <IIoTHubTwinServices>();
            })) {
                ISupervisorRegistry service = mock.Create <SupervisorRegistry>();

                // Run
                var records = service.QuerySupervisorsAsync(new SupervisorQueryModel {
                    SiteId = "test"
                }, false, null).Result;

                // Assert
                Assert.True(records.Items.Count == 0);
            }
        }
 /// <summary>
 /// Create controller for supervisor services
 /// </summary>
 /// <param name="supervisors"></param>
 /// <param name="diagnostics"></param>
 public SupervisorsController(ISupervisorRegistry supervisors,
                              ISupervisorDiagnostics diagnostics)
 {
     _supervisors = supervisors;
     _diagnostics = diagnostics;
 }