Ejemplo n.º 1
0
        public HttpStub AddStub()
        {
            var stub = new HttpStub();

            Stubs.Add(stub);
            return(stub);
        }
Ejemplo n.º 2
0
        public void HttpStub_ReturnsProxy_ReturnsHttpProxyStub()
        {
            var predicateInvokingProxyStub = new ContainsPredicate <HttpPredicateFields>(new HttpPredicateFields
            {
                Path = "/aTestPath"
            });

            var proxyGeneratorPredicate = new MatchesPredicate <HttpPredicateFields>(new HttpPredicateFields
            {
                Path            = "/aTestPath",
                Method          = Method.Get,
                QueryParameters = new Dictionary <string, string> {
                    { "q", "value" }
                }
            });

            var proxyToUrl     = new Uri("http://someTestDestination.com");
            var proxyModeToUse = ProxyMode.ProxyTransparent;

            var stub = new HttpStub();

            stub.On(predicateInvokingProxyStub)
            .ReturnsProxy(proxyToUrl, proxyModeToUse, new [] { proxyGeneratorPredicate });

            var proxyResponse = stub.Responses.First() as ProxyResponse <ProxyResponseFields <HttpPredicateFields> >;

            Assert.AreEqual(proxyToUrl, proxyResponse.Fields.To);
            Assert.AreEqual(proxyModeToUse, proxyResponse.Fields.Mode);
            Assert.AreEqual(proxyGeneratorPredicate, proxyResponse.Fields.PredicateGenerators.First());
        }
Ejemplo n.º 3
0
        public static void Main(string[] args)
        {
            var PORT = 8000;

            Console.WriteLine("Welcome to the Http stub");

            var stub = new HttpStub(PORT);

            stub.Start();
        }
Ejemplo n.º 4
0
        public void OnPathEquals_AddsPredicate_PathSet()
        {
            const string expectedPath = "/test";

            var stub = new HttpStub();
            stub.OnPathEquals(expectedPath);

            var predicate = stub.Predicates.First() as EqualsPredicate<HttpPredicateFields>;
            Assert.IsNotNull(predicate);
            Assert.AreEqual(expectedPath, predicate.Fields.Path);
        }
Ejemplo n.º 5
0
        public void OnPathAndMethodEqual_AddsPredicate_MethodSet()
        {
            const Method expectedMethod = Method.Post;

            var stub = new HttpStub();
            stub.OnPathAndMethodEqual("/test", expectedMethod);

            var predicate = stub.Predicates.First() as EqualsPredicate<HttpPredicateFields>;
            Assert.IsNotNull(predicate);
            Assert.AreEqual(expectedMethod, predicate.Fields.Method);
        }
Ejemplo n.º 6
0
        public void HttpStub_ReturnsBinary_AddsResponse_ContentTypePdf()
        {
            var stub  = new HttpStub();
            var bytes = new byte[] { 3, 3, 5, 2, 23, 5, 21, 1 };

            stub.ReturnsBinary(HttpStatusCode.OK, bytes, "application/pdf");

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.IsNotNull(response);
            Assert.AreEqual("application/pdf", response.Fields.Headers["Content-Type"]);
        }
Ejemplo n.º 7
0
        public void HttpStub_On_AddsPredicate()
        {
            var expectedPredicate = new EqualsPredicate <HttpPredicateFields>(new HttpPredicateFields());

            var stub = new HttpStub();

            stub.On(expectedPredicate);

            var predicate = stub.Predicates.First() as EqualsPredicate <HttpPredicateFields>;

            Assert.AreEqual(expectedPredicate, predicate);
        }
Ejemplo n.º 8
0
        public void ConstantFalseDoesNotCauseConnection()
        {
            using (var httpStub = new HttpStub(ZeroHits, 1))
            {
                var provider = new ElasticQueryProvider(new ElasticConnection(httpStub.Uri), mapping, log, retryPolicy);
                var query    = new ElasticQuery <Robot>(provider).Where(f => false);

                ((IEnumerable)query).GetEnumerator();

                Assert.Empty(httpStub.Requests);
            }
        }
