public void Should_call_the_consumer_anonymous_method() { var actor = new SomeActorInstance(); var message = new MyMessage(); actor.LambdaMessageChannel.Send(message); actor.Future.WaitUntilCompleted(1.Seconds()).ShouldBeTrue(); actor.Future.Value.ShouldEqual(message); }
public void Should_create_a_new_consumer_instance_for_each_message() { var message = new MyMessage(); var result = MockRepository.GenerateMock<Channel<MyMessage>>(); result.Expect(x => x.Send(message)).Repeat.Twice(); var provider = MockRepository.GenerateMock<ChannelProvider<MyMessage>>(); provider.Expect(x => x.GetChannel(message)).Return(result).Repeat.Twice(); var channel = new InstanceChannel<MyMessage>(new SynchronousFiber(), provider); channel.Send(message); channel.Send(message); result.VerifyAllExpectations(); provider.VerifyAllExpectations(); }
public void Should_pull_the_matching_instance_from_the_cace() { var message = new MyMessage(); var result = MockRepository.GenerateMock<Channel<MyMessage>>(); result.Expect(x => x.Send(message)).Repeat.Twice(); var provider = MockRepository.GenerateMock<ChannelProvider<MyMessage>>(); provider.Expect(x => x.GetChannel(message)).Return(result).Repeat.Once(); KeyAccessor<MyMessage, Guid> messageKeyAccessor = x => x.Id; var channel = new InstanceChannel<MyMessage>(new SynchronousFiber(), new KeyedChannelProvider<MyMessage, Guid>(provider, messageKeyAccessor)); channel.Send(message); channel.Send(message); provider.VerifyAllExpectations(); result.VerifyAllExpectations(); }
private void Consume(MyMessage message) { _future.Complete(message); }