Пример #1
0
        public void TestUpdateItemByEmptyIdReturnsException()
        {
            var exception = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithId("")
                                                              .Build());

            Assert.AreEqual("UpdateItemByIdRequestBuilder.ItemId : The input cannot be empty.", exception.Message);
        }
Пример #2
0
        public void TestUpdateItemByInvalidIdReturnsException()
        {
            var exception = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithId(testData.Items.Home.Path)
                                                              .Build());

            Assert.AreEqual("UpdateItemByIdRequestBuilder.ItemId : Item id must have curly braces '{}'", exception.Message);
        }
Пример #3
0
        public void TestFieldsAppending()
        {
            Dictionary <string, string> fields = new Dictionary <string, string>();

            fields.Add("field1", "VaLuE1");
            fields.Add("field2", "VaLuE2");

            IUpdateItemByIdRequest request = ItemWebApiRequestBuilder.UpdateItemRequestWithId("{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}")
                                             .Database("db")
                                             .Language("lg")
                                             .Payload(PayloadType.Full)
                                             .AddFieldsRawValuesByNameToSet(fields)
                                             .AddFieldsRawValuesByNameToSet("field3", "VaLuE3")
                                             .Build();

            IUpdateItemByIdRequest autocompletedRequest = this.requestMerger.FillUpdateItemByIdGaps(request);

            string result   = this.builder.GetUrlForRequest(autocompletedRequest);
            string expected =
                "http://mobiledev1ua1.dk.sitecore.net:7119/-/item/v234%2fsitecore%2fshell" +
                "?sc_database=db" +
                "&language=lg" +
                "&payload=full" +
                "&sc_itemid=%7b110d559f-dea5-42ea-9c1c-8a5df7e70ef9%7d";

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

            Assert.AreEqual(expected, result);
            Assert.AreEqual(expectedFieldsResult, fieldsResult);
        }
Пример #4
0
        public void TestUpdateItemByIdWithNullReadFieldsReturnsException()
        {
            var exception = Assert.Throws <ArgumentNullException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithId(SampleId)
                                                                  .AddFieldsToRead(null)
                                                                  .Build());

            Assert.IsTrue(exception.Message.Contains("UpdateItemByIdRequestBuilder.Fields"));
        }
Пример #5
0
        public void TestUpdateItemByIdWithSpacesOnlyInLanguageReturnsException()
        {
            var exception = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithId(SampleId)
                                                              .Language("  ")
                                                              .Build());

            Assert.AreEqual("UpdateItemByIdRequestBuilder.Language : The input cannot be empty.", exception.Message);
        }
Пример #6
0
        public void TestUpdateItemByIdWithNullDatabaseDoNotReturnsException()
        {
            var request = ItemWebApiRequestBuilder.UpdateItemRequestWithId(SampleId)
                          .Database(null)
                          .Build();

            Assert.IsNotNull(request);
        }
        protected override async void PerformUpdateCreatedItemRequest()
        {
            if (string.IsNullOrEmpty(this.createItemId))
            {
                Toast.MakeText(this, "Please create item before updating", ToastLength.Long).Show();
                return;
            }

            var titleFieldValue = this.ItemTitleFieldValue.Text;
            var textFieldValue  = this.ItemTextFieldValue.Text;

            if (string.IsNullOrEmpty(titleFieldValue) && string.IsNullOrEmpty(textFieldValue))
            {
                Toast.MakeText(this, "Please set et least one field value to update", ToastLength.Long).Show();
                return;
            }

            try
            {
                var builder = ItemWebApiRequestBuilder.UpdateItemRequestWithId(this.createItemId);

                if (!string.IsNullOrEmpty(titleFieldValue))
                {
                    builder.AddFieldsRawValuesByNameToSet("Title", titleFieldValue);
                }

                if (!string.IsNullOrEmpty(textFieldValue))
                {
                    builder.AddFieldsRawValuesByNameToSet("Text", textFieldValue);
                }

                this.SetProgressBarIndeterminateVisibility(true);

                using (var session = this.Prefs.Session)
                {
                    var response = await session.UpdateItemAsync(builder.Build());

                    if (response.ResultCount == 0)
                    {
                        DialogHelper.ShowSimpleDialog(this, "Failed", "Failed to update item");
                    }
                    else
                    {
                        var message = "Item path : " + response[0].Path;
                        DialogHelper.ShowSimpleDialog(this, "Item updated", message);
                    }
                }

                this.SetProgressBarIndeterminateVisibility(false);
            }
            catch (System.Exception exception)
            {
                this.SetProgressBarIndeterminateVisibility(false);

                var title = this.GetString(Resource.String.text_error);
                DialogHelper.ShowSimpleDialog(this, title, exception.Message);
            }
        }
