public virtual async Task Start() { _sent = new TestSendObserver(TestTimeout); _consumed = new BusTestConsumeObserver(TestTimeout); _published = new BusTestPublishObserver(TestTimeout); PreCreateBus?.Invoke(this); _bus = CreateBus(); ConnectObservers(_bus); _busHandle = await _bus.StartAsync().ConfigureAwait(false); BusSendEndpoint = await GetSendEndpoint(_bus.Address).ConfigureAwait(false); InputQueueSendEndpoint = await GetSendEndpoint(InputQueueAddress).ConfigureAwait(false); _inputQueueSendObserver = InputQueueSendEndpoint.ConnectSendObserver(_sent); _busConsumeObserver = _bus.ConnectConsumeObserver(_consumed); _busPublishObserver = _bus.ConnectPublishObserver(_published); _busSendObserver = _bus.ConnectSendObserver(_sent); }
public RabbitMqTestFixture() { _hostAddress = new Uri("rabbitmq://[::1]/test/"); _inputQueueAddress = new Uri(_hostAddress, "input_queue"); _sendObserver = new TestSendObserver(TestTimeout); }
public async Task Should_contain_the_same_payloads() { EndpointConvention.Map <B>(InputQueueAddress); var sendObserver = new TestSendObserver(TimeSpan.FromSeconds(3)); using (Bus.ConnectSendObserver(sendObserver)) { await InputQueueSendEndpoint.Send(new A()); ISentMessage <A> a = sendObserver.Messages.Select <A>().FirstOrDefault(); ISentMessage <B> b = sendObserver.Messages.Select <B>().FirstOrDefault(); a.ShouldNotBeNull(); b.ShouldNotBeNull(); Dictionary <string, object> ah = a.Context.Headers.GetAll().ToDictionary(x => x.Key, x => x.Value); Dictionary <string, object> bh = b.Context.Headers.GetAll().ToDictionary(x => x.Key, x => x.Value); ah.ShouldContainKey("x-send-filter"); ah.ShouldContainKey("x-send-message-filter"); ah["x-send-filter"].ShouldBe("send-filter"); ah["x-send-message-filter"].ShouldBe("send-message-filter"); bh.ShouldContainKey("x-send-filter"); bh.ShouldContainKey("x-send-message-filter"); // those fails, as while they DO have ",has-consume-context" they don't have access to SomePayload bh["x-send-filter"].ShouldBe("send-filter,has-consume-context,has-some-payload:hello"); bh["x-send-message-filter"].ShouldBe("send-message-filter,has-consume-context,has-some-payload:hello"); } }
public BusTestScenario(TimeSpan timeout, IBusControl busControl) { _timeout = timeout; _busControl = busControl; Received = new ReceivedMessageList(timeout); _skipped = new ReceivedMessageList(timeout); _published = new PublishedMessageList(timeout); _tokenSource = new CancellationTokenSource(timeout); CancellationToken = _tokenSource.Token; var testSendObserver = new TestSendObserver(timeout); Sent = testSendObserver.Messages; _subjectSendEndpoint = GetSendEndpoint(testSendObserver); var consumeObserver = new TestConsumeObserver(timeout); Received = consumeObserver.Messages; busControl.ConnectConsumeObserver(consumeObserver); _busHandle = _busControl.Start(); }
async Task <ISendEndpoint> GetSendEndpoint(TestSendObserver testSendObserver) { var endpoint = await _busControl.GetSendEndpoint(new Uri("loopback://localhost/input_queue")).ConfigureAwait(false); endpoint.ConnectSendObserver(testSendObserver); return(endpoint); }
public AzureServiceBusTestFixture() { ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Http; TestTimeout = Debugger.IsAttached ? TimeSpan.FromMinutes(5) : TimeSpan.FromSeconds(60); _serviceUri = ServiceBusEnvironment.CreateServiceUri("sb", "masstransit-build", "MassTransit.AzureServiceBusTransport.Tests"); _sendObserver = new TestSendObserver(TestTimeout); }
public async Task Should_call_PreSend_and_PostSend_on_message_SendAsync() { var sendObserver = new TestSendObserver(); var address = Guid.NewGuid().ToString(); await using var testFixture = await TestFixture.CreateAsync(_testOutputHelper, builder => { builder.Services.AddSingleton(sendObserver); builder.AddProducer <TestProducer>(address) .AddSendObserver <TestSendObserver>(); }); var testProducer = testFixture.Services.GetService <TestProducer>(); await testProducer.Producer.SendAsync(new Message("foo"), testFixture.CancellationToken); Assert.True(sendObserver.PreSendCalled); Assert.True(sendObserver.PostSendCalled); }
public BusTestScenario(TimeSpan timeout, IBusControl busControl) { _timeout = timeout; _busControl = busControl; Received = new ReceivedMessageList(timeout); _skipped = new ReceivedMessageList(timeout); _published = new PublishedMessageList(timeout); _tokenSource = new CancellationTokenSource(timeout); CancellationToken = _tokenSource.Token; var testSendObserver = new TestSendObserver(timeout); Sent = testSendObserver.Messages; _subjectSendEndpoint = GetSendEndpoint(testSendObserver); var consumeObserver = new TestConsumeObserver(timeout); Received = consumeObserver.Messages; busControl.ConnectConsumeObserver(consumeObserver); _busHandle = _busControl.StartAsync(); }
public BusTestScenario(TimeSpan timeout, IBusControl busControl) { _timeout = timeout; _busControl = busControl; Received = new ReceivedMessageList(timeout); _skipped = new ReceivedMessageList(timeout); _published = new PublishedMessageList(timeout); _tokenSource = new CancellationTokenSource(timeout); CancellationToken = _tokenSource.Token; _subjectSendEndpoint = _busControl.GetSendEndpoint(new Uri("loopback://localhost/input_queue")).Result; var testSendObserver = new TestSendObserver(timeout); Sent = testSendObserver.Messages; _subjectSendEndpoint.ConnectSendObserver(testSendObserver); var consumeObserver = new TestConsumeObserver(timeout); Received = consumeObserver.Messages; busControl.ConnectConsumeObserver(consumeObserver); _busHandle = _busControl.Start(); }
async Task<ISendEndpoint> GetSendEndpoint(TestSendObserver testSendObserver) { var endpoint = await _busControl.GetSendEndpoint(new Uri("loopback://localhost/input_queue")).ConfigureAwait(false); endpoint.ConnectSendObserver(testSendObserver); return endpoint; }
public HttpBusTestFixture() { _sendObserver = new TestSendObserver(TestTimeout); _hostAddress = new Uri("http://localhost:8080"); }