public async void TestCreateItemByIdFromUnknownBranchCausesException()
        {
            await this.RemoveTestItemsFromMasterAndWebAsync();

            const string ItemFromBranchName = "ITEM ID   A default name of the branch should be used";
            //      const string itemFromBranchName = "Multiple item brunch";

            var request = ItemWebApiRequestBuilder.CreateItemRequestWithParentId(this.testData.Items.CreateItemsHere.Id)
                          .BranchId(NonExistingGuid)
                          .ItemName(ItemFromBranchName)
                          .Database("master")
                          .Language("en")
                          .Payload(PayloadType.Content)
                          .Build();


            var ex = Assert.Throws <ParserException>(async() =>
            {
                await session.CreateItemAsync(request);
            });


            Assert.AreEqual("Sitecore.MobileSDK.API.Exceptions.WebApiJsonErrorException", ex.InnerException.GetType().FullName);
            var castedException = ex.InnerException as WebApiJsonErrorException;

            Assert.AreEqual(500, castedException.Response.StatusCode);
            Assert.AreEqual("Template item not found.", castedException.Response.Message);
        }
        public void TestGetMediaFromInvalidImageReturnsError()
        {
            var options = new MediaOptionsBuilder().Set
                          .Height(100)
                          .Build();

            var request = ItemWebApiRequestBuilder.DownloadResourceRequestWithMediaPath("/sitecore/media library/Images/nexus")
                          .DownloadOptions(options)
                          .Build();

            TestDelegate testCode = async() =>
            {
                var   task = this.session.DownloadMediaResourceAsync(request);
                await task;
            };
            Exception exception = Assert.Throws <LoadDataFromNetworkException>(testCode);

            Assert.IsTrue(exception.Message.Contains("Unable to download data from the internet"));
            Assert.AreEqual("System.Net.Http.HttpRequestException", exception.InnerException.GetType().ToString());

            // Windows : "Response status code does not indicate success: 404 (Not Found)"
            // iOS     : "404 (Not Found)"
            Assert.IsTrue(exception.InnerException.Message.Contains("Not Found"));

            //@adk : fails because CMS 7.1u3 returns HTTP 500 instead of HTTP 404
            //      500 Internal Server Error
            //Assert.IsTrue(exception.InnerException.Message.Contains("Internal Server Error"));
        }
        public async void TestGetMediaItemWithMp4Extension()
        {
            const string ItemPath  = "/sitecore/media library/Images/Files/Video_01";
            const string MediaPath = "~/media/Images/Files/Video_01.mp4";
            const string Db        = "master";

            var options = new MediaOptionsBuilder().Set
                          .Height(50)
                          .Build();

            var request = ItemWebApiRequestBuilder.DownloadResourceRequestWithMediaPath(MediaPath)
                          .DownloadOptions(options)
                          .Database(Db)
                          .Build();

            using (var response = await this.session.DownloadMediaResourceAsync(request))
                using (var ms = new MemoryStream())
                {
                    await response.CopyToAsync(ms);

                    var expectedItem = await this.GetItemByPath(ItemPath, Db);

                    Assert.AreEqual(expectedItem["size"].RawValue, ms.Length.ToString(CultureInfo.InvariantCulture));
                }
        }
        private async void SendDeleteByPathRequest()
        {
            try
            {
                using (var session = this.instanceSettings.GetSession())
                {
                    var request = ItemWebApiRequestBuilder.DeleteItemRequestWithPath(this.itemPathField.Text)
                                  .Build();

                    this.ShowLoader();

                    ScDeleteItemsResponse response = await session.DeleteItemAsync(request);

                    this.ProceedResponce(response);
                }
            }
            catch (Exception e)
            {
                AlertHelper.ShowLocalizedAlertWithOkOption("Error", e.Message);
            }
            finally
            {
                BeginInvokeOnMainThread(delegate
                {
                    this.HideLoader();
                });
            }
        }
        public void TestGetMediaWithEmptyPathReturnsError()
        {
            TestDelegate testCode  = () => ItemWebApiRequestBuilder.DownloadResourceRequestWithMediaPath("");
            var          exception = Assert.Throws <ArgumentException>(testCode);

            Assert.AreEqual("DownloadMediaResourceRequestBuilder.MediaPath : The input cannot be empty.", exception.Message);
        }
        private async Task <ScItemsResponse> GetItemById(string id)
        {
            var request  = ItemWebApiRequestBuilder.ReadItemsRequestWithId(id).Database("master").Build();
            var response = await this.session.ReadItemAsync(request);

            return(response);
        }
        private async void SendRequest()
        {
            try
            {
                using (ISitecoreWebApiSession session = this.instanceSettings.GetSession())
                {
                    var request = ItemWebApiRequestBuilder.RenderingHtmlRequestWithSourceAndRenderingId(sourceIdTextField.Text, renderingIdTextField.Text)
                                  .Build();

                    this.ShowLoader();

                    Stream response = await session.ReadRenderingHtmlAsync(request);

                    response.Position = 0;
                    string htmlText = "";
                    using (StreamReader reader = new StreamReader(response))
                    {
                        htmlText = await reader.ReadToEndAsync();
                    }

                    this.resultWebView.LoadHtmlString(htmlText, null);
                }
            }
            catch (Exception e)
            {
                AlertHelper.ShowLocalizedAlertWithOkOption("Error", e.Message);
            }
            finally
            {
                BeginInvokeOnMainThread(delegate
                {
                    this.HideLoader();
                });
            }
        }