Пример #8
0
        public void TestUpdateItemByIdWithTwoVersionsReturnsException()
        {
            var exception = Assert.Throws <InvalidOperationException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithId(SampleId)
                                                                      .Version(1)
                                                                      .Version(2)
                                                                      .Build());

            Assert.AreEqual("UpdateItemByIdRequestBuilder.Version : Property cannot be assigned twice.", exception.Message);
        }
Пример #9
0
        public void TestUpdateItemByIdWithDuplicateFieldsToUpdateReturnsException()
        {
            var exception = Assert.Throws <InvalidOperationException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithId(SampleId)
                                                                      .AddFieldsRawValuesByNameToSet("Title", "Value1")
                                                                      .AddFieldsRawValuesByNameToSet("Title", "Value2")
                                                                      .Build());

            Assert.AreEqual("UpdateItemByIdRequestBuilder.FieldsRawValuesByName : duplicate fields are not allowed", exception.Message);
        }
Пример #10
0
        public void TestAppendingFields()
        {
            var requestBuilder = ItemWebApiRequestBuilder.UpdateItemRequestWithId("{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}")
                                 .AddFieldsRawValuesByNameToSet("field1", "VaLuE1")
                                 .AddFieldsRawValuesByNameToSet("field2", "VaLuE2");

            TestDelegate action = () => requestBuilder.AddFieldsRawValuesByNameToSet("field1", "VaLuE3");

            Assert.Throws <InvalidOperationException>(action);
        }
Пример #11
0
        public async void TestUpdateItemByNotExistentId()
        {
            var textValue = RandomText();

            var request = ItemWebApiRequestBuilder.UpdateItemRequestWithId(SampleId)
                          .AddFieldsRawValuesByNameToSet("Text", textValue)
                          .Build();

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

            Assert.AreEqual(0, result.ResultCount);
        }
Пример #12
0
        public void TestCorrectParamsWithoutFields()
        {
            IUpdateItemByIdRequest request = ItemWebApiRequestBuilder.UpdateItemRequestWithId("{110D559F-DEA5-42EA-9C1C-8A5DF7E70EF9}")
                                             .Build();

            IUpdateItemByIdRequest autocompletedRequest = this.requestMerger.FillUpdateItemByIdGaps(request);

            string result   = this.builder.GetUrlForRequest(autocompletedRequest);
            string expected = "http://mobiledev1ua1.dk.sitecore.net:7119/-/item/v234%2fsitecore%2fshell" +
                              "?sc_database=web" +
                              "&language=en" +
                              "&sc_itemid=%7b110d559f-dea5-42ea-9c1c-8a5df7e70ef9%7d";

            string fieldsResult         = this.builder.GetFieldValuesList(autocompletedRequest);
            string expectedFieldsResult = "";

            Assert.AreEqual(expected, result);
            Assert.AreEqual(expectedFieldsResult, fieldsResult);
        }
        private async void SendUpdateRequest()
        {
            try
            {
                using (var session = this.instanceSettings.GetSession())
                {
                    var request = ItemWebApiRequestBuilder.UpdateItemRequestWithId(this.CreatedItemId)
                                  .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();
                });
            }
        }
Пример #14
0
        public async void TestUpdateItemVersion1ById()
        {
            await this.RemoveAll();

            const int Version   = 1;
            var       textValue = RandomText();

            var request = ItemWebApiRequestBuilder.UpdateItemRequestWithId(testData.Items.ItemWithVersions.Id)
                          .AddFieldsRawValuesByNameToSet("Text", textValue)
                          .Payload(PayloadType.Full)
                          .Version(Version)
                          .Build();

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

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

            Assert.AreEqual(testData.Items.ItemWithVersions.Id, resultItem.Id);
            Assert.AreEqual(textValue, resultItem["Text"].RawValue);
            Assert.True(50 < resultItem.FieldsCount);
            Assert.AreEqual(Version, resultItem.Source.VersionNumber);
        }