Ejemplo n.º 9
0
        public void HttpStub_Returns_AddsResponse()
        {
            var expectedResponse = new IsResponse <HttpResponseFields>(new HttpResponseFields());

            var stub = new HttpStub();

            stub.Returns(expectedResponse);

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.AreEqual(expectedResponse, response);
        }
Ejemplo n.º 10
0
        public void HttpStub_InjectedFunction_AddsPredicate_InjectedFunctionSet()
        {
            const string injectedFunction = "function(config) { return true; }";

            var stub = new HttpStub();

            stub.OnInjectedFunction(injectedFunction);

            var predicate = stub.Predicates.First() as InjectPredicate;

            Assert.IsNotNull(predicate);
            Assert.AreEqual(injectedFunction, predicate.InjectedFunction);
        }
Ejemplo n.º 11
0
        public void ReturnsStatus_AddsResponse_StatusCodeSet()
        {
            const HttpStatusCode expectedStatusCode = HttpStatusCode.OK;

            var stub = new HttpStub();

            stub.ReturnsStatus(expectedStatusCode);

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.IsNotNull(response);
            Assert.AreEqual(expectedStatusCode, response.Fields.StatusCode);
        }
Ejemplo n.º 12
0
        public void QueryEvaluationWithNoNullResponseThrowsInvalidOperationException()
        {
            using (var httpStub = new HttpStub(c => { }))
            {
                var context = MakeElasticContext(httpStub.Uri);

                Assert.Throws <InvalidOperationException>(() => context.Query <Robot>().FirstOrDefault());

                var request = httpStub.Requests.Single();
                Assert.Equal("POST", request.HttpMethod);
                Assert.Equal("/robots/_search", request.RawUrl);
            }
        }
Ejemplo n.º 13
0
        public void QueryEvaluationCausesPostToConnectionEndpoint()
        {
            using (var httpStub = new HttpStub(ZeroHits))
            {
                var context = MakeElasticContext(httpStub.Uri);

                var dummy = context.Query <Robot>().FirstOrDefault();

                var request = httpStub.Requests.Single();
                Assert.Equal("POST", request.HttpMethod);
                Assert.Equal("/robots/_search", request.RawUrl);
            }
        }
Ejemplo n.º 14
0
        public void OnPathAndMethodEqual_AddsPredicate_MethodSet()
        {
            const Method expectedMethod = Method.Post;

            var stub = new HttpStub();

            stub.OnPathAndMethodEqual("/test", expectedMethod);

            var predicate = stub.Predicates.First() as EqualsPredicate <HttpPredicateFields>;

            Assert.IsNotNull(predicate);
            Assert.AreEqual(expectedMethod, predicate.Fields.Method);
        }
Ejemplo n.º 15
0
        public void OnPathAndMethodEqual_AddsPredicate_PathSet()
        {
            const string expectedPath = "/test";

            var stub = new HttpStub();

            stub.OnPathAndMethodEqual(expectedPath, Method.Get);

            var predicate = stub.Predicates.First() as EqualsPredicate <HttpPredicateFields>;

            Assert.IsNotNull(predicate);
            Assert.AreEqual(expectedPath, predicate.Fields.Path);
        }
Ejemplo n.º 16
0
        public void ReturnsXml_AddsResponse_ResponseObjectSerializedAndSet()
        {
            const string expectedResponseObject = "<string>Test Response</string>";

            var stub = new HttpStub();

            stub.ReturnsXml(HttpStatusCode.OK, "Test Response");

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.IsNotNull(response);
            Assert.IsTrue(response.Fields.ResponseObject.ToString().Contains(expectedResponseObject));
        }
Ejemplo n.º 17
0
        public void ReturnsXml_AddsResponse_DefaultsToUtf8Encoding()
        {
            const string expectedEncoding = "utf-8";

            var stub = new HttpStub();

            stub.ReturnsXml(HttpStatusCode.OK, "Test Response");

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.IsNotNull(response);
            Assert.IsTrue(response.Fields.ResponseObject.ToString().Contains(expectedEncoding));
        }
Ejemplo n.º 18
0
        public void ReturnsXmlWithEncoding_AddsResponse_WithSpecifiedEncoding()
        {
            const string expectedEncoding = "utf-16";

            var stub = new HttpStub();

            stub.ReturnsXml(HttpStatusCode.OK, "Test Response", Encoding.Unicode);

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.IsNotNull(response);
            Assert.IsTrue(response.Fields.ResponseObject.ToString().Contains(expectedEncoding));
        }
