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); }
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); }
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); }
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); }