public void ProxySendsCommandsAndTheyAreReceivedCorrectly() { var options = new BusOptions() { QueueName = "ProxyTestQueue02" }; var serviceMock = new OtherMicroserviceMock(); using (var host = new MicroserviceHost <OtherMicroserviceMock>(serviceMock, options)) using (var proxy = new MicroserviceProxy(options)) { host.Open(); var command = new SomeCommand() { SomeValue = "teststring" }; proxy.Execute(command); serviceMock.ReceivedFlag.WaitOne(500); Assert.True(serviceMock.SomeCommandHandlerHasBeenCalled); Assert.Equal("teststring", serviceMock.SomeCommandHandlerReceivedSomeCommand.SomeValue); } }
public void MicroServiceResponseCorrelatesToRequest() { var options = new BusOptions() { QueueName = "CallbackTest02" }; var serviceMock = new CallbackMock(); using (var host = new MicroserviceHost <CallbackMock>(serviceMock, options)) using (var proxy = new MicroserviceProxy(options)) { host.Open(); RequestCommand requestCommand = new RequestCommand { Name = "Marco" }; SlowRequestCommand slowCommand = new SlowRequestCommand { Name = "Slow" }; TestResponse slowResponse = proxy.Execute <TestResponse>(slowCommand); TestResponse response = proxy.Execute <TestResponse>(requestCommand); Assert.Equal("Hello, Marco", response.Greeting); Assert.Equal("Hello, Slow", slowResponse.Greeting); } }
public void MicroserviceHostWithoutConfiguredQueueNameFails() { var serviceMock = new ServiceWithoutQueueMock(); MicroserviceConfigurationException ex = Assert.Throws <MicroserviceConfigurationException>(() => { using (var host = new MicroserviceHost <ServiceWithoutQueueMock>(serviceMock)) { host.Open(); } }); Assert.Equal("No queue name is configured in the MicroserviceAtrribute on any Microservice interface nor in the Busoptions.", ex.Message); }
public void MicroserviceHostFailsIfRabbitMQIsNotReachable() { var serviceMock = new SomeMicroserviceMock(); var options = new BusOptions { HostName = "NonExistingName" }; MicroserviceConfigurationException ex = Assert.Throws <MicroserviceConfigurationException>(() => { using (var host = new MicroserviceHost <SomeMicroserviceMock>(serviceMock, options)) { host.Open(); } }); Assert.Equal("The Eventbus (RabbitMQ service) cannot be reached.", ex.Message); }
public void HandlerNotInInterfaceShouldNotBeTriggered2() { var options = new BusOptions() { QueueName = "TestQueue02" }; var serviceMock = new HalfServiceMock(); using (var host = new MicroserviceHost <HalfServiceMock>(serviceMock, options)) using (var proxy = new MicroserviceProxy(options)) { host.Open(); var command = new TestCommand(); proxy.Execute(command); Thread.Sleep(500); Assert.True(serviceMock.TestCommandHandlerHasBeenCalled); } }
public void HandlerNotInInterfaceShouldNotBeTriggered() { var options = new BusOptions() { QueueName = "TestQueue01" }; var serviceMock = new HalfServiceMock(); using (var host = new MicroserviceHost <HalfServiceMock>(serviceMock, options)) using (var proxy = new MicroserviceProxy(options)) { host.Open(); var command = new SomeCommand() { SomeValue = "teststring" }; Action action = () => proxy.Execute(command); Assert.Throws <MicroserviceException>(action); Assert.False(serviceMock.SomeCommandHandlerHasBeenCalled); } }
public void MicroServiceThrowsException() { // Arrange var options = new BusOptions() { QueueName = "ExceptionThrowingTest01" }; using (var host = new MicroserviceHost <ExceptionThrowingService>(options)) using (var proxy = new MicroserviceProxy(options)) { host.Open(); // Act WorkCommand command = new WorkCommand { Name = "Marco" }; Action action = () => proxy.Execute(command); // Assert Assert.Throws <NotImplementedException>(action); } }
public void ProxySendsCommands() { var options = new BusOptions() { QueueName = "ProxyTestQueue01" }; var serviceMock = new OtherMicroserviceMock(); using (var host = new MicroserviceHost <OtherMicroserviceMock>(serviceMock, options)) using (var proxy = new MicroserviceProxy(options)) { host.Open(); var command = new SomeCommand() { SomeValue = "teststring" }; proxy.Execute(command); Thread.Sleep(500); Assert.True(serviceMock.SomeCommandHandlerHasBeenCalled); } }
public void MicroserviceHostReceivesCommands() { var serviceMock = new SomeMicroserviceMock(); using (var host = new MicroserviceHost <SomeMicroserviceMock>(serviceMock)) { var options = new BusOptions() { QueueName = "microserviceQueue" }; host.Open(); var command = new SomeCommand() { SomeValue = "teststring" }; SendMessage(command, options); serviceMock.ReceivedFlag.WaitOne(500); Assert.True(serviceMock.SomeCommandHandlerHasBeenCalled); Assert.False(serviceMock.TestCommandHandlerHasBeenCalled); } }