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_AttributesToReturn_And_Exclusion_Filters()
        {
            //Arrange
            var expected =
                new XElement("SearchControls",
                             new XAttribute("excludeBin", "true"),
                             new XAttribute("excludeDocument", "true"),
                             new XElement("AttributesToReturn",
                                          new XElement("Attribute", new XAttribute("name", "Bar"))));

            var builder = new SearchControlBuilder();

            builder
            .AddRequestFilters(
                Filter.ExcludeBin(),
                Filter.ExcludeDocument()
                )
            .ReturnAttributes(AttributeToReturn.WithName("Bar"));

            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_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"));
        }
        public void Can_Generate_Api_Xml_With_SearchControl_Filters_And_AttributesToReturn()
        {
            //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 XAttribute("excludeBin", "true"),
                                          new XAttribute("excludeDocument", "true"),
                                          new XElement("AttributesToReturn",
                                                       new XElement("Attribute",
                                                                    new XAttribute("name", "Foo")))));

            var builder = new SearchControlBuilder();

            builder
            .AddRequestFilters(
                Filter.ExcludeBin(),
                Filter.ExcludeDocument()
                )
            .ReturnAttributes(AttributeToReturn.WithName("Foo"));

            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"));
        }
        public void Can_Generate_Api_Xml_With_LanguagesToReturn()
        {
            //Arrange
            var expected =
                new XElement("SearchControls",
                             new XElement("LanguagesToReturn",
                                          new XElement("Language", new XAttribute("id", "10"))));

            var builder = new SearchControlBuilder();

            builder.ReturnLanguages(LanguageToReturn.WithLanguageId(10));

            var controls = builder.Build();

            //Act
            var actual = controls.ToAdsml();

            //Assert
            Assert.That(actual.ToString(), Is.EqualTo(expected.ToString()));

            Console.WriteLine(actual.ToString());
        }
Пример #7
0
        public ISearchControlBuilder ConfigureSearchControls()
        {
            this.SearchControlBuilder = new SearchControlBuilder();

            return(this.SearchControlBuilder);
        }