コード例 #1
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);
        }
コード例 #2
0
        public async void UploadBigSizeVideoToDbSpecifiedInSession()
        {
            await this.RemoveAll();

            const string Database          = "master";
            var          sessionToOverride =
                SitecoreWebApiSessionBuilder.AuthenticatedSessionWithHost(this.testData.InstanceUrl)
                .Credentials(this.testData.Users.Admin)
                .DefaultDatabase(Database)
                .BuildSession();

            using (var video = GetStreamFromUrl(TestEnvironment.Videos.IMG_0994_MOV))
            {
                var request = ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(testData.Items.UploadMediaHere.Id)
                              .ItemDataStream(video)
                              .ItemName("testVideo")
                              .FileName("test.mov")
                              .Build();
                var response = await sessionToOverride.UploadMediaResourceAsync(request);

                Assert.AreEqual(1, response.ResultCount);
                Assert.AreEqual(Database, response[0].Source.Database);
                this.AssertImageUploaded(response[0].Path, Database);
            }
        }
コード例 #3
0
        public async void OverrideDatabaseInUploadRequest()
        {
            await this.RemoveAll();

            var sessionToOverride =
                SitecoreWebApiSessionBuilder.AuthenticatedSessionWithHost(this.testData.InstanceUrl)
                .Credentials(this.testData.Users.Admin)
                .DefaultDatabase("master")
                .BuildSession();

            using (var image = GetStreamFromUrl(TestEnvironment.Images.Gif.Pictures_2))
            {
                const string Database = "web";
                var          request  = ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(testData.Items.UploadMediaHere.Id)
                                        .ItemDataStream(image)
                                        .Database(Database)
                                        .ItemName("testPNG")
                                        .FileName("test.png")
                                        .Build();
                var response = await sessionToOverride.UploadMediaResourceAsync(request);

                Assert.AreEqual(1, response.ResultCount);
                Assert.AreEqual(Database, response[0].Source.Database);
            }
        }
コード例 #4
0
        public async void TryToUploadImageAsAnonymousUser()
        {
            await this.RemoveAll();

            var sessionToOverride =
                SitecoreWebApiSessionBuilder.AnonymousSessionWithHost(this.testData.InstanceUrl)
                .BuildSession();

            using (var image = GetStreamFromUrl(TestEnvironment.Images.Gif.Pictures_2))
            {
                var request = ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(testData.Items.UploadMediaHere.Id)
                              .ItemDataStream(image)
                              .ItemName("testPNG")
                              .FileName("test.png")
                              .Build();
                TestDelegate testCode = async() =>
                {
                    var   task = sessionToOverride.UploadMediaResourceAsync(request);
                    await task;
                };

                Exception 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.IsTrue(exception.InnerException.Message.Contains("Access denied"));
            }
        }
コード例 #5
0
        public async void UploadImageWithNullItemDataStreamReturnsArgumentException()
        {
            await this.RemoveAll();

            var exception = Assert.Throws <ArgumentNullException>(() => ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(this.testData.Items.UploadMediaHere.Id)
                                                                  .ItemDataStream(null)
                                                                  .ItemName("test")
                                                                  .FileName("test.png")
                                                                  .Build());

            Assert.IsTrue(exception.Message.Contains("ItemDataStream"));
        }
コード例 #6
0
        public void UploadMediaToNullDbDoesNotReturnException()
        {
            var image   = GetStreamFromUrl(TestEnvironment.Images.Gif.Pictures_2);
            var request = ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(testData.Items.UploadMediaHere.Id)
                          .ItemDataStream(image)
                          .Database(null)
                          .ItemName("testPNG")
                          .FileName("test.png")
                          .Build();

            Assert.NotNull(request);
        }
コード例 #7
0
        public async void UploadImageWithEmptyItemNameReturnsArgumentException()
        {
            await this.RemoveAll();

            using (var image = GetStreamFromUrl(TestEnvironment.Images.Gif.Pictures_2))
            {
                var exception = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(this.testData.Items.UploadMediaHere.Id)
                                                                  .ItemDataStream(image)
                                                                  .ItemName("")
                                                                  .FileName("test.png")
                                                                  .Build());
                Assert.AreEqual("UploadMediaItemByParentIdRequestBuilder.ItemName : The input cannot be empty.", exception.Message);
            }
        }