Ejemplo n.º 19
0
        public void ReturnsBody_AddsResponse_ResponseObjectSet()
        {
            const string expectedBody = "test";

            var stub = new HttpStub();

            stub.ReturnsBody(HttpStatusCode.OK, expectedBody);

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.IsNotNull(response);
            Assert.AreEqual(expectedBody, response.Fields.ResponseObject.ToString());
        }
Ejemplo n.º 20
0
        public void ProviderExecuteTCausesPostToConnectionEndpoint()
        {
            using (var httpStub = new HttpStub(ZeroHits))
            {
                var provider = new ElasticQueryProvider(new ElasticConnection(httpStub.Uri), mapping, log, retryPolicy, "prefix");
                var query    = new ElasticQuery <Robot>(provider);

                provider.Execute <IEnumerable <Robot> >(query.Expression);

                var request = httpStub.Requests.Single();
                Assert.Equal("POST", request.HttpMethod);
                Assert.Equal("/robots/_search", request.RawUrl);
            }
        }
Ejemplo n.º 21
0
        public void QueryImplicitGetEnumeratorCausesConnection()
        {
            using (var httpStub = new HttpStub(ZeroHits))
            {
                var provider = new ElasticQueryProvider(new ElasticConnection(httpStub.Uri), mapping, log, retryPolicy, "prefix");
                var query    = new ElasticQuery <Robot>(provider);

                var enumerator = query.GetEnumerator();

                var request = httpStub.Requests.Single();
                Assert.Equal("POST", request.HttpMethod);
                Assert.Equal("/robots/_search", request.RawUrl);
                Assert.NotNull(enumerator);
            }
        }
Ejemplo n.º 22
0
        public void Returns_AddsResponse_ContentTypeHeaderSet()
        {
            var headers = new Dictionary <string, string> {
                { "Content-Type", "application/json" }
            };

            var stub = new HttpStub();

            stub.Returns(HttpStatusCode.OK, headers, "test");

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.IsNotNull(response);
            Assert.AreEqual(headers, response.Fields.Headers);
        }
Ejemplo n.º 23
0
        public async void AcceptEncodingIsGzip()
        {
            using (var httpStub = new HttpStub(ZeroHits, 1))
            {
                var context = MakeElasticContext(httpStub.Uri);

                var dummy = context.Query <Robot>().FirstOrDefault();
                Assert.Null(dummy);

                await httpStub.Completion;
                var request = httpStub.Requests.Single();
                Assert.Contains("Accept-Encoding", request.Headers.AllKeys);
                Assert.Equal("gzip", request.Headers["Accept-Encoding"]);
            }
        }
Ejemplo n.º 24
0
        public async void ProviderExecuteCausesPostToConnectionEndpoint()
        {
            using (var httpStub = new HttpStub(ZeroHits, 1))
            {
                var provider = new ElasticQueryProvider(new ElasticConnection(httpStub.Uri), mapping, log, retryPolicy);
                var query    = new ElasticQuery <Robot>(provider);

                provider.Execute(query.Expression);

                await httpStub.Completion;
                var request = httpStub.Requests.Single();
                Assert.Equal("POST", request.HttpMethod);
                Assert.Equal("/_all/robots/_search", request.RawUrl);
            }
        }
Ejemplo n.º 25
0
        public void Returns_AddsResponse()
        {
            var headers = new Dictionary <string, string> {
                { "Content-Type", "application/json" }
            };
            var expectedResponse = new IsResponse <HttpResponseFields>(new HttpResponseFields());

            var stub = new HttpStub();

            stub.Returns(expectedResponse);

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.AreEqual(expectedResponse, response);
        }
