public Builder WithTransport <TTransport>() where TTransport : ITransportConfig { var transport = Activator.CreateInstance <TTransport>(); if (null != transport.SenderFactory) { SenderCache.AddFactory(transport.SenderFactory); } if (null != transport.ReceiverFactory) { ReceiverCache.AddFactory(transport.ReceiverFactory); } if (null != transport.PublisherFactory) { PublisherCache.AddFactory(transport.PublisherFactory); } if (null != transport.SubscriberFactory) { SubscriberCache.AddFactory(transport.SubscriberFactory); } return(this); }
public Builder WithTransport <TTransport>(TTransport transport, Action <ITransportSetup> config) where TTransport : ITransportConfig { if (null != transport.SenderFactory) { SenderCache.AddFactory(transport.SenderFactory); } if (null != transport.ReceiverFactory) { ReceiverCache.AddFactory(transport.ReceiverFactory); } if (null != transport.PublisherFactory) { PublisherCache.AddFactory(transport.PublisherFactory); } if (null != transport.SubscriberFactory) { SubscriberCache.AddFactory(transport.SubscriberFactory); } config(transport.Configurer); return(this); }
public void AddReceiver_WithNoMatchingFactory_ThrowsMissingFactoryException() { // Arrange var cache = new ReceiverCache(monitorCache); // Act TestDelegate addReceiver = () => cache.AddReceiver <IReceiver>(address); // Assert Assert.That(addReceiver, Throws.TypeOf <MissingFactoryException>()); }
public void AddFactory_WithNullFactory_ThrowsArgumentNullExecption() { // Arrange var cache = new ReceiverCache(monitorCache); // Act TestDelegate addFactory = () => cache.AddFactory(null); // Assert Assert.That(addFactory, Throws.ArgumentNullException); }
public void AddReceiver_WithNullAddress_ThrowsArgumentNullException() { // Arrange var cache = new ReceiverCache(monitorCache); // Act TestDelegate addReceiver = () => cache.AddReceiver <IReceiver>(null); // Assert Assert.That(addReceiver, Throws.ArgumentNullException); }
public void AddFactory_WithFactory_AddsMonitorToMonitorCache() { // Arrange var cache = new ReceiverCache(monitorCache); // Act cache.AddFactory(receiverFactory); // Assert mockMonitorCache.Verify(m => m.AddMonitor(It.IsIn(receiverMonitor)), Times.Once); }
public void AddFactory_WithFactory_AddsToFactoryCollection() { // Arrange var cache = new ReceiverCache(monitorCache); // Act cache.AddFactory(receiverFactory); // Assert CollectionAssert.Contains(cache.ReceiverFactories, receiverFactory); Assert.That(cache.ReceiverFactories.Count, Is.EqualTo(1)); }
public void AddReceiver_WithFactory_CallsFactoryCreateReceiver() { // Arrange var cache = new ReceiverCache(monitorCache); cache.AddFactory(receiverFactory); // Act cache.AddReceiver <IReceiver>(address); // Assert mockReceiverFactory.Verify(m => m.CreateReceiver(It.IsIn(address)), Times.Once); }
public void AddReceiver_WithExistingReceiverForAddress_ThrowsInvalidOperationException() { // Arrange var address = TcpAddress.Wildcard(5555); var cache = new ReceiverCache(monitorCache); cache.AddFactory(receiverFactory); cache.AddReceiver <IReceiver>(address); // Act TestDelegate addReceiver = () => cache.AddReceiver <IReceiver>(address); // Assert Assert.That(addReceiver, Throws.InvalidOperationException); }
public void AddFactory_WithFactoryAlreadyAdded_DoesNothing() { // Arrange var cache = new ReceiverCache(monitorCache); cache.AddFactory(receiverFactory); // Act cache.AddFactory(receiverFactory); // Assert CollectionAssert.Contains(cache.ReceiverFactories, receiverFactory); Assert.That(cache.ReceiverFactories.Count, Is.EqualTo(1)); mockMonitorCache.Verify(m => m.AddMonitor(It.IsIn(receiverMonitor)), Times.Once); }
public Builder(string name) { this.name = name; TopicRouter = new TopicRouter(); MonitorCache = new MonitorCache(); RequestRouter = new RequestRouter(); PackageFactory = new PackageFactory(); TopicDispatcher = new TopicDispatcher(); RequestDispatcher = new RequestDispatcher(); SubscriptionsCache = new SubscriptionsCache(); SerializerCache = new SerializerCache(); SenderCache = new SenderCache(RequestRouter, MonitorCache); ReceiverCache = new ReceiverCache(MonitorCache); PublisherCache = new PublisherCache(MonitorCache); SubscriberCache = new SubscriberCache(TopicRouter, MonitorCache, SubscriptionsCache); }
public Builder WithReceiver <TReceiver>(IAddress address) where TReceiver : IReceiver { ReceiverCache.AddReceiver <TReceiver>(address); return(this); }