Esempio n. 8
0
        public void TestUpdateItemByNullPathReturnsException()
        {
            var exception = Assert.Throws <ArgumentNullException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithPath(null)
                                                                  .Build());

            Assert.IsTrue(exception.Message.Contains("UpdateItemByPathRequestBuilder.ItemPath"));
        }
Esempio n. 9
0
        public void TestUpdateItemByInvalidPathReturnsException()
        {
            var exception = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithPath("invalid path)")
                                                              .Build());

            Assert.AreEqual("UpdateItemByPathRequestBuilder.ItemPath : should begin with '/'", exception.Message);
        }
Esempio n. 10
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);
        }
Esempio n. 11
0
        public void TestUpdateItemByEmptyIdReturnsException()
        {
            var exception = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithId("")
                                                              .Build());

            Assert.AreEqual("UpdateItemByIdRequestBuilder.ItemId : The input cannot be empty.", exception.Message);
        }
Esempio n. 12
0
        public async Task <ScItemsResponse> GetItemById(string itemId, PayloadType itemLoadType, List <ScopeType> itemScopeTypes, string itemLanguage = "en")
        {
            try
            {
                using (ISitecoreWebApiSession session = GetSession())
                {
                    IReadItemsByIdRequest request = ItemWebApiRequestBuilder.ReadItemsRequestWithId(itemId)
                                                    .Payload(itemLoadType)
                                                    .AddScope(itemScopeTypes)
                                                    .Language(itemLanguage)
                                                    .Build();

                    return(await session.ReadItemAsync(request));
                }
            }
            catch (SitecoreMobileSdkException ex)
            {
                Log.Error("Error in GetItemById,  id {0} . Error: {1}", itemId, ex.Message);
                throw ex;
            }
            catch (Exception ex)
            {
                Log.Error("Error in GetItemById,  id {0} . Error: {1}", itemId, ex.Message);
                throw ex;
            }
        }
