public void PublishShouldPublishMessage() { // Arrange var mockConfiguration = new Mock<IConfiguration>(); var mockProducer = new Mock<IProducer>(); var mockContainer = new Mock<IBusContainer>(); var mockProessManagerFinder = new Mock<IProcessManagerFinder>(); mockConfiguration.Setup(x => x.GetContainer()).Returns(mockContainer.Object); mockConfiguration.Setup(x => x.GetProcessManagerFinder()).Returns(mockProessManagerFinder.Object); mockConfiguration.Setup(x => x.GetProducer()).Returns(mockProducer.Object); mockConfiguration.SetupGet(x => x.TransportSettings).Returns(new TransportSettings()); var message = new FakeMessage1(Guid.NewGuid()) { Username = "******" }; mockProducer.Setup(x => x.Publish(typeof(FakeMessage1), It.IsAny<byte[]>(), null)); // Act var bus = new MessageBus.Bus(mockConfiguration.Object); bus.Publish(message, null); // Assert mockProducer.Verify(x => x.Publish(typeof(FakeMessage1), It.IsAny<byte[]>(), null), Times.Once); }