/// <summary> /// Find discoverer. /// </summary> /// <param name="service"></param> /// <param name="discovererId"></param> /// <param name="ct"></param> /// <returns></returns> public static async Task <DiscovererModel> FindDiscovererAsync( this IDiscovererRegistry service, string discovererId, CancellationToken ct = default) { try { return(await service.GetDiscovererAsync(discovererId, ct)); } catch (ResourceNotFoundException) { return(null); } }
/// <summary> /// Create cloud side discovery services /// </summary> /// <param name="registry"></param> /// <param name="client"></param> /// <param name="logger"></param> public DiscoveryMultiplexer(IDiscovererRegistry registry, IDiscovererClient client, ILogger logger) { _registry = registry ?? throw new ArgumentNullException(nameof(registry)); _client = client ?? throw new ArgumentNullException(nameof(client)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _discoverers = new List <string>(); _timer = new Timer(_ => Task.Run(OnTimerFiredAsync), null, 0, -1); }
public void ListAllDiscoverersUsingQuery() { CreateDiscovererFixtures(out _, out var discoverers, out var modules); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(modules)); IDiscovererRegistry service = mock.Create <DiscovererRegistry>(); // Run var records = service.QueryDiscoverersAsync(null, null).Result; // Assert Assert.True(discoverers.IsSameAs(records.Items)); } }
public void GetDiscovererThatExists() { CreateDiscovererFixtures(out _, out var discoverers, out var modules); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(modules)); IDiscovererRegistry service = mock.Create <DiscovererRegistry>(); // Run var result = service.GetDiscovererAsync(discoverers.First().Id).Result; // Assert Assert.True(result.IsSameAs(discoverers.First())); } }
/// <summary> /// Returns all discoverer ids from the registry /// </summary> /// <param name="service"></param> /// <param name="ct"></param> /// <returns></returns> public static async Task <List <string> > ListAllDiscovererIdsAsync( this IDiscovererRegistry service, CancellationToken ct = default) { var discoverers = new List <string>(); var result = await service.ListDiscoverersAsync(null, null, ct); discoverers.AddRange(result.Items.Select(s => s.Id)); while (result.ContinuationToken != null) { result = await service.ListDiscoverersAsync(result.ContinuationToken, null, ct); discoverers.AddRange(result.Items.Select(s => s.Id)); } return(discoverers); }
/// <summary> /// List all discoverers /// </summary> /// <param name="service"></param> /// <param name="onlyServerState"></param> /// <param name="ct"></param> /// <returns></returns> public static async Task <List <DiscovererModel> > ListAllDiscoverersAsync( this IDiscovererRegistry service, bool onlyServerState = false, CancellationToken ct = default) { var discoverers = new List <DiscovererModel>(); var result = await service.ListDiscoverersAsync(null, onlyServerState, null, ct); discoverers.AddRange(result.Items); while (result.ContinuationToken != null) { result = await service.ListDiscoverersAsync(result.ContinuationToken, onlyServerState, null, ct); discoverers.AddRange(result.Items); } return(discoverers); }
public void QueryDiscoverersByDiscoveryMode() { CreateDiscovererFixtures(out var site, out var discoverers, out var modules); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(modules)); IDiscovererRegistry service = mock.Create <DiscovererRegistry>(); // Run var records = service.QueryDiscoverersAsync(new DiscovererQueryModel { Discovery = DiscoveryMode.Network }, null).Result; // Assert Assert.True(records.Items.Count == discoverers.Count(x => x.Discovery == DiscoveryMode.Network)); } }
public void GetDiscovererThatDoesNotExist() { CreateDiscovererFixtures(out _, out _, out var modules); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(modules)); IDiscovererRegistry service = mock.Create <DiscovererRegistry>(); // Run var t = service.GetDiscovererAsync("test"); // Assert Assert.NotNull(t.Exception); Assert.IsType <AggregateException>(t.Exception); Assert.IsType <ResourceNotFoundException>(t.Exception.InnerException); } }
public void QueryDiscoverersByNoneExistantSiteId() { CreateDiscovererFixtures(out _, out _, out var modules, true); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(modules)); IDiscovererRegistry service = mock.Create <DiscovererRegistry>(); // Run var records = service.QueryDiscoverersAsync(new DiscovererQueryModel { SiteId = "test" }, null).Result; // Assert Assert.True(records.Items.Count == 0); } }
public void QueryDiscoverersBySiteId() { CreateDiscovererFixtures(out var site, out var discoverers, out var modules); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(modules)); IDiscovererRegistry service = mock.Create <DiscovererRegistry>(); // Run var records = service.QueryDiscoverersAsync(new DiscovererQueryModel { SiteId = site }, false, null).Result; // Assert Assert.True(discoverers.IsSameAs(records.Items)); } }
public void ListAllDiscoverersUsingQuery() { CreateDiscovererFixtures(out _, out var discoverers, 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>(); })) { IDiscovererRegistry service = mock.Create <DiscovererRegistry>(); // Run var records = service.QueryDiscoverersAsync(null, null).Result; // Assert Assert.True(discoverers.IsSameAs(records.Items)); } }
public void GetDiscovererThatExists() { CreateDiscovererFixtures(out _, out var discoverers, 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>(); })) { IDiscovererRegistry service = mock.Create <DiscovererRegistry>(); // Run var result = service.GetDiscovererAsync(discoverers.First().Id).Result; // Assert Assert.True(result.IsSameAs(discoverers.First())); } }
public void GetDiscovererThatDoesNotExist() { CreateDiscovererFixtures(out _, out _, 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>(); })) { IDiscovererRegistry service = mock.Create <DiscovererRegistry>(); // Run var t = service.GetDiscovererAsync("test"); // Assert Assert.NotNull(t.Exception); Assert.IsType <AggregateException>(t.Exception); Assert.IsType <ResourceNotFoundException>(t.Exception.InnerException); } }
public void QueryDiscoverersByNoneExistantSiteId() { CreateDiscovererFixtures(out _, out _, 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>(); })) { IDiscovererRegistry service = mock.Create <DiscovererRegistry>(); // Run var records = service.QueryDiscoverersAsync(new DiscovererQueryModel { SiteId = "test" }, null).Result; // Assert Assert.True(records.Items.Count == 0); } }
public void QueryDiscoverersByDiscoveryMode() { CreateDiscovererFixtures(out var site, out var discoverers, 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>(); })) { IDiscovererRegistry service = mock.Create <DiscovererRegistry>(); // Run var records = service.QueryDiscoverersAsync(new DiscovererQueryModel { Discovery = DiscoveryMode.Network }, null).Result; // Assert Assert.True(records.Items.Count == discoverers.Count(x => x.RequestedMode == DiscoveryMode.Network)); } }
/// <summary> /// Create controller for discovery services /// </summary> /// <param name="discoverers"></param> /// <param name="events"></param> public DiscoverersController(IDiscovererRegistry discoverers, IGroupRegistration events) { _discoverers = discoverers; _events = events; }
/// <summary> /// Create controller for discovery services /// </summary> /// <param name="discoverers"></param> public DiscoveryController(IDiscovererRegistry discoverers) { _discoverers = discoverers; }