Ejemplo n.º 26
0
        public async void QueryExplicitIEnumerableGetEnumeratorCausesConnection()
        {
            using (var httpStub = new HttpStub(ZeroHits, 1))
            {
                var provider = new ElasticQueryProvider(new ElasticConnection(httpStub.Uri), mapping, log, retryPolicy);
                var query    = new ElasticQuery <Robot>(provider);

                var enumerator = ((IEnumerable)query).GetEnumerator();

                await httpStub.Completion;
                var request = httpStub.Requests.Single();
                Assert.Equal("POST", request.HttpMethod);
                Assert.Equal("/_all/robots/_search", request.RawUrl);
                Assert.NotNull(enumerator);
            }
        }
Ejemplo n.º 27
0
        public void Returns_AddsResponse_StatusCodeSet()
        {
            const HttpStatusCode expectedStatusCode = HttpStatusCode.OK;
            var headers = new Dictionary <string, string> {
                { "Content-Type", "application/json" }
            };

            var stub = new HttpStub();

            stub.Returns(expectedStatusCode, headers, "test");

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.IsNotNull(response);
            Assert.AreEqual(expectedStatusCode, response.Fields.StatusCode);
        }
Ejemplo n.º 28
0
        public void On_AddsPredicate()
        {
            var headers = new Dictionary <string, string> {
                { "Content-Type", "application/json" }
            };

            var expectedPredicate = new EqualsPredicate <HttpPredicateFields>(new HttpPredicateFields());

            var stub = new HttpStub();

            stub.On(expectedPredicate);

            var predicate = stub.Predicates.First() as EqualsPredicate <HttpPredicateFields>;

            Assert.AreEqual(expectedPredicate, predicate);
        }
Ejemplo n.º 29
0
        public void Returns_AddsResponse_ResponseObjectSet()
        {
            const string expectedResponseObject = "Test Response";
            var          headers = new Dictionary <string, string> {
                { "Content-Type", "application/json" }
            };

            var stub = new HttpStub();

            stub.Returns(HttpStatusCode.OK, headers, expectedResponseObject);

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.IsNotNull(response);
            Assert.AreEqual(expectedResponseObject, response.Fields.ResponseObject);
        }
Ejemplo n.º 30
0
        public void HttpStub_Returns_AddsResponse_LatencySet()
        {
            const HttpStatusCode expectedStatusCode            = HttpStatusCode.OK;
            const int            expectedLatencyInMilliseconds = 1000;
            var headers = new Dictionary <string, object> {
                { "Content-Type", "application/json" }
            };

            var stub = new HttpStub();

            stub.Returns(expectedStatusCode, headers, "test", latencyInMilliseconds: expectedLatencyInMilliseconds);

            var response = stub.Responses.First() as IsResponse <HttpResponseFields>;

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.Behavior);
            Assert.IsNotNull(response.Behavior.LatencyInMilliseconds);
            Assert.AreEqual(expectedLatencyInMilliseconds, response.Behavior.LatencyInMilliseconds);
        }
Ejemplo n.º 31
0
        public void Returns_AddsResponse_ResponseObjectSet()
        {
            const string expectedResponseObject = "Test Response";
            var headers = new Dictionary<string, string> { { "Content-Type", "application/json" } };

            var stub = new HttpStub();
            stub.Returns(HttpStatusCode.OK, headers, expectedResponseObject);

            var response = stub.Responses.First() as IsResponse<HttpResponseFields>;
            Assert.IsNotNull(response);
            Assert.AreEqual(expectedResponseObject, response.Fields.ResponseObject);
        }
Ejemplo n.º 32
0
        public void ReturnsXml_AddsResponse_DefaultsToUtf8Encoding()
        {
            const string expectedEncoding = "utf-8";

            var stub = new HttpStub();
            stub.ReturnsXml(HttpStatusCode.OK, "Test Response");

            var response = stub.Responses.First() as IsResponse<HttpResponseFields>;
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Fields.ResponseObject.ToString().Contains(expectedEncoding));
        }
Ejemplo n.º 33
0
        public void Constructor_InitializesPredicatesCollection()
        {
            var stub = new HttpStub();

            Assert.IsNotNull(stub.Predicates);
        }
Ejemplo n.º 34
0
        public void ReturnsXml_AddsResponse_ResponseObjectSerializedAndSet()
        {
            const string expectedResponseObject = "<string>Test Response</string>";

            var stub = new HttpStub();
            stub.ReturnsXml(HttpStatusCode.OK, "Test Response");

            var response = stub.Responses.First() as IsResponse<HttpResponseFields>;
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Fields.ResponseObject.ToString().Contains(expectedResponseObject));
        }
