public async Task Should_publish_the_completed_event() { _harness = new InMemoryTestHarness(); _activity = _harness.Activity <TestActivity, TestArguments, TestLog>(); await _harness.Start(); _completed = _harness.SubscribeHandler <RoutingSlipCompleted>(); _activityCompleted = _harness.SubscribeHandler <RoutingSlipActivityCompleted>(); _trackingNumber = NewId.NextGuid(); var builder = new RoutingSlipBuilder(_trackingNumber); builder.AddSubscription(_harness.BusAddress, RoutingSlipEvents.All); builder.AddActivity(_activity.Name, _activity.ExecuteAddress, new { Value = "Hello" }); builder.AddVariable("Variable", "Knife"); await _harness.Bus.Execute(builder.Build()); await _completed; }
public async void InMemory() { var counter = new FaultCounter(); var harness = new InMemoryTestHarness(); try { harness.OnConfigureInMemoryBus += cfg => cfg.UseRetry(x => { x.Immediate(1); x.ConnectRetryObserver(new RetryObserver(counter)); }); harness.OnConfigureInMemoryReceiveEndpoint += cfg => harness.Handler <PingMessage>(cfg, ctx => throw new Exception()); await harness.Start(); var faultHandlerTask = harness.SubscribeHandler <Fault <PingMessage> >(); await harness.InputQueueSendEndpoint.Send(new PingMessage(), ctx => { ctx.ResponseAddress = harness.BusAddress; ctx.FaultAddress = harness.BusAddress; }); await faultHandlerTask; Assert.Equal(1, counter.Faults); } finally { await harness.Stop(); } }
public async Task Send_message_to_test_consumer() { _store = new InMemoryAuditStore(); _harness = new InMemoryTestHarness(); _harness.OnConnectObservers += bus => { bus.ConnectSendAuditObservers(_store); bus.ConnectConsumeAuditObserver(_store); }; _harness.Consumer <TestConsumer>(); await _harness.Start(); var response = _harness.SubscribeHandler <B>(); await _harness.InputQueueSendEndpoint.Send(new A(), x => x.ResponseAddress = _harness.BusAddress); await response; }
public async Task Send_message_to_test_consumer() { _store = new InMemoryAuditStore(); _harness = new InMemoryTestHarness(); _harness.OnConfigureInMemoryBus += configurator => { configurator.ConnectSendAuditObservers(_store, c => c.Exclude <B>()); configurator.ConnectConsumeAuditObserver(_store, c => c.Exclude <A>()); }; _harness.Consumer <TestConsumer>(); await _harness.Start(); Task <ConsumeContext <B> > response = _harness.SubscribeHandler <B>(); await _harness.InputQueueSendEndpoint.Send(new A(), x => x.ResponseAddress = _harness.BusAddress); await response; }