public void Can_Combine_All_Api_Commands() { //Arrange var aqlBuilder = new AqlQueryBuilder(); //Act aqlBuilder.BasePath("/foo/bar") .SearchRequestFilters(Filter.ReturnNoAttributes()) .QueryType(AqlQueryTypes.Below) .ObjectTypeToFind(12) .QueryString("#215 = \"foo\"") .ConfigureSearchControls() .AddRequestFilters( Filter.ExcludeBin(), Filter.ExcludeDocument(), Filter.CountLimit(1)) .ReturnAttributes(AttributeToReturn.WithName("Artikelnummer")) .ReturnLanguages(LanguageToReturn.WithLanguageId(10)) .ConfigureReferenceHandling( ReferenceOptions.ResolveAttributes(), ReferenceOptions.ResolveSpecialCharacters(), ReferenceOptions.UseChannel(3), ReferenceOptions.ReturnValuesOnly()); Console.WriteLine(aqlBuilder.Build().ToAdsml().ToString()); var request = new BatchRequest(aqlBuilder.Build()); //Assert Assert.DoesNotThrow(() => aqlBuilder.Build()); Assert.DoesNotThrow(() => request.ToAdsml().ValidateAdsmlDocument("adsml.xsd")); }
public void Can_Generate_Api_Xml_With_ReferenceControls() { //Arrange var expected = new XElement("SearchControls", new XElement("ReferenceControls", new XAttribute("channelId", "3"), new XAttribute("resolveAttributes", "true"), new XAttribute("resolveSpecialCharacters", "true"), new XAttribute("valueOnly", "true"))); var builder = new SearchControlBuilder(); builder.ConfigureReferenceHandling( ReferenceOptions.UseChannel(3), ReferenceOptions.ResolveAttributes(), ReferenceOptions.ResolveSpecialCharacters(), ReferenceOptions.ReturnValuesOnly() ); var controls = builder.Build(); //Act var actual = controls.ToAdsml(); //Assert Assert.That(actual.ToString(), Is.EqualTo(expected.ToString())); Console.WriteLine(actual.ToString()); }
public void Can_Generate_Api_Xml_With_All_Controls() { //Arrange var expected = new XElement("SearchControls", new XAttribute("excludeBin", "true"), new XAttribute("excludeDocument", "true"), new XAttribute("returnAllAttributes", "true"), new XAttribute("allowPaging", "true"), new XAttribute("pageSize", "2"), new XAttribute("countLimit", "5"), new XElement("AttributesToReturn", new XElement("Attribute", new XAttribute("name", "Artikelnummer")), new XElement("Attribute", new XAttribute("name", "Sammanslagna dataattribut"))), new XElement("LanguagesToReturn", new XElement("Language", new XAttribute("id", "10")), new XElement("Language", new XAttribute("id", "11"))), new XElement("ReferenceControls", new XAttribute("channelId", "3"), new XAttribute("resolveAttributes", "true"), new XAttribute("resolveSpecialCharacters", "true"), new XAttribute("valueOnly", "true"))).ToString(); var builder = new SearchControlBuilder(); builder .AddRequestFilters( Filter.ExcludeBin(), Filter.ExcludeDocument(), Filter.ReturnAllAttributes(true), Filter.AllowPaging(), Filter.PageSize(2), Filter.CountLimit(5)) .ReturnAttributes( AttributeToReturn.WithName("Artikelnummer"), AttributeToReturn.WithName("Sammanslagna dataattribut") ) .ReturnLanguages( LanguageToReturn.WithLanguageId(10), LanguageToReturn.WithLanguageId(11) ) .ConfigureReferenceHandling( ReferenceOptions.UseChannel(3), ReferenceOptions.ResolveAttributes(), ReferenceOptions.ResolveSpecialCharacters(), ReferenceOptions.ReturnValuesOnly()); var searchControl = builder.Build(); //Act var actual = searchControl.ToAdsml().ToString(); Console.WriteLine(actual); //Assert Assert.That(actual, Is.EqualTo(expected)); }
public void Can_Generate_A_ResolveSpecialCharacters_Filter() { //Arrange var expected = new XAttribute("resolveSpecialCharacters", "true"); var filter = ReferenceOptions.ResolveSpecialCharacters(); //Act var actual = filter.ToAdsml(); //Assert Assert.That(actual.ToString(), Is.EqualTo(expected.ToString())); }
public void Can_Generate_Api_Xml_With_SearchControl_ReferenceControls() { //Arrange var expected = new XElement("SearchRequest", new XAttribute("base", "/foo/bar"), new XAttribute("returnNoAttributes", "true"), new XElement("Filter", new XElement("FilterString", "FIND BELOW #10 WHERE (#10 = \"foo\")")), new XElement("SearchControls", new XElement("ReferenceControls", new XAttribute("channelId", "3"), new XAttribute("resolveAttributes", "true"), new XAttribute("resolveSpecialCharacters", "true"), new XAttribute("valueOnly", "true")))); var builder = new SearchControlBuilder(); builder.ConfigureReferenceHandling( ReferenceOptions.UseChannel(3), ReferenceOptions.ResolveAttributes(), ReferenceOptions.ResolveSpecialCharacters(), ReferenceOptions.ReturnValuesOnly() ); var searchControls = builder.Build(); var aql = new AqlSearchRequest( "/foo/bar", new ISearchRequestFilter[] { Filter.ReturnNoAttributes() }, AqlQueryTypes.Below, new IdNameReference(10), "#10 = \"foo\"", searchControls ); //Act var actual = aql.ToAdsml(); var request = new BatchRequest(aql).ToAdsml(); Console.WriteLine(actual.ToString()); //Assert Assert.That(actual, Is.Not.Null); Assert.That(actual.ToString(), Is.EqualTo(expected.ToString())); Assert.DoesNotThrow(() => request.ValidateAdsmlDocument("adsml.xsd")); }