Exemplo n.º 1
0
            async Task CheckClientRef(Func <IClientObservable, object> buildMessage)
            {
                var actor = system.FreshActorOf <ITestActor>();

                using (var observable = await system.CreateObservable())
                {
                    await actor.Tell(buildMessage(observable));

                    Notification @event = null;

                    var done         = new AutoResetEvent(false);
                    var subscription = observable.Subscribe((Notification e) =>
                    {
                        @event = e;
                        done.Set();
                    });

                    await actor.Tell(new Publish { Text = "c-a" });

                    done.WaitOne(TimeSpan.FromMilliseconds(100));
                    Assert.That(@event.Text, Is.EqualTo("c-a"));

                    subscription.Dispose();
                    await actor.Tell(new Publish { Text = "kaboom" });

                    done.WaitOne(TimeSpan.FromMilliseconds(100));
                    Assert.That(@event.Text, Is.EqualTo("c-a"));
                }
            }
Exemplo n.º 2
0
            public async void Client_to_actor()
            {
                var actor = system.FreshActorOf <TestActor>();

                using (var observable = await system.CreateObservable())
                {
                    await actor.Tell(new Attach { Observer = observable.Ref });

                    Notification @event = null;

                    var done         = new AutoResetEvent(false);
                    var subscription = observable.Subscribe((Notification e) =>
                    {
                        @event = e;
                        done.Set();
                    });

                    await actor.Tell(new Publish { Text = "c-a" });

                    done.WaitOne(TimeSpan.FromMilliseconds(100));
                    Assert.That(@event.Text, Is.EqualTo("c-a"));

                    subscription.Dispose();
                    await actor.Tell(new Publish { Text = "kaboom" });

                    done.WaitOne(TimeSpan.FromMilliseconds(100));
                    Assert.That(@event.Text, Is.EqualTo("c-a"));
                }
            }