public void WhenSubscribingMoreThanOneObserverToTheObservableOnlyOneServerSubscriptionShouldBeSetup() { sync = TestSync.FourActors(); var subject = "eaa520002f1f42b0b5e2d0e162822780"; var payload = SamplePayload.Random(); using (NATSServer.CreateFastAndVerify(Context.Server1.Port)) { using (var cn = Context.OpenConnection(Context.Server1.Port)) { using (var observable = cn.Observe(subject)) { var interceptingOb = new TestObserver(_ => sync.SignalComplete()); var interceptingSafeOb = new TestObserver(_ => sync.SignalComplete()); observable.Subscribe(interceptingOb); observable.Subscribe(interceptingSafeOb); observable.Subscribe(_ => sync.SignalComplete()); observable.SubscribeSafe(_ => sync.SignalComplete()); cn.Publish(subject, payload); sync.WaitForAll(); Assert.Equal(1, cn.SubscriptionCount); } } } }
public void WhenSubscribingMoreThanOneObserverToTheObservableOnlyOneServerSubscriptionShouldBeSetup() { sync = TestSync.FourActors(); var subject = "42016e8229d340c9869c8c2e30fec4f6"; var payload = SamplePayload.Random(); using (Context.StartStreamingServerWithEmbedded(Context.Server1)) { using (var cn = Context.GetStanConnection(Context.Server1)) { var initialSubscriptionCount = cn.NATSConnection.SubscriptionCount; using (var observable = cn.Observe(subject)) { var interceptingOb = new TestObserver(_ => sync.SignalComplete()); var interceptingSafeOb = new TestObserver(_ => sync.SignalComplete()); observable.Subscribe(interceptingOb); observable.Subscribe(interceptingSafeOb); observable.Subscribe(_ => sync.SignalComplete()); observable.SubscribeSafe(_ => sync.SignalComplete()); cn.Publish(subject, payload); sync.WaitForAll(); Assert.Equal(1, cn.NATSConnection.SubscriptionCount - initialSubscriptionCount); } } } }
public void WhenPublishingAllSubscribedObserversShouldGetTheMessage() { sync = TestSync.FourActors(); var subject = "132dc3101ef74ede90913c70baa542de"; var payload = SamplePayload.Random(); using (NATSServer.CreateFastAndVerify(Context.Server1.Port)) { using (var cn = Context.OpenConnection(Context.Server1.Port)) { using (var observable = cn.Observe(subject)) { var interceptingOb = new TestObserver(_ => sync.SignalComplete()); var interceptingSafeOb = new TestObserver(_ => sync.SignalComplete()); Msg delegatingObIntercept = null, safeDelegatingObIntercept = null; observable.Subscribe(interceptingOb); observable.SubscribeSafe(interceptingSafeOb); observable.Subscribe(msg => { delegatingObIntercept = msg; sync.SignalComplete(); }); observable.SubscribeSafe(msg => { safeDelegatingObIntercept = msg; sync.SignalComplete(); }); cn.Publish(subject, payload); sync.WaitForAll(); Assert.Equal(payload, interceptingOb.OnNextResults.Single()); Assert.Equal(payload, interceptingSafeOb.OnNextResults.Single()); Assert.Equal(payload, delegatingObIntercept); Assert.Equal(payload, safeDelegatingObIntercept); } } } }
public void WhenPublishingAllSubscribedObserversShouldGetTheMessage() { sync = TestSync.FourActors(); var subject = "008f9155d7b84821a26d2e41f73a9a7f"; var payload = SamplePayload.Random(); using (Context.StartStreamingServerWithEmbedded(Context.Server1)) { using (var cn = Context.GetStanConnection(Context.Server1)) { using (var observable = cn.Observe(subject)) { var interceptingOb = new TestObserver(_ => sync.SignalComplete()); var interceptingSafeOb = new TestObserver(_ => sync.SignalComplete()); StanMsg delegatingObIntercept = null, safeDelegatingObIntercept = null; observable.Subscribe(interceptingOb); observable.SubscribeSafe(interceptingSafeOb); observable.Subscribe(msg => { delegatingObIntercept = msg; sync.SignalComplete(); }); observable.SubscribeSafe(msg => { safeDelegatingObIntercept = msg; sync.SignalComplete(); }); cn.Publish(subject, payload); sync.WaitForAll(); Assert.Equal(payload, interceptingOb.OnNextResults.Single()); Assert.Equal(payload, interceptingSafeOb.OnNextResults.Single()); Assert.Equal(payload, delegatingObIntercept); Assert.Equal(payload, safeDelegatingObIntercept); } } } }