Exemplo n.º 1
0
        public void CouchCache_EmulateCacheHit_ReturnsCachedData()
        {
            var _factory = new Mock<IHttpTransportFactory>(MockBehavior.Strict);
            var _transport = new Mock<IHttpTransport>(MockBehavior.Strict);
            var _cache = new Mock<ICouchCache>(MockBehavior.Strict);
            var _response = new HttpResponse();

            _response.ETag = "1234";
            _response.StatusCode = HttpStatusCode.NotModified;
            _response.Data = "There should be no data (as its a 304)";

            _factory.Setup(x => x.Create(new UriBuilder("http://localhost:5984/").Uri)).Returns(_transport.Object);

            _cache.Setup(x => x["/integrationtest/d1d2bac2b4e65baf10be20bf08000189"])
                .Returns(new CouchCacheEntry("/integrationtest/d1d2bac2b4e65baf10be20bf08000189", "1234", "I am data"));

            _transport.Setup(x => x.CacheMatch("1234"));
            _transport.Setup(x => x.Send("/integrationtest/d1d2bac2b4e65baf10be20bf08000189", HttpVerb.Get, null, "application/json")).Returns(_response);

            var conn = new CouchConnection("http://localhost:5984/", _factory.Object);
            conn.Cache = _cache.Object;

            var resp = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189");

            Assert.AreEqual("I am data", resp.Data);
        }
Exemplo n.º 2
0
        public void CouchCache_EmulateEmpty_AddsToCacheCorrectly()
        {
            var _factory = new Mock<IHttpTransportFactory>(MockBehavior.Strict);
            var _transport = new Mock<IHttpTransport>(MockBehavior.Strict);
            var _cache = new Mock<ICouchCache>(MockBehavior.Strict);
            var _response = new HttpResponse();

            _response.ETag = "1234";
            _response.StatusCode = HttpStatusCode.OK;
            _response.Data = "I am data";

            _factory.Setup(x => x.Create(new UriBuilder("http://localhost:5984/").Uri)).Returns(_transport.Object);

            _cache.Setup(x => x["/integrationtest/d1d2bac2b4e65baf10be20bf08000189"]).Returns(() => null);
            _cache.Setup(x => x.Add(It.IsAny<CouchCacheEntry>()));

            _transport.Setup(x => x.Send("/integrationtest/d1d2bac2b4e65baf10be20bf08000189", HttpVerb.Get, null, "application/json")).Returns(_response);

            var conn = new CouchConnection("http://localhost:5984/", _factory.Object);
            conn.Cache = _cache.Object;

            var resp = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189");

            Assert.AreEqual("I am data", resp.Data);
        }
Exemplo n.º 3
0
        public void CacheHeaderTest()
        {
            var conn = new CouchConnection("http://localhost:5984");

            var cache = new HttpRuntimeCache();
            cache.ExpirationWindow = 5;

            conn.Cache = cache;

            var resp = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189");
            Debug.WriteLine("Status Code : " + resp.StatusCode);
            Debug.WriteLine("--------------------------------");

            Assert.AreEqual(HttpStatusCode.OK, resp.StatusCode);

            var resp2 = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189");
            Debug.WriteLine("Status Code : " + resp2.StatusCode);
            Debug.WriteLine("--------------------------------");

            Assert.AreEqual(HttpStatusCode.NotModified, resp2.StatusCode);

            resp2 = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189");
            Debug.WriteLine("Status Code : " + resp2.StatusCode);
            Debug.WriteLine("--------------------------------");

            Assert.AreEqual(HttpStatusCode.NotModified, resp2.StatusCode);

            conn.DisableCache();

            resp2 = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189");
            Debug.WriteLine("Status Code : " + resp2.StatusCode);
            Debug.WriteLine("--------------------------------");

            Assert.AreEqual(HttpStatusCode.OK, resp2.StatusCode);

            conn.EnableCache();

            resp2 = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189");
            Debug.WriteLine("Status Code : " + resp2.StatusCode);
            Debug.WriteLine("--------------------------------");

            Assert.AreEqual(HttpStatusCode.NotModified, resp2.StatusCode);

            resp2 = conn.Get("/integrationtest/d1d2bac2b4e65baf10be20bf08000189");
            Debug.WriteLine("Status Code : " + resp2.StatusCode);
            Debug.WriteLine("--------------------------------");

            Assert.AreEqual(HttpStatusCode.NotModified, resp2.StatusCode);
        }
Exemplo n.º 4
0
        public void HttpOperation_Get_WithEncoding()
        {
            var testPath = "/";

            _httpTransport.Setup(x => x.Send(testPath, HttpVerb.Get, null, "application/xml")).Returns(_httpResponse.Object);

            var connection = new CouchConnection("http://localhost/", _httpTransportFactory.Object);
            var repsonse = connection.Get(testPath,"application/xml");

            Assert.IsNotNull(repsonse);
        }