Example #1
0
        public void Can_Combine_All_Operations()
        {
            //Arrange
            var builder = new ModifyRequestBuilder();

            //Act
            builder.Context("/foo/bar")
            .ReturnNoAttributes()
            .FailOnError()
            .AddModification(Modifications.RemoveAttribute, SimpleAttribute.New(AttributeTypes.Integer, "objectId"))
            .AddModifications(() => new List <ModificationItem> {
                ModificationItem.New(
                    Modifications.AdvanceState, StructureAttribute.New(390, new StructureValue(10))
                    ),
                ModificationItem.New(
                    Modifications.RegressState, StructureAttribute.New(24, new StructureValue(10))
                    )
            })
            .ConfigureLookupControls()
            .ReturnAttributes(390, 24)
            .ReturnLanguages(10);

            var request = new BatchRequest(builder.Build());

            Console.WriteLine(builder.Build().ToAdsml().ToString());

            //Assert
            Assert.DoesNotThrow(() => builder.Build());
            Assert.DoesNotThrow(() => request.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #2
0
        public void CanGenerateApiXmlWithLookupControl()
        {
            //Arrange
            string expexcted =
                new XElement("LookupRequest",
                             new XAttribute("name", "/Schema/Attribute Sets/Översättningsattribut"),
                             new XElement("LookupControls",
                                          new XElement("AttributesToReturn",
                                                       new XAttribute("namelist", "members")),
                                          new XElement("LanguagesToReturn",
                                                       new XElement("Language",
                                                                    new XAttribute("id", "10"))))).ToString();

            var lookupBuilder = new LookupControlBuilder();

            lookupBuilder.AttributeNamelist("members").ReturnLanguages(LanguageToReturn.WithLanguageId(10));

            //Act
            var req          = new LookupRequest("/Schema/Attribute Sets/Översättningsattribut", lookupBuilder.Build());
            var actual       = req.ToAdsml();
            var batchRequest = new BatchRequest(req);

            Console.WriteLine(actual);

            //Assert
            Assert.That(actual.ToString(), Is.EqualTo(expexcted));
            Assert.DoesNotThrow(() => batchRequest.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #3
0
        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"));
        }
Example #4
0
        public void Can_Generate_Api_Xml_With_RequestFilter()
        {
            //Arrange
            string expected =
                new XElement("LinkRequest",
                             new XAttribute("name", "foo"),
                             new XAttribute("targetLocation", "bar"),
                             new XAttribute("returnNoAttributes", "true")).ToString();

            var request = new LinkRequest("foo", "bar")
            {
                RequestFilters = new List <ILinkRequestFilter> {
                    Filter.ReturnNoAttributes()
                }
            };

            //Act
            var actual       = request.ToAdsml();
            var batchRequest = new BatchRequest(request);

            Console.WriteLine(actual.ToString());

            //Assert
            Assert.That(actual.ToString(), Is.EqualTo(expected));
            Assert.DoesNotThrow(() => batchRequest.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #5
0
        public void Can_Generate_Api_Xml_With_CopyControl()
        {
            //Arrange
            string expected =
                new XElement("LinkRequest",
                             new XAttribute("name", "foo"),
                             new XAttribute("targetLocation", "bar"),
                             new XElement("CopyControls",
                                          new XAttribute("copyLocalAttributes", "true"))).ToString();

            var request = new LinkRequest("foo", "bar")
            {
                CopyControl = new CopyControl(new List <ICopyControlFilter> {
                    Filter.CopyLocalAttributesFromSource()
                })
            };

            //Act
            var actual       = request.ToAdsml();
            var batchRequest = new BatchRequest(request);

            Console.WriteLine(actual.ToString());

            //Assert
            Assert.That(actual.ToString(), Is.EqualTo(expected));
            Assert.DoesNotThrow(() => batchRequest.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #6
0
        public void Can_Generate_Api_Xml()
        {
            //Arrange
            string expected =
                new XElement("ModifyRequest",
                             new XAttribute("name", "/foo/bar"),
                             new XElement("ModificationItem",
                                          new XAttribute("operation", "addValue"),
                                          new XElement("AttributeDetails",
                                                       new XElement("StructureAttribute",
                                                                    new XAttribute("id", "31"),
                                                                    new XElement("StructureValue",
                                                                                 new XAttribute("langId", "10"),
                                                                                 new XAttribute("scope", "global"),
                                                                                 new XCData("foo")))))).ToString();

            //Act
            var modReq = new ModifyRequest("/foo/bar", new List <ModificationItem> {
                ModificationItem.New(
                    Modifications.AddValue,
                    StructureAttribute.New(31, new StructureValue(10, "foo"))
                    )
            });

            var actual  = modReq.ToAdsml();
            var request = new BatchRequest(modReq);

            Console.WriteLine(actual.ToString());

            //Assert
            Assert.That(actual.ToString(), Is.EqualTo(expected));
            Assert.DoesNotThrow(() => request.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
        public void CanBuildCreateRequest()
        {
            //Arrange
            var builder = new CreateRequestBuilder();

            //Act
            builder
            .NewContextName("/foo/bar")
            .ObjectTypeToCreate("baz")
            .ReturnNoAttributes()
            .FailOnError()
            .UpdateIfExists()
            .AttributesToSet(
                StructureAttribute.New(215, new StructureValue(10, "169010"))
                )
            .ConfigureLookupControls()
            .ReturnAttributes(AttributeToReturn.WithName("Artikelnummer"))
            .ReturnLanguages(LanguageToReturn.WithLanguageId(10))
            .ConfigureReferenceHandling(
                ReferenceOptions.ReturnValuesOnly()
                );

            var request = new BatchRequest(builder.Build());

            //Assert
            Assert.That(builder.Build(), Is.Not.Null);
            Assert.DoesNotThrow(() => request.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
        public void CanGenerateApiXmlWithLookupControl()
        {
            //Arrange
            var expected =
                new XElement("CreateRequest",
                             new XAttribute("name", "fooPath"),
                             new XAttribute("type", "fooObjectTypeName"),
                             new XElement("LookupControls",
                                          new XElement("AttributesToReturn",
                                                       new XElement("Attribute",
                                                                    new XAttribute("name", "fooAttributeName")))),
                             new XElement("AttributesToSet",
                                          new XElement("StructureAttribute",
                                                       new XAttribute("id", "215"),
                                                       new XAttribute("name", "fooAttributeName"),
                                                       new XElement("StructureValue",
                                                                    new XAttribute("langId", "10"),
                                                                    new XAttribute("scope", "global"),
                                                                    new XCData("fooValue")))));

            var value = new StructureValue {
                LanguageId = 10, Value = "fooValue"
            };
            var attribute = new StructureAttribute {
                DefinitionId = 215,
                Name         = "fooAttributeName",
                Values       = new List <StructureValue> {
                    value
                }
            };

            var lcb = new LookupControlBuilder();

            lcb.ReturnAttributes(AttributeToReturn.WithName("fooAttributeName"));
            var lc = lcb.Build();

            var create = new CreateRequest("fooObjectTypeName", "fooPath", null, attribute)
            {
                LookupControl = lc
            };

            //Act
            var actual  = create.ToAdsml();
            var request = new BatchRequest(create);

            Console.WriteLine(actual);

            //Assert
            Assert.That(actual, Is.Not.Null);
            Assert.That(actual.ToString(), Is.EqualTo(expected.ToString()));
            Assert.DoesNotThrow(() => request.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
        public void CanGenerateApiXmlWithRequestFilters()
        {
            //Arrange
            var expected =
                new XElement("CreateRequest",
                             new XAttribute("name", "fooPath"),
                             new XAttribute("type", "fooObjectTypeName"),
                             new XAttribute("returnNoAttributes", "true"),
                             new XAttribute("failOnError", "true"),
                             new XAttribute("updateIfExists", "true"),
                             new XElement("AttributesToSet",
                                          new XElement("StructureAttribute",
                                                       new XAttribute("id", "215"),
                                                       new XAttribute("name", "fooAttributeName"),
                                                       new XElement("StructureValue",
                                                                    new XAttribute("langId", "10"),
                                                                    new XAttribute("scope", "global"),
                                                                    new XCData("fooValue")))));

            var value = new StructureValue {
                LanguageId = 10, Value = "fooValue"
            };
            var attribute = new StructureAttribute {
                DefinitionId = 215,
                Name         = "fooAttributeName",
                Values       = new List <StructureValue> {
                    value
                }
            };

            var create = new CreateRequest("fooObjectTypeName", "fooPath", null, attribute)
            {
                RequestFilters =
                    new List <ICreateRequestFilter> {
                    Filter.ReturnNoAttributes(),
                Filter.FailOnError(),
                Filter.UpdateIfExists()
                }
            };

            //Act
            var actual  = create.ToAdsml();
            var request = new BatchRequest(create);

            //Assert
            Assert.That(actual, Is.Not.Null);
            Assert.That(actual.ToString(), Is.EqualTo(expected.ToString()));
            Assert.DoesNotThrow(() => request.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #10
0
        public void Can_Generate_Api_Xml_With_LookupControls()
        {
            //Arrange
            string expected =
                new XElement("ModifyRequest",
                             new XAttribute("name", "/foo/bar"),
                             new XElement("ModificationItem",
                                          new XAttribute("operation", "addValue"),
                                          new XElement("AttributeDetails",
                                                       new XElement("StructureAttribute",
                                                                    new XAttribute("id", "31"),
                                                                    new XElement("StructureValue",
                                                                                 new XAttribute("langId", "10"),
                                                                                 new XAttribute("scope", "global"),
                                                                                 new XCData("foo"))))),
                             new XElement("LookupControls",
                                          new XElement("AttributesToReturn",
                                                       new XElement("Attribute",
                                                                    new XAttribute("name", "Artikelnummer"))),
                                          new XElement("LanguagesToReturn",
                                                       new XElement("Language",
                                                                    new XAttribute("id", "10"))))).ToString();

            var lookupBuilder = new LookupControlBuilder();

            lookupBuilder.ReturnAttributes(AttributeToReturn.WithName("Artikelnummer"))
            .ReturnLanguages(LanguageToReturn.WithLanguageId(10));

            //Act
            var modReq = new ModifyRequest("/foo/bar", new List <ModificationItem> {
                ModificationItem.New(
                    Modifications.AddValue,
                    StructureAttribute.New(31, new StructureValue(10, "foo"))
                    )
            })
            {
                LookupControl = lookupBuilder.Build()
            };

            var actual  = modReq.ToAdsml();
            var request = new BatchRequest(modReq);

            Console.WriteLine(actual.ToString());

            //Assert
            Assert.That(actual.ToString(), Is.EqualTo(expected));
            Assert.DoesNotThrow(() => request.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #11
0
        public void Can_Build_Api_Xml()
        {
            //Arrange
            string expected = new XElement("DeleteRequest", new XAttribute("name", "foo")).ToString();

            //Act
            var deleteRequest = new DeleteRequest("foo");
            var batchRequest  = new BatchRequest(deleteRequest);
            var actual        = deleteRequest.ToAdsml();

            Console.WriteLine(actual);

            //Assert
            Assert.That(actual.ToString(), Is.EqualTo(expected));
            Assert.DoesNotThrow(() => batchRequest.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #12
0
        public void CanGenerateBasicApiXml()
        {
            //Arrange
            string expected = new XElement("LookupRequest", new XAttribute("name", "/foo/bar")).ToString();

            //Act
            var req          = new LookupRequest("/foo/bar");
            var actual       = req.ToAdsml();
            var batchRequest = new BatchRequest(req);

            Console.WriteLine(actual);

            //Assert
            Assert.That(actual.ToString(), Is.EqualTo(expected));
            Assert.DoesNotThrow(() => batchRequest.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #13
0
        public void Can_Build_ModifyRequest()
        {
            //Arrange
            var builder = new ModifyRequestBuilder();

            //Act
            builder.Context("/foo/bar")
            .AddModification(Modifications.RemoveAttribute, SimpleAttribute.New(AttributeTypes.Integer, "objectId"));

            var request      = builder.Build();
            var batchRequest = new BatchRequest(request);

            //Assert
            Assert.That(request, Is.Not.Null);
            Assert.That(request, Is.InstanceOf <ModifyRequest>());

            Assert.DoesNotThrow(() => batchRequest.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #14
0
        public void Can_Build_AqlSearchRequest()
        {
            //Arrange
            var builder = new AqlQueryBuilder();

            //Act
            builder.BasePath("/foo/bar")
            .ObjectTypeToFind("baz")
            .QueryString("foo");

            var aql     = builder.Build();
            var request = new BatchRequest(aql);

            //Assert
            Assert.That(aql, Is.Not.Null);
            Assert.That(aql, Is.InstanceOf <AqlSearchRequest>());

            Assert.DoesNotThrow(() => request.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #15
0
        public void Can_Generate_Api_Xml()
        {
            //Arrange
            string expected =
                new XElement("MoveRequest",
                             new XAttribute("name", "foo"),
                             new XAttribute("targetLocation", "bar")).ToString();

            var request = new MoveRequest("foo", "bar");

            //Act
            var actual       = request.ToAdsml();
            var batchRequest = new BatchRequest(request);

            Console.WriteLine(actual.ToString());

            //Assert
            Assert.That(actual.ToString(), Is.EqualTo(expected));
            Assert.DoesNotThrow(() => batchRequest.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #16
0
        public void Can_Build_ModifyRequest_With_Request_Filters()
        {
            //Arrange
            var builder = new ModifyRequestBuilder();

            //Act
            builder.Context("/foo/bar")
            .ReturnNoAttributes()
            .FailOnError()
            .AddModification(Modifications.RemoveAttribute, SimpleAttribute.New(AttributeTypes.Integer, "objectId"));

            var request      = builder.Build();
            var batchRequest = new BatchRequest(request);

            //Assert
            Assert.That(request.RequestFilters.Count(), Is.EqualTo(2));
            Assert.That(request.RequestFilters.ElementAt(0), Is.InstanceOf <ReturnNoAttributesFilter>());
            Assert.That(request.RequestFilters.ElementAt(1), Is.InstanceOf <FailOnErrorFilter>());

            Assert.DoesNotThrow(() => batchRequest.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }
Example #17
0
        public void Can_Generate_Api_Xml_With_CopyControl_Containing_LookupControl()
        {
            //Arrange
            string expected =
                new XElement("MoveRequest",
                             new XAttribute("name", "foo"),
                             new XAttribute("targetLocation", "bar"),
                             new XElement("CopyControls",
                                          new XAttribute("copyLocalAttributes", "true"),
                                          new XElement("LookupControls",
                                                       new XElement("AttributesToReturn",
                                                                    new XElement("Attribute",
                                                                                 new XAttribute("name", "Artikelnummer")))))).ToString();

            var lookupBuilder = new LookupControlBuilder();

            lookupBuilder.ReturnAttributes(AttributeToReturn.WithName("Artikelnummer"));

            var request = new MoveRequest("foo", "bar")
            {
                CopyControl =
                    new CopyControl(new List <ICopyControlFilter> {
                    Filter.CopyLocalAttributesFromSource()
                },
                                    lookupBuilder.Build())
            };

            //Act
            var actual       = request.ToAdsml();
            var batchRequest = new BatchRequest(request);

            Console.WriteLine(actual.ToString());

            //Assert
            Assert.That(actual.ToString(), Is.EqualTo(expected));
            Assert.DoesNotThrow(() => batchRequest.ToAdsml().ValidateAdsmlDocument("adsml.xsd"));
        }