Esempio n. 13
0
        public void TestGetRenderingWithNullItemVersionReturnsException()
        {
            var exception = Assert.Throws <ArgumentNullException>(() => ItemWebApiRequestBuilder.RenderingHtmlRequestWithSourceAndRenderingId(DatasourceId, RenderingId)
                                                                  .SourceVersion(null));

            Assert.True(exception.Message.Contains("SourceVersion"));
        }
        public async void TestCreateItemByPathFromBranch()
        {
            await this.RemoveTestItemsFromMasterAndWebAsync();

            const string ItemFromBranchName = "Multiple item branch";

            TestEnvironment.Item expectedItem = this.CreateTestItem(ItemFromBranchName);

            var request = ItemWebApiRequestBuilder.CreateItemRequestWithParentPath(this.testData.Items.CreateItemsHere.Path)
                          .BranchId("{14416817-CDED-45AF-99BF-2DE9883B7AC3}")
                          .ItemName(ItemFromBranchName)
                          .Database("master")
                          .Language("en")
                          .Payload(PayloadType.Content)
                          .Build();

            var createResponse = await session.CreateItemAsync(request);

            this.testData.AssertItemsCount(1, createResponse);

            ISitecoreItem resultItem = createResponse[0];

            this.testData.AssertItemsAreEqual(expectedItem, resultItem);


            var readJustCreatedItemRequest = ItemWebApiRequestBuilder.ReadItemsRequestWithId(resultItem.Id)
                                             .Database("master")
                                             .Build();
            var readJustCreatedItemResponse = await this.session.ReadItemAsync(readJustCreatedItemRequest);

            this.testData.AssertItemsCount(1, readJustCreatedItemResponse);
            this.testData.AssertItemsAreEqual(expectedItem, readJustCreatedItemResponse[0]);
        }
        public async void TestCreateItemByIdWithInternationalNameAndFields()
        {
            await this.RemoveAll();

            var          expectedItem = this.CreateTestItem("International Слава Україні ウクライナへの栄光 عالمي");
            const string CreatedTitle = "ఉక్రెయిన్ కు గ్లోరీ Ruhm für die Ukraine";
            const string CreatedText  = "युक्रेन गौरव גלורי לאוקראינה";
            var          request      = ItemWebApiRequestBuilder.CreateItemRequestWithParentId(this.testData.Items.CreateItemsHere.Id)
                                        .ItemTemplatePath(testData.Items.Home.Template)
                                        .ItemName(expectedItem.DisplayName)
                                        .Database("master")
                                        .AddFieldsRawValuesByNameToSet("Title", CreatedTitle)
                                        .AddFieldsRawValuesByNameToSet("Text", CreatedText)
                                        .Payload(PayloadType.Content)
                                        .Build();

            var createResponse = await session.CreateItemAsync(request);

            var resultItem = this.CheckCreatedItem(createResponse, expectedItem);

            Assert.AreEqual(CreatedTitle, resultItem["Title"].RawValue);
            Assert.AreEqual(CreatedText, resultItem["Text"].RawValue);

            this.GetAndCheckItem(expectedItem, resultItem);
        }
Esempio n. 16
0
        public void TestUpdateItemByPathWithSpacesOnlyReturnsException()
        {
            var exception = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.UpdateItemRequestWithPath("  ")
                                                              .Build());

            Assert.AreEqual("UpdateItemByPathRequestBuilder.ItemPath : The input cannot be empty.", exception.Message);
        }
        public void TestCreateItemWithEmptyOrNullFieldsReturnsException()
        {
            var exception = Assert.Throws <ArgumentNullException>(() => ItemWebApiRequestBuilder.CreateItemRequestWithParentId(this.testData.Items.CreateItemsHere.Id)
                                                                  .ItemTemplatePath("/Sample/Sample Item")
                                                                  .ItemName("SomeValidName")
                                                                  .AddFieldsRawValuesByNameToSet(null, "somevalue"));

            Assert.IsTrue(exception.Message.Contains("fieldName"));

            var exception1 = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.CreateItemRequestWithParentId(this.testData.Items.CreateItemsHere.Id)
                                                               .ItemTemplatePath("/Sample/Sample Item")
                                                               .ItemName("SomeValidName")
                                                               .AddFieldsRawValuesByNameToSet("", "somevalue"));

            Assert.AreEqual("CreateItemByIdRequestBuilder.fieldName : The input cannot be empty.", exception1.Message);

            var exception2 = Assert.Throws <ArgumentNullException>(() => ItemWebApiRequestBuilder.CreateItemRequestWithParentId(this.testData.Items.CreateItemsHere.Id)
                                                                   .ItemTemplatePath("/Sample/Sample Item")
                                                                   .ItemName("SomeValidName")
                                                                   .AddFieldsRawValuesByNameToSet("somekey", null));

            Assert.IsTrue(exception2.Message.Contains("fieldValue"));

            var exception3 = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.CreateItemRequestWithParentId(this.testData.Items.CreateItemsHere.Id)
                                                               .ItemTemplatePath("/Sample/Sample Item")
                                                               .ItemName("SomeValidName")
                                                               .AddFieldsRawValuesByNameToSet("somekey", ""));

            Assert.AreEqual("CreateItemByIdRequestBuilder.fieldValue : The input cannot be empty.", exception3.Message);
        }
