public void TestOptionalSourceInSessionAndUserRequest()
        {
            var connection = new SessionConfig("localhost");

            var request       = ItemWebApiRequestBuilder.ReadItemsRequestWithSitecoreQuery("/sitecore/content/home/*").Build();
            var requestMerger = new UserRequestMerger(connection, null);
            var mergedRequest = requestMerger.FillReadItemByQueryGaps(request);

            var urlBuilder = new ItemByQueryUrlBuilder(RestServiceGrammar.ItemWebApiV2Grammar(), WebApiUrlParameters.ItemWebApiV2UrlParameters());

            string result   = urlBuilder.GetUrlForRequest(mergedRequest);
            string expected = "http://localhost/-/item/v1?query=%2fsitecore%2fcontent%2fhome%2f%2a";

            Assert.AreEqual(expected, result);
        }
        public void TestDatabaseAndExplicitLanguageAndPayload()
        {
            var connection = new SessionConfig("localhost");

            var request = ItemWebApiRequestBuilder.ReadItemsRequestWithSitecoreQuery("/sitecore/content/home/*")
                          .Language("da")
                          .Payload(PayloadType.Content)
                          .Build();
            var requestMerger = new UserRequestMerger(connection, null);
            var mergedRequest = requestMerger.FillReadItemByQueryGaps(request);

            var urlBuilder = new ItemByQueryUrlBuilder(RestServiceGrammar.ItemWebApiV2Grammar(), WebApiUrlParameters.ItemWebApiV2UrlParameters());

            string result   = urlBuilder.GetUrlForRequest(mergedRequest);
            string expected = "http://localhost/-/item/v1?language=da&payload=content&query=%2fsitecore%2fcontent%2fhome%2f%2a";

            Assert.AreEqual(expected, result);
        }