예제 #1
0
        public void RemoteFacetedSearchHonorsConditionalGet()
        {
            using (var store = GetDocumentStore())
            {
                Setup(store, _stronglyTypedFacets);

                string firstChangeVector;

                const string queryUrl = "/queries?query=FROM%20INDEX%20'CameraCost'%20WHERE%20Manufacturer%20=%20'canon'&facetDoc=facets%2FCameraFacets&facetStart=0&facetPageSize=&op=facets";

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

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

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

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

                string secondChangeVector;

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

                //next request should give 304 not modified
                Assert.Equal(HttpStatusCode.NotModified, ConditionalGetHelper.PerformGet(store, url, secondChangeVector, out secondChangeVector));
            }
        }
예제 #2
0
        public void RemoteDynamicFacetedSearchHonorsConditionalGet()
        {
            using (var store = GetDocumentStore())
            {
                CreateCameraCostIndex(store);

                InsertCameraData(store, GetCameras(1));

                var query = new FacetQuery
                {
                    Facets = GetFacets(),
                    Query  = "FROM INDEX 'CameraCost' WHERE Manufacturer = 'canon'"
                };

                var queryAsJson = JsonConvert.SerializeObject(query);

                string firstChangeVector;

                Assert.Equal(HttpStatusCode.OK, ConditionalGetHelper.PerformPost(store, "/queries", queryAsJson, null, out firstChangeVector));

                //second request should give 304 not modified
                Assert.Equal(HttpStatusCode.NotModified, ConditionalGetHelper.PerformPost(store, "/queries", queryAsJson, firstChangeVector, out firstChangeVector));

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

                string secondChangeVector;

                //changing the index should give 200 OK
                Assert.Equal(HttpStatusCode.OK, ConditionalGetHelper.PerformPost(store, "/queries", queryAsJson, firstChangeVector, out secondChangeVector));

                //next request should give 304 not modified
                Assert.Equal(HttpStatusCode.NotModified, ConditionalGetHelper.PerformPost(store, "/queries", queryAsJson, secondChangeVector, out secondChangeVector));
            }
        }
예제 #3
0
        public void RemoteDynamicFacetedSearchHonorsConditionalGet()
        {
            using (var store = GetDocumentStore())
            {
                CreateCameraCostIndex(store);

                InsertCameraData(store, GetCameras(1));

                var facets = GetFacets();

                var jsonFacets = JsonConvert.SerializeObject(facets);

                long?firstEtag;

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

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

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

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

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

                long?secondEtag;

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

                //next request should give 304 not modified
                Assert.Equal(HttpStatusCode.NotModified, ConditionalGetHelper.PerformPost(store, requestUrl, jsonFacets, secondEtag, out secondEtag));
            }
        }
예제 #4
0
        public void RemoteFacetedSearchHonorsConditionalGet()
        {
            using (var store = GetDocumentStore())
            {
                Setup(store, _stronglyTypedFacets);

                long?firstEtag;

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

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

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

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

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

                long?secondEtag;

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

                //next request should give 304 not modified
                Assert.Equal(HttpStatusCode.NotModified, ConditionalGetHelper.PerformGet(store, url, secondEtag, out secondEtag));
            }
        }