Esempio n. 18
0
        public void TestUpdateItemAsAnonymousFromShell()
        {
            const string FieldName  = "Text";
            var          fieldValue = RandomText();

            var itemSession = SitecoreWebApiSessionBuilder.AnonymousSessionWithHost(testData.InstanceUrl)
                              .Site(testData.ShellSite)
                              .DefaultDatabase("master")
                              .BuildSession();

            var request = ItemWebApiRequestBuilder.UpdateItemRequestWithPath(testData.Items.ItemWithVersions.Path)
                          .AddFieldsRawValuesByNameToSet(FieldName, fieldValue)
                          .Build();

            TestDelegate testCode = async() =>
            {
                var   task = itemSession.UpdateItemAsync(request);
                await task;
            };
            var exception = Assert.Throws <ParserException>(testCode);

            Assert.AreEqual("[Sitecore Mobile SDK] Data from the internet has unexpected format", exception.Message);
            Assert.AreEqual("Sitecore.MobileSDK.API.Exceptions.WebApiJsonErrorException", exception.InnerException.GetType().ToString());
            Assert.AreEqual("Access to site is not granted.", exception.InnerException.Message);
        }
        public async void TestCreateItemByIdWithOverridenDatabaseAndLanguageInRequest()
        {
            await this.RemoveAll();

            const string Db           = "web";
            const string Language     = "da";
            var          expectedItem = this.CreateTestItem("Create danish version in web from request");

            var adminSession =
                SitecoreWebApiSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                .Credentials(testData.Users.Admin)
                .Site(testData.ShellSite)
                .DefaultDatabase("master")
                .DefaultLanguage("en")
                .BuildSession();

            var request = ItemWebApiRequestBuilder.CreateItemRequestWithParentId(testData.Items.CreateItemsHere.Id)
                          .ItemTemplatePath(expectedItem.Template)
                          .ItemName(expectedItem.DisplayName)
                          .Database(Db)
                          .Language(Language)
                          .Build();

            var createResponse = await adminSession.CreateItemAsync(request);

            var resultItem = this.CheckCreatedItem(createResponse, expectedItem);

            Assert.AreEqual(Db, resultItem.Source.Database);
            Assert.AreEqual(Language, resultItem.Source.Language);
        }
Esempio n. 20
0
        public void TestUpdateItemAsUserWithoutWriteAccess()
        {
            const string FieldName  = "Text";
            var          fieldValue = RandomText();

            var itemSession = SitecoreWebApiSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                              .Credentials(testData.Users.NoCreateAccess)
                              .Site(testData.ShellSite)
                              .DefaultDatabase("master")
                              .BuildSession();

            var request = ItemWebApiRequestBuilder.UpdateItemRequestWithPath(testData.Items.ItemWithVersions.Path)
                          .AddFieldsRawValuesByNameToSet(FieldName, fieldValue)
                          .Build();

            TestDelegate testCode = async() =>
            {
                var   task = itemSession.UpdateItemAsync(request);
                await task;
            };
            var exception = Assert.Throws <ParserException>(testCode);

            Assert.AreEqual("[Sitecore Mobile SDK] Data from the internet has unexpected format", exception.Message);
            Assert.AreEqual("Sitecore.MobileSDK.API.Exceptions.WebApiJsonErrorException", exception.InnerException.GetType().ToString());
            Assert.True(exception.InnerException.Message.Contains("The current user does not have write access to this item"));
        }
