public void When_exception_is_thrown_inside_callback_executor_should_signal_error() { var errOccured = new ManualResetEventSlim(); var exec = new ActionBlockExecutor(null, new ActionBlockExecutorSettings()); var server = ServerHelpers.CreateServer(exec); exec.Error += exc => { Assert.Equal("abcdef", exc.Message); errOccured.Set(); }; server.Started += () => { throw new Exception("abcdef"); }; server.Start(); errOccured.AssertWaitFor(2000); server.Stop(); }
public void When_exception_is_thrown_inside_callback_executor_should_signal_error() { var errOccured = new ManualResetEventSlim(); var exec = new ActionBlockExecutor(null, new ActionBlockExecutorSettings()); var server = ServerHelpers.CreateServer(exec); exec.Error += exc => { Assert.Equal("abcdef", exc.Message); errOccured.Set(); }; server.Started.Subscribe(_ => { throw new Exception("abcdef"); }); server.Start(); errOccured.AssertWaitFor(2000); server.Stop(); }
public ActorClientProxyTemplate(IPEndPoint endPoint) { this.endPoint = endPoint; this.disconnected = false; this.disconnectedSubject = new AsyncSubject <Exception>(); serializer = new ProtoBufStacksSerializer(); replyHandlersByRequest = new Dictionary <long, Action <MemoryStream, Exception> >(); obsHandlers = new Dictionary <string, Action <MemoryStream> >(); exec = new ActionBlockExecutor(); exec.Error += ExecutionError; client = new ActorRemoteMessageClient( new FramedClient( new SocketClient(exec))); client.MessageReceived += MessageReceived; client.ObsMessageReceived += ObsMessageReceived; client.Disconnected.Subscribe(HandleDisconnection); }