public void FileSystemDispatcher_Picks_Up_Existing_Messages() { BinaryMessageEncodingBindingElement element = new BinaryMessageEncodingBindingElement(); MessageEncoder encoder = element.CreateMessageEncoderFactory().Encoder; ServiceBusRuntime dispatchRuntime = new ServiceBusRuntime(new DirectDeliveryCore()); var subscription = new SubscriptionEndpoint(Guid.NewGuid(), "File System Dispatcher", null, null, typeof(IContract), new FileSystemDispatcher(new ConverterMessageDeliveryWriterFactory(encoder,typeof(IContract)),Config.IncomingFilePath), new PassThroughMessageFilter()); dispatchRuntime.Subscribe(subscription); ServiceBusRuntime listenerRuntime = new ServiceBusRuntime(new DirectDeliveryCore()); var listener = new ListenerEndpoint(Guid.NewGuid(), "File System Listener", null, null, typeof(IContract), new FileSystemListener(new ConverterMessageDeliveryReaderFactory(encoder, typeof(IContract)),Config.IncomingFilePath, Config.ProcessedFilePath)); listenerRuntime.AddListener(listener); listenerRuntime.Subscribe(new SubscriptionEndpoint(Guid.NewGuid(), "Pass through", null, null, typeof(IContract), new ActionDispatcher((se, md) => { }), new PassThroughMessageFilter())); var dispatchTester = new ServiceBusTest(dispatchRuntime); var listenerTester = new ServiceBusTest(listenerRuntime); string message = "test this thing"; dispatchTester.StartAndStop(() => { dispatchRuntime.PublishOneWay(typeof(IContract), "PublishThis", message); listenerTester.WaitForDeliveries(1, TimeSpan.FromSeconds(10), () => { }); }); dispatchRuntime.RemoveSubscription(subscription); }
public void FileSystemDispatcher_Picks_Up_Existing_Messages() { BinaryMessageEncodingBindingElement element = new BinaryMessageEncodingBindingElement(); MessageEncoder encoder = element.CreateMessageEncoderFactory().Encoder; ServiceBusRuntime dispatchRuntime = new ServiceBusRuntime(new DirectDeliveryCore()); var subscription = new SubscriptionEndpoint(Guid.NewGuid(), "File System Dispatcher", null, null, typeof(IContract), new FileSystemDispatcher(new ConverterMessageDeliveryWriterFactory(encoder, typeof(IContract)), Config.IncomingFilePath), new PassThroughMessageFilter()); dispatchRuntime.Subscribe(subscription); ServiceBusRuntime listenerRuntime = new ServiceBusRuntime(new DirectDeliveryCore()); var listener = new ListenerEndpoint(Guid.NewGuid(), "File System Listener", null, null, typeof(IContract), new FileSystemListener(new ConverterMessageDeliveryReaderFactory(encoder, typeof(IContract)), Config.IncomingFilePath, Config.ProcessedFilePath)); listenerRuntime.AddListener(listener); listenerRuntime.Subscribe(new SubscriptionEndpoint(Guid.NewGuid(), "Pass through", null, null, typeof(IContract), new ActionDispatcher((se, md) => { }), new PassThroughMessageFilter())); var dispatchTester = new ServiceBusTest(dispatchRuntime); var listenerTester = new ServiceBusTest(listenerRuntime); string message = "test this thing"; dispatchTester.StartAndStop(() => { dispatchRuntime.PublishOneWay(typeof(IContract), "PublishThis", message); listenerTester.WaitForDeliveries(1, TimeSpan.FromSeconds(10), () => { }); }); dispatchRuntime.RemoveSubscription(subscription); }
public ChatServer() { BinaryMessageEncodingBindingElement element = new BinaryMessageEncodingBindingElement(); MessageEncoder encoder = element.CreateMessageEncoderFactory().Encoder; MessageDeliveryFormatter formatter = new MessageDeliveryFormatter(new ConverterMessageDeliveryReaderFactory(encoder, typeof(IChatService)), new ConverterMessageDeliveryWriterFactory(encoder, typeof(IChatService))); _serviceBus = new ServiceBusRuntime(new DirectDeliveryCore() , new WcfManagementService()); _serviceBus.AddListener(new ListenerEndpoint(Guid.NewGuid(), "Chat Service", "ChatServer", "http://localhost/chatServer", typeof(IChatService), new WcfServiceHostListener())); _serviceBus.Subscribe(new SubscriptionEndpoint(Guid.NewGuid(), "No subscribers", "ChatClient", "", typeof(IChatService), new MethodDispatcher(new UnhandledReplyHandler(_serviceBus)), new UnhandledMessageFilter(typeof(SendMessageRequest)), true)); _serviceBus.UnhandledException+= (o, ex) => { Console.WriteLine("Unhandled Exception: "+ex.ExceptionObject); }; }
public ChatServer() { BinaryMessageEncodingBindingElement element = new BinaryMessageEncodingBindingElement(); MessageEncoder encoder = element.CreateMessageEncoderFactory().Encoder; MessageDeliveryFormatter formatter = new MessageDeliveryFormatter(new ConverterMessageDeliveryReaderFactory(encoder, typeof(IChatService)), new ConverterMessageDeliveryWriterFactory(encoder, typeof(IChatService))); _serviceBus = new ServiceBusRuntime(new DirectDeliveryCore(), new WcfManagementService()); _serviceBus.AddListener(new ListenerEndpoint(Guid.NewGuid(), "Chat Service", "ChatServer", "http://localhost/chatServer", typeof(IChatService), new WcfServiceHostListener())); _serviceBus.Subscribe(new SubscriptionEndpoint(Guid.NewGuid(), "No subscribers", "ChatClient", "", typeof(IChatService), new MethodDispatcher(new UnhandledReplyHandler(_serviceBus)), new UnhandledMessageFilter(typeof(SendMessageRequest)), true)); _serviceBus.UnhandledException += (o, ex) => { Console.WriteLine("Unhandled Exception: " + ex.ExceptionObject); }; }
public void WcfListener_Publishes_Incoming_Messages_Properly() { ServiceBusRuntime runtime = new ServiceBusRuntime(new DirectDeliveryCore()); runtime.AddListener(new ListenerEndpoint("test", "NamedPipeListener", "net.pipe://localhost/remotehello", typeof(IContract), new WcfServiceHostListener())); string message = "This is a test"; runtime.Subscribe(new SubscriptionEndpoint("test subscription", null, null, typeof(IContract), new ActionDispatcher((se, md) => { Assert.AreEqual(message, (string)md.Message); }), new PassThroughMessageFilter())); ServiceBusTest tester = new ServiceBusTest(runtime); tester.WaitForDeliveries(1, TimeSpan.FromSeconds(5), () => { Service.Use<IContract>("NamedPipeClient", contract => { contract.PublishThis(message); }); }); }
public void WcfListener_Can_Listen_For_Raw_Messages() { ServiceBusRuntime runtime = new ServiceBusRuntime(new DirectDeliveryCore()); runtime.AddListener(new ListenerEndpoint("test", "PassThroughListener", "net.pipe://localhost/passthrough", typeof(IPassThroughServiceContract), new WcfServiceHostListener())); string action = "http://someaction"; string body = "some body"; runtime.Subscribe(new SubscriptionEndpoint("test subscription", null, null, typeof(IContract), new ActionDispatcher((se, md) => { Assert.AreEqual(action, ((Message)md.Message).Headers.Action); Assert.AreEqual(body, ((Message)md.Message).GetBody<string>()); }), new PassThroughMessageFilter())); ServiceBusTest tester = new ServiceBusTest(runtime); tester.WaitForDeliveries(1, TimeSpan.FromSeconds(5), () => { Service.Use<IPassThroughServiceContract>("PassThroughClient", contract => { Message message = Message.CreateMessage(MessageVersion.Default, action, body); contract.Send(message); }); }); }
public void WcfListener_Publishes_Incoming_Messages_Properly() { ServiceBusRuntime runtime = new ServiceBusRuntime(new DirectDeliveryCore()); runtime.AddListener(new ListenerEndpoint("test", "NamedPipeListener", "net.pipe://localhost/remotehello", typeof(IContract), new WcfServiceHostListener())); string message = "This is a test"; runtime.Subscribe(new SubscriptionEndpoint("test subscription", null, null, typeof(IContract), new ActionDispatcher((se, md) => { Assert.AreEqual(message, (string)md.Message); }), new PassThroughMessageFilter())); ServiceBusTest tester = new ServiceBusTest(runtime); tester.WaitForDeliveries(1, TimeSpan.FromSeconds(5), () => { Service.Use <IContract>("NamedPipeClient", contract => { contract.PublishThis(message); }); }); }
public void WcfListener_Can_Listen_For_Raw_Messages() { ServiceBusRuntime runtime = new ServiceBusRuntime(new DirectDeliveryCore()); runtime.AddListener(new ListenerEndpoint("test", "PassThroughListener", "net.pipe://localhost/passthrough", typeof(IPassThroughServiceContract), new WcfServiceHostListener())); string action = "http://someaction"; string body = "some body"; runtime.Subscribe(new SubscriptionEndpoint("test subscription", null, null, typeof(IContract), new ActionDispatcher((se, md) => { Assert.AreEqual(action, ((Message)md.Message).Headers.Action); Assert.AreEqual(body, ((Message)md.Message).GetBody <string>()); }), new PassThroughMessageFilter())); ServiceBusTest tester = new ServiceBusTest(runtime); tester.WaitForDeliveries(1, TimeSpan.FromSeconds(5), () => { Service.Use <IPassThroughServiceContract>("PassThroughClient", contract => { Message message = Message.CreateMessage(MessageVersion.Default, action, body); contract.Send(message); }); }); }
public void AddTestListener() { serviceBusRuntime.AddListener(new ListenerEndpoint(Guid.NewGuid(), "test", "NamedPipeListener", "net.pipe://localhost/servicebus/testlistener", typeof(IContract), new WcfServiceHostListener())); }