Exemplo n.º 1
0
        private static WampPubSubClientFactory <MockRaw> GetClientFactory(MockWampPubSubRequestManager <MockRaw> requestManager)
        {
            WampPubSubClientFactory <MockRaw> clientFactory =
                new WampPubSubClientFactory <MockRaw>
                    (new MockWampPubSubServerProxyFactory
                        (client => requestManager.GetServer(client)),
                    new MockRawFormatter());

            return(clientFactory);
        }
Exemplo n.º 2
0
        public void BeforeSubscribeCallNoSubscriptionsAreMade(string topicUri)
        {
            MockWampPubSubRequestManager<MockRaw> requestManager =
                new MockWampPubSubRequestManager<MockRaw>();

            WampPubSubClientFactory<MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject<object> subject = clientFactory.GetSubject<object>(topicUri, DummyConnection<MockRaw>.Instance);

            Assert.That(requestManager.Subscriptions, Is.Empty);
            Assert.That(requestManager.SubscriptionRemovals, Is.Empty);
            Assert.That(requestManager.Publications, Is.Empty);
        }
Exemplo n.º 3
0
        public void BeforeSubscribeCallNoSubscriptionsAreMade(string topicUri)
        {
            MockWampPubSubRequestManager <MockRaw> requestManager =
                new MockWampPubSubRequestManager <MockRaw>();

            WampPubSubClientFactory <MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject <object> subject = clientFactory.GetSubject <object>(topicUri, DummyConnection <MockRaw> .Instance);

            Assert.That(requestManager.Subscriptions, Is.Empty);
            Assert.That(requestManager.SubscriptionRemovals, Is.Empty);
            Assert.That(requestManager.Publications, Is.Empty);
        }
Exemplo n.º 4
0
        public void SubscribeCallsServerProxySubscribeOnceForAllSubscribers(string topicUri)
        {
            MockWampPubSubRequestManager <MockRaw> requestManager =
                new MockWampPubSubRequestManager <MockRaw>();

            WampPubSubClientFactory <MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject <object> subject = clientFactory.GetSubject <object>(topicUri, DummyConnection <MockRaw> .Instance);

            IDisposable cancelation  = subject.Subscribe(x => { });
            IDisposable cancelation2 = subject.Subscribe(x => { });

            Assert.That(requestManager.SubscriptionRemovals, Is.Empty);
            Assert.That(requestManager.Publications, Is.Empty);
            Assert.That(requestManager.Subscriptions.Count, Is.EqualTo(1));
        }
Exemplo n.º 5
0
        public void OnCompletedCallCallsObserverOnCompleted(string topicUri)
        {
            MockWampPubSubRequestManager <MockRaw> requestManager =
                new MockWampPubSubRequestManager <MockRaw>();

            WampPubSubClientFactory <MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject <object> subject = clientFactory.GetSubject <object>(topicUri, DummyConnection <MockRaw> .Instance);

            bool        onCompleted = false;
            IDisposable cancelation = subject.Subscribe(x => { }, () => onCompleted = true);

            Assert.That(onCompleted, Is.EqualTo(false));
            subject.OnCompleted();
            Assert.That(onCompleted, Is.EqualTo(true));
        }
Exemplo n.º 6
0
        public void ClientEventCallsObserverOnNext(string topicUri, object @event)
        {
            MockWampPubSubRequestManager <MockRaw> requestManager =
                new MockWampPubSubRequestManager <MockRaw>();

            WampPubSubClientFactory <MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject <object> subject = clientFactory.GetSubject <object>(topicUri, DummyConnection <MockRaw> .Instance);

            List <object> events      = new List <object>();
            IDisposable   cancelation = subject.Subscribe(x => events.Add(x));

            WampSubscribeRequest <MockRaw> subscription =
                requestManager.Subscriptions.First();

            subscription.Client.Event(topicUri, new MockRaw(@event));

            Assert.That(events.Count, Is.EqualTo(1));
            Assert.That(events[0], Is.EqualTo(@event));
        }
