示例#1
0
        public void TestUpdateItemByPathWithNullFieldsToUpdateReturnsException()
        {
            var exception = Assert.Throws <ArgumentNullException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithPath("/path")
                                                                  .AddFieldsRawValuesByNameToSet(null)
                                                                  .Build());

            Assert.IsTrue(exception.Message.Contains("UpdateItemByPathRequestBuilder.FieldsRawValuesByName"));
        }
示例#2
0
        public void TestUpdateItemByPathWithTwoDatabasesReturnsException()
        {
            var exception = Assert.Throws <InvalidOperationException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithPath("/path")
                                                                      .Database("db1")
                                                                      .Database("db2")
                                                                      .Build());

            Assert.AreEqual("UpdateItemByPathRequestBuilder.Database : Property cannot be assigned twice.", exception.Message);
        }
        public void TestItemNameAndFieldNameIsCaseInsensitive()
        {
            IUpdateItemByPathRequest request = ItemWebApiRequestBuilder.UpdateItemRequestWithPath("/sitecore/content/home")
                                               .AddFieldsRawValuesByNameToSet("field1", "VaLuE1")
                                               .AddFieldsRawValuesByNameToSet("field2", "VaLuE2")
                                               .Build();

            IUpdateItemByPathRequest autocompletedRequest = this.requestMerger.FillUpdateItemByPathGaps(request);

            string result   = this.builder.GetUrlForRequest(autocompletedRequest);
            string expected = "http://mobiledev1ua1.dk.sitecore.net:7119/-/item/v234%2fsitecore%2fshell%2f"
                              + "sitecore%2fcontent%2fhome"
                              + "?sc_database=web"
                              + "&language=en";

            string fieldsResult         = this.builder.GetFieldValuesList(autocompletedRequest);
            string expectedFieldsResult = "field1=VaLuE1&field2=VaLuE2";

            Assert.AreEqual(expected, result);
            Assert.AreEqual(expectedFieldsResult, fieldsResult);
        }
示例#4
0
        public async void TestUpdateItemByIdWithNotExistentField()
        {
            await this.RemoveAll();

            const string FieldName  = "Texttt";
            var          fieldValue = RandomText();

            ISitecoreItem item = await this.CreateItem("item to updata not existen field");

            var request = ItemWebApiRequestBuilder.UpdateItemRequestWithPath(item.Path)
                          .AddFieldsRawValuesByNameToSet(FieldName, fieldValue)
                          .AddFieldsToRead(FieldName)
                          .Build();

            var result = await this.session.UpdateItemAsync(request);

            Assert.AreEqual(1, result.ResultCount);
            var resultItem = result[0];

            Assert.AreEqual(item.Id, resultItem.Id);
            Assert.AreEqual(0, resultItem.FieldsCount);
        }
        private async void SendUpdateRequest()
        {
            try
            {
                using (var session = this.instanceSettings.GetSession())
                {
                    var request = ItemWebApiRequestBuilder.UpdateItemRequestWithPath(this.CreatedItemPath)
                                  .AddFieldsRawValuesByNameToSet("Title", titleField.Text)
                                  .AddFieldsRawValuesByNameToSet("Text", textField.Text)
                                  .Build();

                    this.ShowLoader();

                    ScItemsResponse response = await session.UpdateItemAsync(request);

                    if (response.Any())
                    {
                        ISitecoreItem item = response[0];
                        AlertHelper.ShowLocalizedAlertWithOkOption("The item created successfully", "Item path: " + item.Path);
                    }
                    else
                    {
                        AlertHelper.ShowLocalizedAlertWithOkOption("Message", "Item is not exist");
                    }
                }
            }
            catch (Exception e)
            {
                AlertHelper.ShowLocalizedAlertWithOkOption("Error", e.Message);
            }
            finally
            {
                BeginInvokeOnMainThread(delegate
                {
                    this.HideLoader();
                });
            }
        }
示例#6
0
        public async void TestUpdateItemByIdSetHtmlField()
        {
            await this.RemoveAll();

            const string FieldName  = "Text";
            const string FieldValue = "<div>Welcome to Sitecore!</div>";

            ISitecoreItem item = await this.CreateItem("item to updata not existen field");

            var request = ItemWebApiRequestBuilder.UpdateItemRequestWithPath(item.Path)
                          .AddFieldsRawValuesByNameToSet(FieldName, FieldValue)
                          .AddFieldsToRead(FieldName)
                          .Build();

            var result = await this.session.UpdateItemAsync(request);

            Assert.AreEqual(1, result.ResultCount);
            var resultItem = result[0];

            Assert.AreEqual(item.Id, resultItem.Id);
            Assert.AreEqual(1, resultItem.FieldsCount);
            Assert.AreEqual(FieldValue, resultItem[FieldName].RawValue);
        }
示例#7
0
        public async void TestUpdateInternationalItemByPath()
        {
            await this.RemoveAll();

            const string  TextValue = "ఉక్రెయిన్ కు గ్లోరీ Ruhm für die Ukraine";
            const string  ItemName  = "גלורי לאוקראינה";
            ISitecoreItem item      = await this.CreateItem(ItemName);

            var request = ItemWebApiRequestBuilder.UpdateItemRequestWithPath(testData.Items.CreateItemsHere.Path + "/" + ItemName)
                          .AddFieldsRawValuesByNameToSet("Text", TextValue)
                          .AddFieldsToRead("Text")
                          .Payload(PayloadType.Content)
                          .Build();

            var result = await this.session.UpdateItemAsync(request);

            Assert.AreEqual(1, result.ResultCount);
            var resultItem = result[0];

            Assert.AreEqual(item.Id, resultItem.Id);
            Assert.AreEqual(item.DisplayName, resultItem.DisplayName);
            Assert.AreEqual(TextValue, resultItem["Text"].RawValue);
        }