private static WampPubSubClientFactory <MockRaw> GetClientFactory(MockWampPubSubRequestManager <MockRaw> requestManager) { WampPubSubClientFactory <MockRaw> clientFactory = new WampPubSubClientFactory <MockRaw> (new MockWampPubSubServerProxyFactory (client => requestManager.GetServer(client)), new MockRawFormatter()); return(clientFactory); }
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); }
private IWampPubSubClientFactory <TMessage> GetPubSubClientFactory() { ManualWampServerProxyBuilder <TMessage, IWampPubSubClient <TMessage> > proxyBuilder = GetServerProxyBuilder <IWampPubSubClient <TMessage> >(); PubSub.Client.WampServerProxyFactory <TMessage> serverProxyFactory = new PubSub.Client.WampServerProxyFactory <TMessage>(proxyBuilder); WampPubSubClientFactory <TMessage> result = new WampPubSubClientFactory <TMessage>(serverProxyFactory, Formatter); return(result); }
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)); }
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)); }
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)); }
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)); }
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)); }
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)); }
private static WampPubSubClientFactory<MockRaw> GetClientFactory(MockWampPubSubRequestManager<MockRaw> requestManager) { WampPubSubClientFactory<MockRaw> clientFactory = new WampPubSubClientFactory<MockRaw> (new MockWampPubSubServerProxyFactory (client => requestManager.GetServer(client)), new MockRawFormatter()); return clientFactory; }