public void RegisterManagementProcessors_RegistersManagementProcessor_WhenEntityHasDeliveryQueue() { IEntity testEntity = Substitute.For <IEntity>(); testEntity.Name.Returns("zb"); testEntity.DeliveryQueue.Returns(new DeliveryQueue()); var testEntities = new List <(string Address, IEntity entity)> { ("zb", testEntity) }; IEntityLookup fakeEntityLookup = Substitute.For <IEntityLookup>(); fakeEntityLookup.GetEnumerator().Returns(testEntities.GetEnumerator()); ILoggerProvider fakeLoggerProvider = Substitute.For <ILoggerProvider>(); IContainerHost fakeHost = Substitute.For <IContainerHost>(); fakeHost.RegisterManagementProcessors(fakeEntityLookup, fakeLoggerProvider); fakeHost.ShouldSatisfyAllConditions( () => fakeHost .Received(1) .RegisterRequestProcessor("zb/$management", Arg.Any <ManagementRequestProcessor>()), () => fakeLoggerProvider .Received(1) .CreateLogger(nameof(ManagementRequestProcessor)) ); }
internal static void RegisterManagementProcessors(this IContainerHost host, IEntityLookup entityLookup, ILoggerProvider loggerProvider) { foreach ((string Address, IEntity Entity)item in entityLookup) { if (item.Entity.DeliveryQueue != null) { host.RegisterRequestProcessor(item.Address + "/$management", new ManagementRequestProcessor(loggerProvider)); } } }
public void RegisterManagementProcessors_DoesNotRegisterManagementProcessor_WhenEntityDoesNotHaveDeliveryQueue() { IEntity testEntity = Substitute.For <IEntity>(); testEntity.Name.Returns("a"); testEntity.DeliveryQueue.Returns((DeliveryQueue)null); var testEntities = new List <(string Address, IEntity entity)> { ("a", testEntity) }; IEntityLookup fakeEntityLookup = Substitute.For <IEntityLookup>(); fakeEntityLookup.GetEnumerator().Returns(testEntities.GetEnumerator()); ILoggerProvider fakeLoggerProvider = Substitute.For <ILoggerProvider>(); IContainerHost fakeHost = Substitute.For <IContainerHost>(); fakeHost.RegisterManagementProcessors(fakeEntityLookup, fakeLoggerProvider); fakeHost.DidNotReceive() .RegisterRequestProcessor( Arg.Any <string>(), Arg.Any <ManagementRequestProcessor>() ); }