Ejemplo n.º 35
0
        public void ReturnsXml_AddsResponse_StatusCodeSet()
        {
            const HttpStatusCode expectedStatusCode = HttpStatusCode.OK;

            var stub = new HttpStub();
            stub.ReturnsXml(expectedStatusCode, "test");

            var response = stub.Responses.First() as IsResponse<HttpResponseFields>;
            Assert.IsNotNull(response);
            Assert.AreEqual(expectedStatusCode, response.Fields.StatusCode);
        }
Ejemplo n.º 36
0
        public void Returns_AddsResponse()
        {
            var headers = new Dictionary<string, string> { { "Content-Type", "application/json" } };
            var expectedResponse = new IsResponse<HttpResponseFields>(new HttpResponseFields());

            var stub = new HttpStub();
            stub.Returns(expectedResponse);

            var response = stub.Responses.First() as IsResponse<HttpResponseFields>;
            Assert.AreEqual(expectedResponse, response);
        }
Ejemplo n.º 37
0
        public void Returns_AddsResponse_ContentTypeHeaderSet()
        {
            var headers = new Dictionary<string, string> { { "Content-Type", "application/json" } };

            var stub = new HttpStub();
            stub.Returns(HttpStatusCode.OK, headers, "test");

            var response = stub.Responses.First() as IsResponse<HttpResponseFields>;
            Assert.IsNotNull(response);
            Assert.AreEqual(headers, response.Fields.Headers);
        }
Ejemplo n.º 38
0
        public void Returns_AddsResponse_StatusCodeSet()
        {
            const HttpStatusCode expectedStatusCode = HttpStatusCode.OK;
            var headers = new Dictionary<string, string> { {"Content-Type", "application/json"} };

            var stub = new HttpStub();
            stub.Returns(expectedStatusCode, headers, "test");

            var response = stub.Responses.First() as IsResponse<HttpResponseFields>;
            Assert.IsNotNull(response);
            Assert.AreEqual(expectedStatusCode, response.Fields.StatusCode);
        }
Ejemplo n.º 39
0
 public void Constructor_InitializesResponsesCollection()
 {
     var stub = new HttpStub();
     Assert.IsNotNull(stub.Responses);
 }
Ejemplo n.º 40
0
        public void On_AddsPredicate()
        {
            var headers = new Dictionary<string, string> { { "Content-Type", "application/json" } };

            var expectedPredicate = new EqualsPredicate<HttpPredicateFields>(new HttpPredicateFields());

            var stub = new HttpStub();
            stub.On(expectedPredicate);

            var predicate = stub.Predicates.First() as EqualsPredicate<HttpPredicateFields>;
            Assert.AreEqual(expectedPredicate, predicate);
        }
Ejemplo n.º 41
0
        public void HttpStub_Constructor_InitializesResponsesCollection()
        {
            var stub = new HttpStub();

            Assert.IsNotNull(stub.Responses);
        }
Ejemplo n.º 42
0
 public HttpStub AddStub()
 {
     var stub = new HttpStub();
     Stubs.Add(stub);
     return stub;
 }
Ejemplo n.º 43
0
        public void ReturnsBody_AddsResponse_ResponseObjectSet()
        {
            const string expectedBody = "test";

            var stub = new HttpStub();
            stub.ReturnsBody(HttpStatusCode.OK, expectedBody);

            var response = stub.Responses.First() as IsResponse<HttpResponseFields>;
            Assert.IsNotNull(response);
            Assert.AreEqual(expectedBody, response.Fields.ResponseObject.ToString());
        }
Ejemplo n.º 44
0
        public void ReturnsXmlWithEncoding_AddsResponse_WithSpecifiedEncoding()
        {
            const string expectedEncoding = "utf-16";

            var stub = new HttpStub();
            stub.ReturnsXml(HttpStatusCode.OK, "Test Response", Encoding.Unicode);

            var response = stub.Responses.First() as IsResponse<HttpResponseFields>;
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Fields.ResponseObject.ToString().Contains(expectedEncoding));
        }