Esempio n. 21
0
        public static async Task <ObservableCollection <WorkflowState> > GetWorkflowStatesInWorkflow(Workflow workflow)
        {
            var workflowStates = new ObservableCollection <WorkflowState> ();

            using (var session = CreateBaseSession().BuildSession()) {
                var request = ItemWebApiRequestBuilder
                              .ReadItemsRequestWithId(workflow.Id)
                              .AddScope(ScopeType.Children)
                              .AddFieldsToRead("Final")
                              .Build();

                var results = await session.ReadItemAsync(request);

                foreach (var result in results)
                {
                    //Don't add states that are considered the final state of the workflow
                    bool isFinal = result["Final"].RawValue == "1" ? true : false;
                    if (!isFinal)
                    {
                        workflowStates.Add(new WorkflowState(result));
                    }
                }
            }

            return(workflowStates);
        }
Esempio n. 22
0
        public async void TestUpdateDanishItemByPath()
        {
            await this.RemoveAll();

            const string Language    = "da";
            var          titleValue  = RandomText();
            var          textValue   = RandomText();
            var          itemSession = SitecoreWebApiSessionBuilder.AuthenticatedSessionWithHost(testData.InstanceUrl)
                                       .Credentials(testData.Users.Admin)
                                       .Site(testData.ShellSite)
                                       .DefaultLanguage(Language)
                                       .DefaultDatabase("master")
                                       .BuildSession();
            ISitecoreItem item = await this.CreateItem("Danish item to update", null, itemSession);

            var request = ItemWebApiRequestBuilder.UpdateItemRequestWithPath(item.Path)
                          .AddFieldsRawValuesByNameToSet("Title", titleValue)
                          .AddFieldsRawValuesByNameToSet("Text", textValue)
                          .Language(Language)
                          .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(titleValue, resultItem["Title"].RawValue);
            Assert.AreEqual(textValue, resultItem["Text"].RawValue);
            Assert.AreEqual(Language, resultItem.Source.Language);
        }
