コード例 #1
0
        public void TestCustomMediaHook()
        {
            SessionConfigPOD sessionConfig = new SessionConfigPOD();

            sessionConfig.InstanceUrl       = "htTP://CUSTOM.hoST";
            sessionConfig.ItemWebApiVersion = "v1";
            sessionConfig.Site             = "/sitecore/shell";
            sessionConfig.MediaLibraryRoot = "/SiteCore/Other Media Library";
            sessionConfig.DefaultMediaResourceExtension = "ZIP";
            sessionConfig.MediaPrefix = "~/MediaXyZ";

            ISessionConfig        sessionSettings = sessionConfig;
            IMediaLibrarySettings mediaSettings   = sessionConfig;


            ItemSource itemSource = LegacyConstants.DefaultSource();

            this.builder = new MediaItemUrlBuilder(this.restGrammar, this.webApiGrammar, sessionSettings, mediaSettings, itemSource);

            var customBuilder =
                new MediaItemUrlBuilder(
                    this.restGrammar,
                    this.webApiGrammar,
                    sessionSettings,
                    mediaSettings,
                    itemSource);


            string result   = customBuilder.BuildUrlStringForPath("~/mediaXYZ/1.png.ashx", null);
            string expected = "http://custom.host/~/mediaxyz/1.png.ashx?db=web&la=en";

            Assert.AreEqual(expected, result);
        }
コード例 #2
0
        public void TestDefaultSource()
        {
            ItemSource defaultSource = LegacyConstants.DefaultSource();

            Assert.AreEqual(defaultSource.Database, "web");
            Assert.AreEqual(defaultSource.Language, "en");
        }
コード例 #3
0
        public void TestSerializeDafaultSource()
        {
            ItemSource           data    = LegacyConstants.DefaultSource();
            ItemSourceUrlBuilder builder = new ItemSourceUrlBuilder(RestServiceGrammar.ItemWebApiV2Grammar(), WebApiUrlParameters.ItemWebApiV2UrlParameters(), data);

            string expected = "sc_database=web&language=en";

            Assert.AreEqual(expected, builder.BuildUrlQueryString());
        }
コード例 #4
0
        public void TestMergerReturnsInputSourceCopyForNilDefault()
        {
            ItemSource defaultSource = LegacyConstants.DefaultSource();

            var         merger = new ItemSourceFieldMerger(null);
            IItemSource result = merger.FillItemSourceGaps(defaultSource);

            Assert.AreNotSame(defaultSource, result);
            Assert.AreEqual(defaultSource, result);
        }
コード例 #5
0
        public void TestApiSessionConstructorRequiresConfig()
        {
            ItemSource defaultSource = LegacyConstants.DefaultSource();

            TestDelegate initSessionAction = () =>
            {
                ScApiSession result = new ScApiSession(null, null, this.credentials, this.mediaSettings, defaultSource);
                Debug.WriteLine(result);
            };

            Assert.Throws <ArgumentNullException>(initSessionAction);
        }
コード例 #6
0
        public void TestQueryCannotBeWhitespace()
        {
            MockGetItemsByQueryParameters mutableParameters = new MockGetItemsByQueryParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.SitecoreQuery   = "   \t \r \n   ";
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.QueryParameters = this.payload;

            IReadItemsByQueryRequest request = mutableParameters;

            Assert.Throws <ArgumentException> (() => this.builder.GetUrlForRequest(request));
        }
コード例 #7
0
        public async void TestGetItemByQueryWithCorrectField()
        {
            var requestBuilder = ItemWebApiRequestBuilder.ReadItemsRequestWithSitecoreQuery("/sitecore//*[@Title='English version 2 web']");
            var request        = requestBuilder.Payload(PayloadType.Content).Build();
            var response       = await sessionAuthenticatedUser.ReadItemAsync(request);

            testData.AssertItemsCount(1, response);
            var resultItem     = response[0];
            var expectedSource = new ItemSource(LegacyConstants.DefaultSource().Database, LegacyConstants.DefaultSource().Language, 2);

            testData.AssertItemsAreEqual(testData.Items.ItemWithVersions, resultItem);
            testData.AssertItemSourcesAreEqual(expectedSource, resultItem.Source);
        }
        public void TestBuildentityActionCanNotBeNull()
        {
            MockReadEntitiesByPathParameters mutableParameters = new MockReadEntitiesByPathParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.EntitySource    = new EntitySource("Namespace", null, "Controller", null);

            IBaseEntityRequest request = mutableParameters;

            TestDelegate action = () => this.getEntityBuilder.GetUrlForRequest(request);

            Assert.Throws <ArgumentNullException>(action);
        }
