public void ConstructorSetsPropertiesFromArguments()
        {
            const string expectedValue = "r2d2"; 

            var criteria = new QueryStringCriteria(expectedValue);

            Assert.Equal(expectedValue, criteria.Value);
        }
        public void ConstructorWithOneParameterSetsPropertiesFromArguments()
        {
            const string expectedValue = "r2d2"; 

            var criteria = new QueryStringCriteria(expectedValue);

            Assert.Equal(expectedValue, criteria.Value);
            Assert.Equal(Enumerable.Empty<string>(), criteria.Fields);
        }
        public void ConstructorWithAllParametersSetsPropertiesFromArguments()
        {
            const string expectedValue = "c3po";
            var expectedFields = new[] { "jawas", "homestead" };

            var criteria = new QueryStringCriteria(expectedValue, expectedFields);

            Assert.Equal(expectedValue, criteria.Value);
            Assert.Equal(expectedFields, criteria.Fields);
        }
        public void BodyContainsQueryString()
        {
            const string expectedQuery = "this is my query string";
            var queryString = new QueryStringCriteria(expectedQuery);

            var formatter = new SearchRequestFormatter(defaultConnection, mapping, new SearchRequest { DocumentType = "type1", Query = queryString });
            var body = JObject.Parse(formatter.Body);

            var result = body.TraverseWithAssert("query", "query_string", "query");
            Assert.Equal(expectedQuery, result.ToString());
        }
        public void BodyContainsQueryStringWithFields()
        {
            const string expectedQuery = "this is my query string";
            var expectedFields = new[] { "green", "brown", "yellow" };
            var queryString = new QueryStringCriteria(expectedQuery, expectedFields);

            var formatter = new SearchRequestFormatter(defaultConnection, mapping, new SearchRequest { DocumentType = "type1", Query = queryString });
            var body = JObject.Parse(formatter.Body);

            var result = body.TraverseWithAssert("query", "query_string");
            Assert.Equal(expectedQuery, result.TraverseWithAssert("query").ToString());
            Assert.Equal(expectedFields, result.TraverseWithAssert("fields").Select(f => f.ToString()).ToArray());
        }
        static JObject Build(QueryStringCriteria criteria)
        {
            var unformattedValue = criteria.Value; // We do not reformat query_string

            var queryStringCriteria = new JObject(new JProperty("query", unformattedValue));

            if (criteria.Fields.Any())
                queryStringCriteria.Add(new JProperty("fields", new JArray(criteria.Fields)));

            return new JObject(new JProperty(criteria.Name, queryStringCriteria));
        }
 private static JObject Build(QueryStringCriteria criteria)
 {
     var unformattedValue = criteria.Value; // We do not reformat query_string
     return new JObject(new JProperty(criteria.Name, new JObject(new JProperty("query", unformattedValue))));
 }