public void ShouldCloseSubscriptions() { ParseQuery <ParseObject> query = new ParseQuery <ParseObject>("test"); EventCallback <ParseObject> eventCallback = Substitute.For <EventCallback <ParseObject> >(); UnsubscribeCallback <ParseObject> unsubscribeCallback = Substitute.For <UnsubscribeCallback <ParseObject> >(); Subscription <ParseObject> subscription = Subscribe(query) .HandleEvent(Event.Create, eventCallback) .HandleUnsubscribe(unsubscribeCallback); _parseLiveQueryClient.Unsubscribe(query); _webSocketClient.Received().Send(Arg.Any <string>()); _webSocketClientCallback.OnMessage(MockUnsubscribedMessage(subscription.RequestId)); unsubscribeCallback.Received().Invoke(query); ParseObject parseObject = new ParseObject("Test") { ObjectId = "testId" }; _webSocketClientCallback.OnMessage(MockObjectEventMessage(Event.Create, subscription.RequestId, parseObject)); eventCallback.DidNotReceive().Invoke(query, Arg.Any <ParseObject>()); }
public void ShouldNotifySubscribedCallbacks() { ParseQuery <ParseObject> parseQuery = new ParseQuery <ParseObject>("test"); UnsubscribeCallback <ParseObject> unsubscribeCallback = Substitute.For <UnsubscribeCallback <ParseObject> >(); Subscription <ParseObject> subscription = Subscribe(parseQuery).HandleUnsubscribe(unsubscribeCallback); _parseLiveQueryClient.Unsubscribe(parseQuery); _webSocketClient.Received().Send(Arg.Any <string>()); unsubscribeCallback.DidNotReceive().Invoke(Arg.Any <ParseQuery <ParseObject> >()); _webSocketClientCallback.OnMessage(MockUnsubscribedMessage(subscription.RequestId)); unsubscribeCallback.Received().Invoke(parseQuery); }
/// <summary> /// Register a callback for when a query has been unsubscribed. /// </summary> /// <param name="callback">The unsubscribe callback to register.</param> /// <returns>The same Subscription, for easy chaining.</returns> public Subscription <T> HandleUnsubscribe(UnsubscribeCallback <T> callback) { _unsubscribeCallbacks.Add(callback); return(this); }