Ejemplo n.º 1
0
        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());
        }
Ejemplo n.º 3
0
        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());
        }