Exemplo n.º 7
0
        public void ClientEventCallsObserverOnNext(string topicUri, object @event)
        {
            MockWampPubSubRequestManager<MockRaw> requestManager =
                new MockWampPubSubRequestManager<MockRaw>();

            WampPubSubClientFactory<MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject<object> subject = clientFactory.GetSubject<object>(topicUri, DummyConnection<MockRaw>.Instance);

            List<object> events = new List<object>();
            IDisposable cancelation = subject.Subscribe(x => events.Add(x));

            WampSubscribeRequest<MockRaw> subscription =
                requestManager.Subscriptions.First();

            subscription.Client.Event(topicUri, new MockRaw(@event));

            Assert.That(events.Count, Is.EqualTo(1));
            Assert.That(events[0], Is.EqualTo(@event));
        }
Exemplo n.º 8
0
        public void OnCompletedCallCallsServerProxyUnsubscribe(string topicUri)
        {
            MockWampPubSubRequestManager <MockRaw> requestManager =
                new MockWampPubSubRequestManager <MockRaw>();

            WampPubSubClientFactory <MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject <object> subject = clientFactory.GetSubject <object>(topicUri, DummyConnection <MockRaw> .Instance);

            bool        onCompleted = false;
            IDisposable cancelation = subject.Subscribe(x => { });

            Assert.That(requestManager.SubscriptionRemovals.Count, Is.EqualTo(0));
            subject.OnCompleted();
            Assert.That(requestManager.SubscriptionRemovals.Count, Is.EqualTo(1));

            WampSubscribeRequest <MockRaw> removal =
                requestManager.SubscriptionRemovals.First();

            Assert.That(removal.TopicUri, Is.EqualTo(topicUri));
        }
Exemplo n.º 9
0
        public void OnNextCallCallsServerProxyEvent(string topicUri, object @event)
        {
            MockWampPubSubRequestManager <MockRaw> requestManager =
                new MockWampPubSubRequestManager <MockRaw>();

            WampPubSubClientFactory <MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject <object> subject = clientFactory.GetSubject <object>(topicUri, DummyConnection <MockRaw> .Instance);

            IDisposable cancelation = subject.Subscribe(x => { });

            subject.OnNext(@event);

            Assert.That(requestManager.Publications.Count, Is.EqualTo(1));

            WampPublishRequest <MockRaw> publication =
                requestManager.Publications.FirstOrDefault();

            Assert.That(publication.Event, Is.EqualTo(@event));
            Assert.That(publication.ExcludeMe, Is.EqualTo(false)); // Our specification
            Assert.That(publication.TopicUri, Is.EqualTo(topicUri));
        }
Exemplo n.º 10
0
        public void DisposeCallsServerProxyUnsubscribeIfNoObserversAreSubscribed(string topicUri)
        {
            MockWampPubSubRequestManager <MockRaw> requestManager =
                new MockWampPubSubRequestManager <MockRaw>();

            WampPubSubClientFactory <MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject <object> subject = clientFactory.GetSubject <object>(topicUri, DummyConnection <MockRaw> .Instance);

            IDisposable cancelation  = subject.Subscribe(x => { });
            IDisposable cancelation2 = subject.Subscribe(x => { });

            cancelation.Dispose();
            cancelation2.Dispose();

            Assert.That(requestManager.SubscriptionRemovals.Count, Is.EqualTo(1));
            Assert.That(requestManager.Publications, Is.Empty);
            Assert.That(requestManager.Subscriptions.Count, Is.EqualTo(1));

            WampSubscribeRequest <MockRaw> removal =
                requestManager.SubscriptionRemovals.First();

            Assert.That(removal.TopicUri, Is.EqualTo(topicUri));
        }
Exemplo n.º 11
0
        public void DisposeCallsServerProxyUnsubscribeIfNoObserversAreSubscribed(string topicUri)
        {
            MockWampPubSubRequestManager<MockRaw> requestManager =
                new MockWampPubSubRequestManager<MockRaw>();

            WampPubSubClientFactory<MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject<object> subject = clientFactory.GetSubject<object>(topicUri, DummyConnection<MockRaw>.Instance);

            IDisposable cancelation = subject.Subscribe(x => { });
            IDisposable cancelation2 = subject.Subscribe(x => { });

            cancelation.Dispose();
            cancelation2.Dispose();

            Assert.That(requestManager.SubscriptionRemovals.Count, Is.EqualTo(1));
            Assert.That(requestManager.Publications, Is.Empty);
            Assert.That(requestManager.Subscriptions.Count, Is.EqualTo(1));

            WampSubscribeRequest<MockRaw> removal =
                requestManager.SubscriptionRemovals.First();

            Assert.That(removal.TopicUri, Is.EqualTo(topicUri));
        }
