public void TestThatClientSubscribes() { var request = Request .WithMethod(Method.Get) .WithUri("/eventstreams/all") .And(RequestHeader.WithHost("StreamsRUs.co")) .And(RequestHeader.WithAccept("text/event-stream")); var respondWithSafely = _resource._requestResponseContext.Channel.ExpectRespondWith(10); _resource.NextRequest(request); _resource.SubscribeToStream("all", typeof(AllSseFeedActor), 10, 10, "1"); Assert.Equal(10, respondWithSafely.ReadFrom <int>("count")); Assert.Equal(10, _resource._requestResponseContext.Channel.RespondWithCount.Get()); }
public void TestThatClientUnsubscribes() { var streamName = NextStreamName(); var subscribe = Request .WithMethod(Method.Get) .WithUri($"/eventstreams/{streamName}") .And(RequestHeader.WithHost("StreamsRUs.co")) .And(RequestHeader.WithAccept("text/event-stream")); var respondWithSafely = _resource._requestResponseContext.Channel.ExpectRespondWith(10); _resource.NextRequest(subscribe); _resource.SubscribeToStream(streamName, typeof(AllSseFeedActor), 1, 10, "1"); Assert.True(1 <= respondWithSafely.ReadFrom <int>("count")); Assert.True(1 <= _resource._requestResponseContext.Channel.RespondWithCount.Get()); var clientId = _resource._requestResponseContext.Id; var unsubscribe = Request .WithMethod(Method.Delete) .WithUri($"/eventstreams/{streamName}/{clientId}") .And(RequestHeader.WithHost("StreamsRUs.co")) .And(RequestHeader.WithAccept("text/event-stream")); var abandonSafely = _resource._requestResponseContext.Channel.ExpectAbandon(1); _resource.NextRequest(unsubscribe); _resource.UnsubscribeFromStream(streamName, clientId); Assert.Equal(1, abandonSafely.ReadFrom <int>("count")); Assert.Equal(1, _resource._requestResponseContext.Channel.AbandonCount.Get()); }
public void TestRequestBuilder() { Assert.Equal(_requestOneHeader, Request .Has(Method.Get) .And("/".ToMatchableUri()) .And(RequestHeader.WithHost("test.com")) .ToString()); Assert.Equal(_requestOneHeader, Request .WithMethod(Method.Get) .WithUri("/") .WithHeader(RequestHeader.Host, "test.com") .ToString()); Assert.Equal(_requestTwoHeadersWithBody, Request .Has(Method.Put) .And("/one/two/three".ToMatchableUri()) .And(RequestHeader.WithHost("test.com")) .And(RequestHeader.WithContentLength(19)) .And(Body.From("{ text:\"some text\"}")) .ToString()); Assert.Equal(_requestTwoHeadersWithBody, Request .WithMethod(Method.Put) .WithUri("/one/two/three") .WithHeader(RequestHeader.Host, "test.com") .WithHeader(RequestHeader.ContentLength, 19) .WithBody("{ text:\"some text\"}") .ToString()); Assert.Equal(_requestMultiHeaders, Request .Has(Method.Get) .And("/one".ToMatchableUri()) .And(RequestHeader.WithHost("test.com")) .And(RequestHeader.WithAccept("text/plain")) .And(RequestHeader.WithCacheControl("no-cache")) .ToString()); Assert.Equal(_requestMultiHeaders, Request .WithMethod(Method.Get) .WithUri("/one") .WithHeader(RequestHeader.Host, "test.com") .WithHeader(RequestHeader.Accept, "text/plain") .WithHeader(RequestHeader.CacheControl, "no-cache") .ToString()); Assert.Equal(_requestMultiHeadersWithBody, Request .Has(Method.Post) .And("/one/two/".ToMatchableUri()) .And(RequestHeader.WithHost("test.com")) .And(RequestHeader.WithContentLength(19)) .And(RequestHeader.WithAccept("text/plain")) .And(RequestHeader.WithCacheControl("no-cache")) .And(Body.From("{ text:\"some text\"}")) .ToString()); Assert.Equal(_requestMultiHeadersWithBody, Request .Has(Method.Post) .WithUri("/one/two/") .WithHeader(RequestHeader.Host, "test.com") .WithHeader(RequestHeader.ContentLength, 19) .WithHeader(RequestHeader.Accept, "text/plain") .WithHeader(RequestHeader.CacheControl, "no-cache") .WithBody("{ text:\"some text\"}") .ToString()); }