コード例 #9
0
        public void SetUp()
        {
            this.env = TestEnvironment.DefaultTestEnvironment();

            this.mediaSettings = new MediaLibrarySettings(
                "/sitecore/media library",
                "ashx",
                "~/media/");

            var config        = new SessionConfig(this.env.InstanceUrl);
            var defaultSource = LegacyConstants.DefaultSource();

            this.session = new ScTestApiSession(config, null, this.env.Users.Admin, mediaSettings, defaultSource);
        }
コード例 #10
0
        public void TestInvaliItemIdCausesArgumentException()
        {
            MockGetItemsByIdParameters mutableParameters = new MockGetItemsByIdParameters();

            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.ItemId          = "someInvalidItemId";
            mutableParameters.QueryParameters = this.payload;

            IReadItemsByIdRequest parameters = mutableParameters;

            TestDelegate action = () => this.builder.GetUrlForRequest(parameters);

            Assert.Throws <ArgumentException>(action);
        }
コード例 #11
0
        public void TestBuildWithoutPayloadIsAllowed()
        {
            MockGetItemsByPathParameters mutableParameters = new MockGetItemsByPathParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.ItemPath        = "/path/TO/iTEm";
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.QueryParameters = null;

            IReadItemsByPathRequest request = mutableParameters;
            string result   = this.builder.GetUrlForRequest(request);
            string expected = "https://mobiledev1ua1.dk.sitecore.net/sitecore/api/ssc/item?database=web&language=en&path=%2fpath%2fto%2fitem";

            Assert.AreEqual(expected, result);
        }
コード例 #12
0
        public void TestBuildWithEmptyPathCausesArgumentException()
        {
            MockGetItemsByPathParameters mutableParameters = new MockGetItemsByPathParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.ItemPath        = "";
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.QueryParameters = this.payload;

            IReadItemsByPathRequest request = mutableParameters;

            TestDelegate action = () => this.builder.GetUrlForRequest(request);

            Assert.Throws <ArgumentException>(action);
        }
コード例 #13
0
        public void TestBuildentityControllerCanNotBeNull()
        {
            MockReadEntityByIdParameters mutableParameters = new MockReadEntityByIdParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.EntitySource    = new EntitySource("Namespace", null, null, "action");
            mutableParameters.EntityID        = "bla";

            IReadEntityByIdRequest request = mutableParameters;

            TestDelegate action = () => this.entitybyIdBuilder.GetUrlForRequest(request);

            Assert.Throws <ArgumentNullException>(action);
        }
        public void SetUp()
        {
            IRestServiceGrammar restGrammar   = RestServiceGrammar.ItemSSCV2Grammar();
            ISSCUrlParameters   webApiGrammar = SSCUrlParameters.ItemSSCV2UrlParameters();

            this.builder = new UpdateItemByIdUrlBuilder(restGrammar, webApiGrammar);

            SessionConfigPOD mutableSessionConfig = new SessionConfigPOD();

            mutableSessionConfig.InstanceUrl = "mobiledev1ua1.dk.sitecore.net:7119";

            ItemSource source = LegacyConstants.DefaultSource();

            this.requestMerger = new UserRequestMerger(mutableSessionConfig, source, null);
        }
        public void TestBuildWithValidPath()
        {
            MockReadEntitiesByPathParameters mutableParameters = new MockReadEntitiesByPathParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.EntitySource    = new EntitySource("namespace", "controller", "id", "action");

            IBaseEntityRequest request = mutableParameters;

            string result   = this.getEntityBuilder.GetUrlForRequest(request);
            string expected = "https://mobiledev1ua1.dk.sitecore.net/sitecore/api/ssc/namespace/controller/id/action";

            Assert.AreEqual(expected, result);
        }
コード例 #16
0
        public async void TestOverrideLanguageInRequestByQuery()
        {
            const string Language = "da";

            var requestBuilder = ItemWebApiRequestBuilder.ReadItemsRequestWithSitecoreQuery("/sitecore/content/Home/*");
            var request        = requestBuilder
                                 .Language(Language)
                                 .Build();
            var response = await sessionAuthenticatedUser.ReadItemAsync(request);

            testData.AssertItemsCount(4, response);
            var resultItem     = response[3];
            var expectedSource = new ItemSource(LegacyConstants.DefaultSource().Database, Language, 1);

            testData.AssertItemSourcesAreEqual(expectedSource, resultItem.Source);
        }