Exemplo n.º 12
0
        private static WampPubSubClientFactory<MockRaw> GetClientFactory(MockWampPubSubRequestManager<MockRaw> requestManager)
        {
            WampPubSubClientFactory<MockRaw> clientFactory =
                new WampPubSubClientFactory<MockRaw>
                    (new MockWampPubSubServerProxyFactory
                         (client => requestManager.GetServer(client)),
                     new MockRawFormatter());

            return clientFactory;
        }
Exemplo n.º 13
0
        public void SubscribeCallsServerProxySubscribeOnceForAllSubscribers(string topicUri)
        {
            MockWampPubSubRequestManager<MockRaw> requestManager =
                new MockWampPubSubRequestManager<MockRaw>();

            WampPubSubClientFactory<MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject<object> subject = clientFactory.GetSubject<object>(topicUri, DummyConnection<MockRaw>.Instance);

            IDisposable cancelation = subject.Subscribe(x => { });
            IDisposable cancelation2 = subject.Subscribe(x => { });

            Assert.That(requestManager.SubscriptionRemovals, Is.Empty);
            Assert.That(requestManager.Publications, Is.Empty);
            Assert.That(requestManager.Subscriptions.Count, Is.EqualTo(1));
        }
Exemplo n.º 14
0
        public void OnNextCallCallsServerProxyEvent(string topicUri, object @event)
        {
            MockWampPubSubRequestManager<MockRaw> requestManager =
                new MockWampPubSubRequestManager<MockRaw>();

            WampPubSubClientFactory<MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject<object> subject = clientFactory.GetSubject<object>(topicUri, DummyConnection<MockRaw>.Instance);

            IDisposable cancelation = subject.Subscribe(x => { });

            subject.OnNext(@event);

            Assert.That(requestManager.Publications.Count, Is.EqualTo(1));

            WampPublishRequest<MockRaw> publication =
                requestManager.Publications.FirstOrDefault();

            Assert.That(publication.Event, Is.EqualTo(@event));
            Assert.That(publication.ExcludeMe, Is.EqualTo(false)); // Our specification
            Assert.That(publication.TopicUri, Is.EqualTo(topicUri));
        }
Exemplo n.º 15
0
        public void OnCompletedCallCallsServerProxyUnsubscribe(string topicUri)
        {
            MockWampPubSubRequestManager<MockRaw> requestManager =
                new MockWampPubSubRequestManager<MockRaw>();

            WampPubSubClientFactory<MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject<object> subject = clientFactory.GetSubject<object>(topicUri, DummyConnection<MockRaw>.Instance);

            bool onCompleted = false;
            IDisposable cancelation = subject.Subscribe(x => { });

            Assert.That(requestManager.SubscriptionRemovals.Count, Is.EqualTo(0));
            subject.OnCompleted();
            Assert.That(requestManager.SubscriptionRemovals.Count, Is.EqualTo(1));

            WampSubscribeRequest<MockRaw> removal =
                requestManager.SubscriptionRemovals.First();
            Assert.That(removal.TopicUri, Is.EqualTo(topicUri));
        }
Exemplo n.º 16
0
        public void OnCompletedCallCallsObserverOnCompleted(string topicUri)
        {
            MockWampPubSubRequestManager<MockRaw> requestManager =
                new MockWampPubSubRequestManager<MockRaw>();

            WampPubSubClientFactory<MockRaw> clientFactory = GetClientFactory(requestManager);

            ISubject<object> subject = clientFactory.GetSubject<object>(topicUri, DummyConnection<MockRaw>.Instance);

            bool onCompleted = false;
            IDisposable cancelation = subject.Subscribe(x => { }, () => onCompleted = true);

            Assert.That(onCompleted, Is.EqualTo(false));
            subject.OnCompleted();
            Assert.That(onCompleted, Is.EqualTo(true));
        }