public void RejectNewApplication() { CreateAppFixtures(out var site, out var super, out var apps, out var devices); using (var mock = AutoMock.GetLoose()) { var hub = IoTHubServices.Create(devices); mock.Provide <IIoTHubTwinServices>(hub); mock.Provide <IApplicationRepository, ApplicationTwins>(); IApplicationRegistry service = mock.Create <ApplicationRegistry>(); var app = apps.First(); service.RejectApplicationAsync(app.ApplicationId, false, null).Wait(); var registration = service.GetApplicationAsync(app.ApplicationId, false).Result; Assert.Equal(ApplicationState.Rejected, registration.Application.State); // reject approved app should fail Assert.ThrowsAsync <ResourceInvalidStateException>( () => service.ApproveApplicationAsync(app.ApplicationId, false, null)).Wait(); service.ApproveApplicationAsync(app.ApplicationId, true, null).Wait(); registration = service.GetApplicationAsync(app.ApplicationId, false).Result; Assert.Equal(ApplicationState.Approved, registration.Application.State); } }
public void RegisterApplication() { CreateAppFixtures(out var site, out var super, out var apps, out var devices); using (var mock = AutoMock.GetLoose()) { var hub = new IoTHubServices(); mock.Provide <IIoTHubTwinServices>(hub); mock.Provide <IApplicationRepository, ApplicationTwins>(); IApplicationRegistry service = mock.Create <ApplicationRegistry>(); // Run foreach (var app in apps) { var record = service.RegisterApplicationAsync( app.ToRegistrationRequest()).Result; } // Assert Assert.Equal(apps.Count, hub.Devices.Count()); var records = service.ListApplicationsAsync(null, null).Result; // Assert Assert.True(apps.IsSameAs(records.Items)); } }
public void RegisterApplication() { CreateAppFixtures(out var site, out var super, out var apps, out var devices); var hub = new IoTHubServices(); using (var mock = AutoMock.GetLoose(builder => { builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>(); builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>(); builder.RegisterInstance(hub).As <IIoTHubTwinServices>(); builder.RegisterType <ApplicationTwins>().As <IApplicationRepository>(); })) { IApplicationRegistry service = mock.Create <ApplicationRegistry>(); // Run foreach (var app in apps) { var record = service.RegisterApplicationAsync( app.ToRegistrationRequest()).Result; } // Assert Assert.Equal(apps.Count, hub.Devices.Count()); var records = service.ListApplicationsAsync(null, null).Result; // Assert Assert.True(apps.IsSameAs(records.Items)); } }
public async Task BadArgShouldThrowExceptions() { using (var mock = AutoMock.GetLoose()) { var hub = new IoTHubServices(); mock.Provide <IIoTHubTwinServices>(hub); mock.Provide <IApplicationRepository, ApplicationTwins>(); IApplicationRegistry service = mock.Create <ApplicationRegistry>(); await Assert.ThrowsAsync <ArgumentNullException>( () => service.RegisterApplicationAsync(null)); await Assert.ThrowsAsync <ArgumentNullException>( () => service.RejectApplicationAsync(null, false, null)); await Assert.ThrowsAsync <ArgumentNullException>( () => service.RejectApplicationAsync("", false, null)); await Assert.ThrowsAsync <ArgumentNullException>( () => service.GetApplicationAsync(null, false)); await Assert.ThrowsAsync <ArgumentNullException>( () => service.GetApplicationAsync("", false)); await Assert.ThrowsAsync <ResourceNotFoundException>( () => service.GetApplicationAsync("abc", false)); await Assert.ThrowsAsync <ResourceNotFoundException>( () => service.GetApplicationAsync(Guid.NewGuid().ToString(), false)); } }
/// <summary> /// Setup all services used in processing /// </summary> /// <param name="mock"></param> /// <param name="registry"></param> private static IDiscoveryProcessor Setup(AutoMock mock, IoTHubServices registry) { mock.Provide <IIoTHubTwinServices>(registry); mock.Provide <IApplicationRepository, ApplicationTwins>(); mock.Provide <ISupervisorRegistry, SupervisorRegistry>(); mock.Provide <IEndpointBulkProcessor, EndpointRegistry>(); mock.Provide <IApplicationBulkProcessor, ApplicationRegistry>(); return(mock.Create <DiscoveryProcessor>()); }
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())); } }
public void ListAllTwinsUsingQuery() { CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices)); IEndpointRegistry service = mock.Create <EndpointRegistry>(); // Run var records = service.QueryEndpointsAsync(null, false, null).Result; // Assert Assert.True(endpoints.IsSameAs(records.Items)); } }
public void GetSupervisorThatExists() { CreateSupervisorFixtures(out var site, out var supervisors, out var modules); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(modules)); ISupervisorRegistry service = mock.Create <SupervisorRegistry>(); // Run var result = service.GetSupervisorAsync(supervisors.First().Id, false).Result; // Assert Assert.True(result.IsSameAs(supervisors.First())); } }
public void ListAllSupervisorsUsingQuery() { CreateSupervisorFixtures(out var site, out var supervisors, out var modules); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(modules)); ISupervisorRegistry service = mock.Create <SupervisorRegistry>(); // Run var records = service.QuerySupervisorsAsync(null, false, null).Result; // Assert Assert.True(supervisors.IsSameAs(records.Items)); } }
public void ListAllApplicationsUsingQuery() { CreateAppFixtures(out var site, out var super, out var apps, out var devices); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices)); mock.Provide <IApplicationRepository, ApplicationTwins>(); IApplicationRegistry service = mock.Create <ApplicationRegistry>(); // Run var records = service.QueryApplicationsAsync(null, null).Result; // Assert Assert.True(apps.IsSameAs(records.Items)); } }
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 GetTwinThatDoesNotExist() { CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices)); IEndpointRegistry service = mock.Create <EndpointRegistry>(); // Run var t = service.GetEndpointAsync("test", false); // Assert Assert.NotNull(t.Exception); Assert.IsType <AggregateException>(t.Exception); Assert.IsType <ResourceNotFoundException>(t.Exception.InnerException); } }
public void QueryTwinsBySecurityPolicyDifferentCase() { CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices)); IEndpointRegistry service = mock.Create <EndpointRegistry>(); // Run var records = service.QueryEndpointsAsync(new EndpointRegistrationQueryModel { SecurityPolicy = endpoints.First().Registration.Endpoint.SecurityPolicy.ToUpperInvariant() }, false, null).Result; // Assert Assert.True(records.Items.Count == 0); } }
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 DoubleApproveApplicationDoesNothing() { CreateAppFixtures(out var site, out var super, out var apps, out var devices); using (var mock = AutoMock.GetLoose()) { var hub = IoTHubServices.Create(devices); mock.Provide <IIoTHubTwinServices>(hub); mock.Provide <IApplicationRepository, ApplicationTwins>(); IApplicationRegistry service = mock.Create <ApplicationRegistry>(); var app = apps.First(); service.ApproveApplicationAsync(app.ApplicationId, false, null).Wait(); service.ApproveApplicationAsync(app.ApplicationId, false, null).Wait(); var registration = service.GetApplicationAsync(app.ApplicationId, false).Result; Assert.Equal(ApplicationState.Approved, registration.Application.State); } }
/// <summary> /// Setup all services used in processing /// </summary> /// <param name="mock"></param> /// <param name="registry"></param> private static AutoMock Setup(IoTHubServices registry, out IDiscoveryResultProcessor processor) { var mock = AutoMock.GetLoose(builder => { builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>(); builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>(); builder.RegisterInstance(registry).As <IIoTHubTwinServices>(); builder.RegisterType <ApplicationTwins>().As <IApplicationRepository>(); builder.RegisterType <DiscovererRegistry>().As <IDiscovererRegistry>(); builder.RegisterType <SupervisorRegistry>().As <ISupervisorRegistry>(); builder.RegisterType <PublisherRegistry>().As <IPublisherRegistry>(); builder.RegisterType <GatewayRegistry>().As <IGatewayRegistry>(); builder.RegisterType <EndpointRegistry>().As <IEndpointBulkProcessor>(); builder.RegisterType <ApplicationRegistry>().As <IApplicationBulkProcessor>(); }); processor = mock.Create <DiscoveryProcessor>(); return(mock); }
public void QueryTwinsBySignSecurityMode() { CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices); var count = endpoints.Count(x => x.Registration.Endpoint.SecurityMode == SecurityMode.Sign); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices)); IEndpointRegistry service = mock.Create <EndpointRegistry>(); // Run var records = service.QueryEndpointsAsync(new EndpointRegistrationQueryModel { SecurityMode = SecurityMode.Sign }, false, null).Result; // Assert Assert.Equal(count, records.Items.Count); } }
public void QueryApplicationsByDiscoveryServerApplicationType() { CreateAppFixtures(out var site, out var super, out var apps, out var devices); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices)); mock.Provide <IApplicationRepository, ApplicationTwins>(); IApplicationRegistry service = mock.Create <ApplicationRegistry>(); // Run var records = service.QueryApplicationsAsync(new ApplicationRegistrationQueryModel { ApplicationType = ApplicationType.DiscoveryServer }, null).Result; // Assert Assert.Equal(apps.Count(x => x.ApplicationType == ApplicationType.DiscoveryServer), records.Items.Count); } }
public void QueryApplicationsBySupervisorId() { CreateAppFixtures(out var site, out var super, out var apps, out var devices, true); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices)); mock.Provide <IApplicationRepository, ApplicationTwins>(); IApplicationRegistry service = mock.Create <ApplicationRegistry>(); // Run var records = service.QueryApplicationsAsync(new ApplicationRegistrationQueryModel { SiteOrSupervisorId = super }, null).Result; // Assert Assert.True(apps.IsSameAs(records.Items)); } }
public void QueryApplicationsByApplicationNameDifferentCase() { CreateAppFixtures(out var site, out var super, out var apps, out var devices); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices)); mock.Provide <IApplicationRepository, ApplicationTwins>(); IApplicationRegistry service = mock.Create <ApplicationRegistry>(); // Run var records = service.QueryApplicationsAsync(new ApplicationRegistrationQueryModel { ApplicationName = apps.First().ApplicationName.ToUpperInvariant() }, null).Result; // Assert Assert.True(records.Items.Count == 0); } }
public void ListAllTwinsUsingQuery() { CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices); using (var mock = AutoMock.GetLoose(builder => { var hub = IoTHubServices.Create(devices); builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>(); builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>(); builder.RegisterInstance(hub).As <IIoTHubTwinServices>(); })) { IEndpointRegistry service = mock.Create <EndpointRegistry>(); // Run var records = service.QueryEndpointsAsync(null, false, null).Result; // Assert Assert.True(endpoints.IsSameAs(records.Items)); } }
public void DisableEnableApplication() { CreateAppFixtures(out var site, out var super, out var apps, out var devices); using (var mock = AutoMock.GetLoose()) { var hub = IoTHubServices.Create(devices); mock.Provide <IIoTHubTwinServices>(hub); mock.Provide <IApplicationRepository, ApplicationTwins>(); IApplicationRegistry service = mock.Create <ApplicationRegistry>(); var app = apps.First(); service.DisableApplicationAsync(app.ApplicationId, null).Wait(); var registration = service.GetApplicationAsync(app.ApplicationId, false).Result; Assert.NotNull(registration.Application.NotSeenSince); service.EnableApplicationAsync(app.ApplicationId, null).Wait(); registration = service.GetApplicationAsync(app.ApplicationId, false).Result; Assert.Null(registration.Application.NotSeenSince); } }
public void GetTwinThatExists() { CreateEndpointFixtures(out var site, out var super, out var endpoints, out var devices); var first = endpoints.First(); var id = EndpointInfoModelEx.CreateEndpointId(first.ApplicationId, first.Registration.EndpointUrl, first.Registration.Endpoint.SecurityMode, first.Registration.Endpoint.SecurityPolicy); using (var mock = AutoMock.GetLoose()) { mock.Provide <IIoTHubTwinServices>(IoTHubServices.Create(devices)); IEndpointRegistry service = mock.Create <EndpointRegistry>(); // Run var result = service.GetEndpointAsync(id, false).Result; // Assert Assert.True(result.IsSameAs(endpoints.First())); } }
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 ListAllSupervisors() { 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.ListSupervisorsAsync(null, false, null).Result; // Assert Assert.True(supervisors.IsSameAs(records.Items)); } }
public void ListAllApplicationsUsingQuery() { CreateAppFixtures(out var site, out var super, out var apps, out var devices); using (var mock = AutoMock.GetLoose(builder => { var hub = IoTHubServices.Create(devices); builder.RegisterType <NewtonSoftJsonConverters>().As <IJsonSerializerConverterProvider>(); builder.RegisterType <NewtonSoftJsonSerializer>().As <IJsonSerializer>(); builder.RegisterInstance(hub).As <IIoTHubTwinServices>(); builder.RegisterType <ApplicationTwins>().As <IApplicationRepository>(); })) { IApplicationRegistry service = mock.Create <ApplicationRegistry>(); // Run var records = service.QueryApplicationsAsync(null, null).Result; // Assert Assert.True(apps.IsSameAs(records.Items)); } }