コード例 #17
0
        public void TestUrlBuilderAddsItemSource()
        {
            MockGetItemsByIdParameters mutableParameters = new MockGetItemsByIdParameters();

            mutableParameters.SessionSettings = this.sitecoreShellConfig;
            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.ItemId          = "110d559f-dea5-42ea-9c1c-8a5df7e70ef9";
            mutableParameters.QueryParameters = this.payload;

            IReadItemsByIdRequest parameters = mutableParameters;

            string result   = this.builder.GetUrlForRequest(parameters);
            string expected = "https://mobiledev1ua1.dk.sitecore.net:7119/sitecore/api/ssc/item/110d559f-dea5-42ea-9c1c-8a5df7e70ef9?database=web&language=en";

            Assert.AreEqual(expected, result);
        }
コード例 #18
0
        public void TestBuildWithUnEscapedPath()
        {
            MockGetItemsByPathParameters mutableParameters = new MockGetItemsByPathParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.ItemPath        = "/path TO iTEm";
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.QueryParameters = this.payload;

            IReadItemsByPathRequest request = mutableParameters;

            string result   = this.builder.GetUrlForRequest(request);
            string expected = "http://mobiledev1ua1.dk.sitecore.net/-/item/v2%2fpath%20to%20item?sc_database=web&language=en&payload=content";

            Assert.AreEqual(expected, result);
        }
コード例 #19
0
        public void TestNullPayloadStructIsIgnored()
        {
            MockGetItemsByQueryParameters mutableParameters = new MockGetItemsByQueryParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.SitecoreQuery   = "/Sitecore/Content/*";
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.QueryParameters = null;

            IReadItemsByQueryRequest request = mutableParameters;

            string result   = this.builder.GetUrlForRequest(request);
            string expected = "http://mobiledev1ua1.dk.sitecore.net:722/-/item/v13?sc_database=web&language=en&query=%2fSitecore%2fContent%2f%2a";

            Assert.AreEqual(expected, result);
        }
コード例 #20
0
        public void TestNullPayloadStructIsIgnored()
        {
            MockGetItemsByIdParameters mutableParameters = new MockGetItemsByIdParameters();

            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.ItemId          = "{   xxx   }";
            mutableParameters.QueryParameters = null;

            IReadItemsByIdRequest parameters = mutableParameters;

            string result   = this.builder.GetUrlForRequest(parameters);
            string expected = "http://sitecore.net/-/item/v1?sc_database=web&language=en&sc_itemid=%7b%20%20%20xxx%20%20%20%7d";

            Assert.AreEqual(expected, result);
        }
コード例 #21
0
        public void TestUrlBuilderAddsItemSource()
        {
            MockGetItemsByIdParameters mutableParameters = new MockGetItemsByIdParameters();

            mutableParameters.SessionSettings = this.sitecoreShellConfig;
            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.ItemId          = "{   xxx   }";
            mutableParameters.QueryParameters = this.payload;

            IReadItemsByIdRequest parameters = mutableParameters;

            string result   = this.builder.GetUrlForRequest(parameters);
            string expected = "http://mobiledev1ua1.dk.sitecore.net:7119/-/item/v234%2fsitecore%2fshell?sc_database=web&language=en&payload=min&sc_itemid=%7b%20%20%20xxx%20%20%20%7d";

            Assert.AreEqual(expected, result);
        }
コード例 #22
0
        public void TestBuildWithFastQuery()
        {
            MockGetItemsByQueryParameters mutableParameters = new MockGetItemsByQueryParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.SitecoreQuery   = "fast:/sitecore/content/Home/Products/*[@@name = 'Hammer']";
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.QueryParameters = this.payload;

            IReadItemsByQueryRequest request = mutableParameters;

            string result   = this.builder.GetUrlForRequest(request);
            string expected = "http://mobiledev1ua1.dk.sitecore.net:722/-/item/v13?sc_database=web&language=en&payload=full&query=fast%3a%2fsitecore%2fcontent%2fHome%2fProducts%2f%2a%5b%40%40name%20%3d%20%27Hammer%27%5d";

            Assert.AreEqual(expected, result);
        }
コード例 #23
0
        public void TestNullPayloadIsNotReplacedWithDefault()
        {
            MockGetItemsByPathParameters mutableParameters = new MockGetItemsByPathParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.ItemPath        = "/path/TO/iTEm";
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.QueryParameters = new QueryParameters(null, null, null);

            IReadItemsByPathRequest request = mutableParameters;

            string result   = this.builder.GetUrlForRequest(request);
            string expected = "http://mobiledev1ua1.dk.sitecore.net/-/item/v2%2fpath%2fto%2fitem?sc_database=web&language=en";

            Assert.AreEqual(expected, result);
        }
