示例#1
0
        public void RemoteFacetedSearchHonorsConditionalGet()
        {
            using (GetNewServer())
                using (var store = new DocumentStore
                {
                    Url = "http://localhost:8079"
                }.Initialize())
                {
                    Setup(store, _stronglyTypedFacets);

                    Etag firstEtag;

                    var queryUrl = store.Url + "/facets/CameraCost?facetDoc=facets%2FCameraFacets&query=Manufacturer%253A{0}&facetStart=0&facetPageSize=";

                    var url = string.Format(queryUrl, "canon");

                    Assert.Equal(HttpStatusCode.OK, ConditionalGetHelper.PerformGet(url, null, out firstEtag));

                    //second request should give 304 not modified
                    Assert.Equal(HttpStatusCode.NotModified, ConditionalGetHelper.PerformGet(url, firstEtag, out firstEtag));

                    //change index etag by inserting new doc
                    InsertCameraDataAndWaitForNonStaleResults(store, GetCameras(1));

                    Etag secondEtag;

                    //changing the index should give 200 OK
                    Assert.Equal(HttpStatusCode.OK, ConditionalGetHelper.PerformGet(url, firstEtag, out secondEtag));

                    //next request should give 304 not modified
                    Assert.Equal(HttpStatusCode.NotModified, ConditionalGetHelper.PerformGet(url, secondEtag, out secondEtag));
                }
        }
示例#2
0
        public void RemoteDynamicFacetedSearchHonorsConditionalGet()
        {
            using (GetNewServer())
                using (var store = new DocumentStore
                {
                    Url = "http://localhost:8079"
                }.Initialize())
                {
                    CreateCameraCostIndex(store);

                    InsertCameraDataAndWaitForNonStaleResults(store, GetCameras(1));

                    var facets = GetFacets();

                    var jsonFacets = JsonConvert.SerializeObject(facets);

                    Etag firstEtag;

                    var queryUrl = store.Url + "/facets/CameraCost?query=Manufacturer%253A{0}&facetStart=0&facetPageSize=";

                    var requestUrl = string.Format(queryUrl, "canon");

                    Assert.Equal(HttpStatusCode.OK, ConditionalGetHelper.PerformPost(requestUrl, jsonFacets, null, out firstEtag));

                    //second request should give 304 not modified
                    Assert.Equal(HttpStatusCode.NotModified, ConditionalGetHelper.PerformPost(requestUrl, jsonFacets, firstEtag, out firstEtag));

                    //change index etag by inserting new doc
                    InsertCameraDataAndWaitForNonStaleResults(store, GetCameras(1));

                    Etag secondEtag;

                    //changing the index should give 200 OK
                    Assert.Equal(HttpStatusCode.OK, ConditionalGetHelper.PerformPost(requestUrl, jsonFacets, firstEtag, out secondEtag));

                    //next request should give 304 not modified
                    Assert.Equal(HttpStatusCode.NotModified, ConditionalGetHelper.PerformPost(requestUrl, jsonFacets, secondEtag, out secondEtag));
                }
        }