コード例 #8
0
        public async void UploadImageToInvalidParentItemIdReturnsArgumentException()
        {
            await this.RemoveAll();

            using (var image = GetStreamFromUrl(TestEnvironment.Images.Gif.Pictures_2))
            {
                var exception = Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.UploadResourceRequestWithParentId("invalid-id")
                                                                  .ItemDataStream(image)
                                                                  .ItemName("test")
                                                                  .FileName("test.png")
                                                                  .Build());
                Assert.AreEqual("UploadMediaItemByParentIdRequestBuilder.ParentId : Item id must have curly braces '{}'", exception.Message);
            }
        }
コード例 #9
0
        public async void UploadImageToNullParentItemIdReturnsNullReferenceException()
        {
            await this.RemoveAll();

            using (var image = GetStreamFromUrl(TestEnvironment.Images.Gif.Pictures_2))
            {
                var exception = Assert.Throws <ArgumentNullException>(() => ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(null)
                                                                      .ItemDataStream(image)
                                                                      .ItemName("test")
                                                                      .FileName("test.png")
                                                                      .Build());
                Assert.IsTrue(exception.Message.Contains("ParentId"));
            }
        }
コード例 #10
0
        public async void UploadImageToWith2FileNamesReturnsInvalidOperationException()
        {
            await this.RemoveAll();

            using (var image = GetStreamFromUrl(TestEnvironment.Images.Gif.Pictures_2))
            {
                var exception = Assert.Throws <InvalidOperationException>(() => ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(this.testData.Items.UploadMediaHere.Id)
                                                                          .ItemDataStream(image)
                                                                          .ItemName("test")
                                                                          .FileName("test1.png")
                                                                          .FileName("test2.png")
                                                                          .Build());
                Assert.AreEqual("UploadMediaItemByParentIdRequestBuilder.FileName : Property cannot be assigned twice.", exception.Message);
            }
        }
コード例 #11
0
        public async void UploadImageWithVeryLongItemName()
        {
            await this.RemoveAll();

            using (var image = GetStreamFromUrl(TestEnvironment.Images.Gif.Pictures_2))
            {
                const string Database = "master";
                const string ItemName = "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium totam rem aperiam eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo Nemo enim ipsam voluptatem quia voluptas si aspernatur aut odit aut fugit sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt neque porro quisquam est";
                var          request  = ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(testData.Items.UploadMediaHere.Id)
                                        .ItemDataStream(image)
                                        .Database(Database)
                                        .ItemName(ItemName)
                                        .FileName("test.png")
                                        .Build();
                var response = await this.session.UploadMediaResourceAsync(request);

                Assert.AreEqual(0, response.ResultCount);
            }
        }
コード例 #12
0
        public async void UploadPngImageToWebDatabaseAsSitecoreAdminForParentId()
        {
            await this.RemoveAll();

            using (var image = GetStreamFromUrl(TestEnvironment.Images.Png.Bambuk))
            {
                const string Database = "web";
                var          request  = ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(testData.Items.UploadMediaHere.Id)
                                        .ItemDataStream(image)
                                        .Database(Database)
                                        .ItemName("testPNG")
                                        .FileName("test.png")
                                        .Build();
                var response = await this.session.UploadMediaResourceAsync(request);

                Assert.AreEqual(1, response.ResultCount);
                Assert.AreEqual(Database, response[0].Source.Database);
                this.AssertImageUploaded(response[0].Path, Database);
            }
        }
コード例 #13
0
 public void TestNullParentId()
 {
     Assert.Throws <ArgumentNullException>(() => ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(null));
 }
コード例 #14
0
 public void TestEmptyParentId()
 {
     Assert.Throws <ArgumentException>(() => ItemWebApiRequestBuilder.UploadResourceRequestWithParentId(""));
 }