コード例 #24
0
        public async void TestOverrideDatabaseInRequestByPath()
        {
            const string Db = "master";

            var requestBuilder = ItemSSCRequestBuilder.ReadItemsRequestWithPath(testData.Items.ItemWithVersions.Path);
            var request        = requestBuilder.Database(Db).Build();
            var response       = await sessionAuthenticatedUser.ReadItemAsync(request);

            testData.AssertItemsCount(1, response);
            var resultItem = response[0];

            var expectedSource = new ItemSource(Db, LegacyConstants.DefaultSource().Language, 2);

            testData.AssertItemsAreEqual(testData.Items.ItemWithVersions, resultItem);
            testData.AssertItemSourcesAreEqual(expectedSource, resultItem.Source);
        }
コード例 #25
0
        public void TestBuildentityIdCanBeNull()
        {
            MockReadEntityByIdParameters mutableParameters = new MockReadEntityByIdParameters();

            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.EntitySource    = new EntitySource("namespace", "controller", null, "action");
            mutableParameters.EntityID        = "bla";

            IReadEntityByIdRequest request = mutableParameters;

            string result   = this.entitybyIdBuilder.GetUrlForRequest(request);
            string expected = "https://mobiledev1ua1.dk.sitecore.net/sitecore/api/ssc/namespace/controller/action('bla')";

            Assert.AreEqual(expected, result);
        }
        public void SetUp()
        {
            IRestServiceGrammar  restGrammar   = RestServiceGrammar.ItemWebApiV2Grammar();
            IWebApiUrlParameters webApiGrammar = WebApiUrlParameters.ItemWebApiV2UrlParameters();

            this.builder = new UpdateItemByPathUrlBuilder(restGrammar, webApiGrammar);

            SessionConfigPOD mutableSessionConfig = new SessionConfigPOD();

            mutableSessionConfig.ItemWebApiVersion = "v234";
            mutableSessionConfig.InstanceUrl       = "mobiledev1ua1.dk.sitecore.net:7119";
            mutableSessionConfig.Site = "/sitecore/shell";

            ItemSource source = LegacyConstants.DefaultSource();

            this.requestMerger = new UserRequestMerger(mutableSessionConfig, source);
        }
コード例 #27
0
        public void Setup()
        {
            TestEnvironment env = TestEnvironment.DefaultTestEnvironment();

            this.env = env;

            this.mediaSettings = new MediaLibrarySettings(
                "/sitecore/media library",
                "ashx",
                "~/media/");

            var connection    = new SessionConfig(this.env.InstanceUrl);
            var defaultSource = LegacyConstants.DefaultSource();

            this.session    = new ScTestApiSession(connection, env.Users.Admin, this.mediaSettings, defaultSource);
            this.itemSource = new MutableItemSource("master", "en", 3872);
        }
コード例 #28
0
        public void TestDuplicateFieldsWithDifferentCaseCauseException()
        {
            MockGetItemsByIdParameters mutableParameters = new MockGetItemsByIdParameters();

            mutableParameters.SessionSettings = this.sitecoreShellConfig;
            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.ItemId          = "110d559f-dea5-42ea-9c1c-8a5df7e70ef9";

            string[]         fields           = { "x", "y", "X" };
            IQueryParameters duplicatedFields = new QueryParameters(fields);

            mutableParameters.QueryParameters = duplicatedFields;


            IReadItemsByIdRequest parameters = mutableParameters;

            Assert.Throws <ArgumentException>(() => this.builder.GetUrlForRequest(parameters));
        }
コード例 #29
0
        public void TestDuplicateFieldsCauseException()
        {
            var mutableParameters = new MockGetItemsByPathParameters();

            mutableParameters.SessionSettings = this.sessionConfig;
            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.ItemPath        = "/aaa/bbb/ccc/ddd";

            string[]         fields           = { "x", "y", "x" };
            IQueryParameters duplicatedFields = new QueryParameters(fields);

            mutableParameters.QueryParameters = duplicatedFields;


            IReadItemsByPathRequest parameters = mutableParameters;

            Assert.Throws <ArgumentException>(() => this.builder.GetUrlForRequest(parameters));
        }
コード例 #30
0
        public void TestEmptyFieldEntriesCaseCauseException()
        {
            MockGetItemsByIdParameters mutableParameters = new MockGetItemsByIdParameters();

            mutableParameters.SessionSettings = this.sitecoreShellConfig;
            mutableParameters.ItemSource      = LegacyConstants.DefaultSource();
            mutableParameters.ItemId          = "{   xxx   }";

            string[]         fields           = { "x", "y", "" };
            IQueryParameters duplicatedFields = new QueryParameters(fields);

            mutableParameters.QueryParameters = duplicatedFields;


            IReadItemsByIdRequest parameters = mutableParameters;

            Assert.Throws <ArgumentException>(() => this.builder.GetUrlForRequest(parameters));
        }