Esempio n. 23
0
        private async void PerformGetItemRequest(string query)
        {
            try
            {
                var request = ItemWebApiRequestBuilder.ReadItemsRequestWithSitecoreQuery(query).Build();
                this.SetProgressBarIndeterminateVisibility(true);

                using (var session = this.Prefs.Session)
                {
                    var response = await session.ReadItemAsync(request);

                    if (response.ResultCount == 0)
                    {
                        DialogHelper.ShowSimpleDialog(this, Resource.String.text_item_received, Resource.String.text_no_item);
                    }
                    else
                    {
                        this.PopulateItemsList(response);
                    }
                }

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

                var title = this.GetString(Resource.String.text_error);
                DialogHelper.ShowSimpleDialog(this, title, exception.Message);
            }
        }
        private async void DeleteItemByPath()
        {
            var itemPathField = this.FindViewById <EditText>(Resource.Id.field_item_path);
            var itempath      = itemPathField.Text;

            if (string.IsNullOrWhiteSpace(itempath))
            {
                Toast.MakeText(this, "Please enter item path", ToastLength.Long).Show();
                return;
            }

            try
            {
                var request = ItemWebApiRequestBuilder.DeleteItemRequestWithPath(itempath).Build();

                this.SetProgressBarIndeterminateVisibility(true);

                using (var session = this.prefs.Session)
                {
                    var response = await session.DeleteItemAsync(request);

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

                var title = this.GetString(Resource.String.text_error);
                DialogHelper.ShowSimpleDialog(this, title, exception.Message);
            }
        }
        public void TestGetMediaWithNullPathReturnsError()
        {
            TestDelegate testCode  = () => ItemWebApiRequestBuilder.DownloadResourceRequestWithMediaPath(null);
            var          exception = Assert.Throws <ArgumentNullException>(testCode);

            Assert.IsTrue(exception.Message.Contains("DownloadMediaResourceRequestBuilder.MediaPath"));
        }
Esempio n. 26
0
        public void TestCorrectParamsForParentId()
        {
            Stream stream = this.GenerateFakeStream();
            IMediaResourceUploadRequest request = ItemWebApiRequestBuilder.UploadResourceRequestWithParentId("{BC1BAE61-ADC6-4B37-B36E-01059B26CF84}")
                                                  .ContentType("image/jpg")
                                                  .ItemName("name1")
                                                  .FileName("bugaga.jpg")
                                                  .ItemTemplatePath("System/Media/Unversioned/Image")
                                                  .ItemDataStream(stream)
                                                  .Build();

            IMediaResourceUploadRequest autocompletedRequest = this.requestMerger.FillUploadMediaGaps(request);

            string result   = this.builder.GetUrlForRequest(autocompletedRequest);
            string expected = "http://mobiledev1ua1.dk.sitecore.net:7119/" +
                              "-/item/v234%2f" +
                              "sitecore%2fshell" +
                              "?" +
                              "sc_database=web&" +
                              "name=name1&" +
                              "template=System%2fMedia%2fUnversioned%2fImage&" +
                              "sc_itemid=%7BBC1BAE61-ADC6-4B37-B36E-01059B26CF84%7D";

            Assert.AreEqual(expected, result);
        }
        public async void TestMediaWithoutAccessToFolder()
        {
            const string MediaPath           = "/sitecore/media library/Images/kirkorov";
            var          sessionNoReadAccess =
                SitecoreWebApiSessionBuilder.AuthenticatedSessionWithHost(this.testData.InstanceUrl)
                .Credentials(this.testData.Users.NoReadUserExtranet)
                .BuildReadonlySession();

            var options = new MediaOptionsBuilder().Set
                          .Scale(1)
                          .Build();
            var request = ItemWebApiRequestBuilder.DownloadResourceRequestWithMediaPath(MediaPath)
                          .DownloadOptions(options)
                          .Build();

            using (var response = await sessionNoReadAccess.DownloadMediaResourceAsync(request))
                using (var ms = new MemoryStream())
                {
                    await response.CopyToAsync(ms);

                    var expectedItem = await this.GetItemByPath(MediaPath);

                    Assert.AreEqual(expectedItem["size"].RawValue, ms.Length.ToString(CultureInfo.InvariantCulture));
                }
        }
        public async void TestCreateItemByPathWithSpecifiedFields()
        {
            await this.RemoveAll();

            var expectedItem = this.CreateTestItem("Create with fields");

            const string CreatedTitle = "Created title";
            const string CreatedText  = "Created text";
            var          request      = ItemWebApiRequestBuilder.CreateItemRequestWithParentPath(this.testData.Items.CreateItemsHere.Path)
                                        .ItemTemplatePath(testData.Items.Home.Template)
                                        .ItemName(expectedItem.DisplayName)
                                        .Database("master")
                                        .AddFieldsRawValuesByNameToSet("Title", CreatedTitle)
                                        .AddFieldsRawValuesByNameToSet("Text", CreatedText)
                                        .AddFieldsToRead("Text", "Title")
                                        .Build();

            var createResponse = await session.CreateItemAsync(request);

            var resultItem = this.CheckCreatedItem(createResponse, expectedItem);

            Assert.AreEqual(CreatedTitle, resultItem["Title"].RawValue);
            Assert.AreEqual(CreatedText, resultItem["Text"].RawValue);

            this.GetAndCheckItem(expectedItem, resultItem);
        }
        public async void TestMediaFromSrcAndMediapathInField()
        {
            var z = await this.GetMediaFieldAsStringArray("/sitecore/content/Home/Test fields");

            // z[5]: src="~/media/4F20B519D5654472B01891CB6103C667.ashx"
            var requestWithSrcParameter = ItemWebApiRequestBuilder.DownloadResourceRequestWithMediaPath(z[5])
                                          .Build();


            using (var responseWithSrcParameter = await this.session.DownloadMediaResourceAsync(requestWithSrcParameter))
                using (var msWithSrcParameter = new MemoryStream())
                {
                    await responseWithSrcParameter.CopyToAsync(msWithSrcParameter);

                    // z[3]: mediapath="/Images/test image"
                    var requestWithMediapathParameter = ItemWebApiRequestBuilder.DownloadResourceRequestWithMediaPath(z[3])
                                                        .Build();
                    using (var responseWithMediapathParameter = await this.session.DownloadMediaResourceAsync(requestWithMediapathParameter))
                        using (var msWithMediapathParameter = new MemoryStream())
                        {
                            await responseWithMediapathParameter.CopyToAsync(msWithMediapathParameter);

                            Assert.AreEqual(msWithSrcParameter, msWithMediapathParameter);
                        }
                }
        }
Esempio n. 30
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);
        }