コード例 #1
0
        public void CanProvisionObjects()
        {
            var template = new ProvisioningTemplate();

            FileSystemConnector connector = new FileSystemConnector(resourceFolder, "");

            template.Connector = connector;

            template.Files.Add(new Core.Framework.Provisioning.Model.File()
            {
                Overwrite = true, Src = fileName, Folder = folder
            });

            using (var ctx = TestCommon.CreateClientContext())
            {
                TokenParser.Initialize(ctx.Web, template);
                new ObjectFiles().ProvisionObjects(ctx.Web, template, new ProvisioningTemplateApplyingInformation());


                if (!ctx.Web.IsPropertyAvailable("ServerRelativeUrl"))
                {
                    ctx.Load(ctx.Web, w => w.ServerRelativeUrl);
                    ctx.ExecuteQueryRetry();
                }

                var file = ctx.Web.GetFileByServerRelativeUrl(
                    UrlUtility.Combine(ctx.Web.ServerRelativeUrl,
                                       UrlUtility.Combine(folder, fileName)));
                ctx.Load(file, f => f.Exists);
                ctx.ExecuteQueryRetry();
                Assert.IsTrue(file.Exists);
            }
        }
コード例 #2
0
        public void CanProvisionObjects()
        {
            var template = new ProvisioningTemplate();


            foreach (var user in admins)
            {
                template.Security.AdditionalMembers.Add(new User()
                {
                    Name = user.LoginName
                });
            }



            using (var ctx = TestCommon.CreateClientContext())
            {
                TokenParser.Initialize(ctx.Web, template);
                new ObjectSiteSecurity().ProvisionObjects(ctx.Web, template);

                var memberGroup = ctx.Web.AssociatedMemberGroup;
                ctx.Load(memberGroup, g => g.Users);
                ctx.ExecuteQueryRetry();
                foreach (var user in admins)
                {
                    var existingUser = memberGroup.Users.GetByLoginName(user.LoginName);
                    ctx.Load(existingUser);
                    ctx.ExecuteQueryRetry();
                    Assert.IsNotNull(existingUser);
                }
            }
        }
コード例 #3
0
        public void CanProvisionObjects()
        {
            var template     = new ProvisioningTemplate();
            var listInstance = new Core.Framework.Provisioning.Model.ListInstance();

            listInstance.Url          = string.Format("lists/{0}", listName);
            listInstance.Title        = listName;
            listInstance.TemplateType = (int)ListTemplateType.GenericList;

            Dictionary <string, string> dataValues = new Dictionary <string, string>();

            dataValues.Add("Title", "Test");
            DataRow dataRow = new DataRow(dataValues);

            listInstance.DataRows.Add(dataRow);

            template.Lists.Add(listInstance);

            using (var ctx = TestCommon.CreateClientContext())
            {
                TokenParser.Initialize(ctx.Web, template);

                new ObjectListInstance().ProvisionObjects(ctx.Web, template);

                var list = ctx.Web.GetListByUrl(listInstance.Url);
                Assert.IsNotNull(list);

                var items = list.GetItems(CamlQuery.CreateAllItemsQuery());
                ctx.Load(items, itms => itms.Include(item => item["Title"]));
                ctx.ExecuteQueryRetry();

                Assert.IsTrue(items.Count == 1);
                Assert.IsTrue(items[0]["Title"].ToString() == "Test");
            }
        }
コード例 #4
0
        public void ParseTests()
        {
            using (var ctx = TestCommon.CreateClientContext())
            {
                ctx.Load(ctx.Web, w => w.ServerRelativeUrl);
                ctx.Load(ctx.Site, s => s.ServerRelativeUrl);

                var masterCatalog = ctx.Web.GetCatalog((int)ListTemplateType.MasterPageCatalog);
                ctx.Load(masterCatalog, m => m.RootFolder.ServerRelativeUrl);

                var themesCatalog = ctx.Web.GetCatalog((int)ListTemplateType.ThemeCatalog);
                ctx.Load(themesCatalog, t => t.RootFolder.ServerRelativeUrl);

                ctx.ExecuteQueryRetry();


                ProvisioningTemplate template = new ProvisioningTemplate();
                template.Parameters.Add("test", "test");

                TokenParser.Initialize(ctx.Web, template);

                var site1          = ("~siTE/test").ToParsedString();
                var site2          = ("{site}/test").ToParsedString();
                var sitecol1       = ("~siteCOLLECTION/test").ToParsedString();
                var sitecol2       = ("{sitecollection}/test").ToParsedString();
                var masterUrl1     = ("~masterpagecatalog/test").ToParsedString();
                var masterUrl2     = ("{masterpagecatalog}/test").ToParsedString();
                var themeUrl1      = ("~themecatalog/test").ToParsedString();
                var themeUrl2      = ("{themecatalog}/test").ToParsedString();
                var parameterTest1 = ("abc{parameter:TEST}/test").ToParsedString();
                var parameterTest2 = ("abc{$test}/test").ToParsedString();

                Assert.IsTrue(site1 == string.Format("{0}/test", ctx.Web.ServerRelativeUrl));
                Assert.IsTrue(site2 == string.Format("{0}/test", ctx.Web.ServerRelativeUrl));
                Assert.IsTrue(sitecol1 == string.Format("{0}/test", ctx.Site.ServerRelativeUrl));
                Assert.IsTrue(sitecol2 == string.Format("{0}/test", ctx.Site.ServerRelativeUrl));
                Assert.IsTrue(masterUrl1 == string.Format("{0}/test", masterCatalog.RootFolder.ServerRelativeUrl));
                Assert.IsTrue(masterUrl2 == string.Format("{0}/test", masterCatalog.RootFolder.ServerRelativeUrl));
                Assert.IsTrue(themeUrl1 == string.Format("{0}/test", themesCatalog.RootFolder.ServerRelativeUrl));
                Assert.IsTrue(themeUrl2 == string.Format("{0}/test", themesCatalog.RootFolder.ServerRelativeUrl));
                Assert.IsTrue(parameterTest1 == "abctest/test");
                Assert.IsTrue(parameterTest2 == "abctest/test");
            }
        }
コード例 #5
0
ファイル: ObjectFieldTests.cs プロジェクト: zkiifreak/PnP
        public void CanProvisionObjects()
        {
            var template = new ProvisioningTemplate();

            template.SiteFields.Add(new Core.Framework.Provisioning.Model.Field()
            {
                SchemaXml = ElementSchema
            });

            using (var ctx = TestCommon.CreateClientContext())
            {
                TokenParser.Initialize(ctx.Web, template);
                new ObjectField().ProvisionObjects(ctx.Web, template);

                var f = ctx.Web.GetFieldById <FieldText>(fieldId);

                Assert.IsNotNull(f);
                Assert.IsInstanceOfType(f, typeof(FieldText));
            }
        }
コード例 #6
0
ファイル: ObjectFeaturesTests.cs プロジェクト: zkiifreak/PnP
        public void CanProvisionObjects()
        {
            var template = new ProvisioningTemplate();

            template.Features.WebFeatures.Add(
                new OfficeDevPnP.Core.Framework.Provisioning.Model.Feature()
            {
                Id = featureId, Deactivate = true
            });


            using (var ctx = TestCommon.CreateClientContext())
            {
                TokenParser.Initialize(ctx.Web, template);
                new ObjectFeatures().ProvisionObjects(ctx.Web, template);

                var f = ctx.Web.IsFeatureActive(featureId);

                Assert.IsFalse(f);
            }
        }
コード例 #7
0
        public void CanProvisionObjects()
        {
            var template = new ProvisioningTemplate();


            var propbagEntry = new Core.Framework.Provisioning.Model.PropertyBagEntry();

            propbagEntry.Key   = key;
            propbagEntry.Value = "Unit Test";

            template.PropertyBagEntries.Add(propbagEntry);

            using (var ctx = TestCommon.CreateClientContext())
            {
                TokenParser.Initialize(ctx.Web, template);
                new ObjectPropertyBagEntry().ProvisionObjects(ctx.Web, template);

                var value = ctx.Web.GetPropertyBagValueString(key, "default");
                Assert.IsTrue(value == "Unit Test");
            }
        }
コード例 #8
0
        public void CanProvisionObjects()
        {
            var template = new ProvisioningTemplate();

            Page page = new Page();

            page.Layout    = WikiPageLayout.TwoColumns;
            page.Overwrite = true;
            page.Url       = "~site/sitepages/pagetest.aspx";


            var webPart = new WebPart();

            webPart.Column   = 1;
            webPart.Row      = 1;
            webPart.Contents = webpartcontents;
            webPart.Title    = "Script Test";

            page.WebParts.Add(webPart);


            template.Pages.Add(page);

            using (var ctx = TestCommon.CreateClientContext())
            {
                TokenParser.Initialize(ctx.Web, template);
                new ObjectPages().ProvisionObjects(ctx.Web, template, new ProvisioningTemplateApplyingInformation());

                ctx.Load(ctx.Web, w => w.ServerRelativeUrl);
                ctx.ExecuteQueryRetry();

                var file = ctx.Web.GetFileByServerRelativeUrl(UrlUtility.Combine(ctx.Web.ServerRelativeUrl, "/SitePages/pagetest.aspx"));
                ctx.Load(file, f => f.Exists);
                ctx.ExecuteQueryRetry();

                Assert.IsTrue(file.Exists);
                var wps = ctx.Web.GetWebParts(UrlUtility.Combine(ctx.Web.ServerRelativeUrl, "/SitePages/pagetest.aspx"));
                Assert.IsTrue(wps.Any());
            }
        }
コード例 #9
0
        public void CanProvisionObjects()
        {
            var template = new ProvisioningTemplate();

            TermGroup termGroup = new TermGroup(_termGroupGuid, "TestProvisioningGroup", null);

            List <TermSet> termSets = new List <TermSet>();

            TermSet termSet = new TermSet(_termSetGuid, "TestProvisioningTermSet", null, true, false, null, null);

            List <Term> terms = new List <Term>();

            var term1 = new Term(Guid.NewGuid(), "TestProvisioningTerm 1", null, null, null, null, null);

            term1.Properties.Add("TestProp1", "Test Value 1");
            term1.LocalProperties.Add("TestLocalProp1", "Test Value 1");
            term1.Labels.Add(new TermLabel()
            {
                Language = 1033, Value = "Testing"
            });

            term1.Terms.Add(new Term(Guid.NewGuid(), "Sub Term 1", null, null, null, null, null));

            terms.Add(term1);

            terms.Add(new Term(Guid.NewGuid(), "TestProvisioningTerm 2", null, null, null, null, null));

            termSet.Terms.AddRange(terms);

            termSets.Add(termSet);

            termGroup.TermSets.AddRange(termSets);

            template.TermGroups.Add(termGroup);

            using (var ctx = TestCommon.CreateClientContext())
            {
                TokenParser.Initialize(ctx.Web, template);

                new ObjectTermGroups().ProvisionObjects(ctx.Web, template);

                TaxonomySession session = TaxonomySession.GetTaxonomySession(ctx);

                var store = session.GetDefaultSiteCollectionTermStore();

                var group = store.GetGroup(_termGroupGuid);
                var set   = store.GetTermSet(_termSetGuid);

                ctx.Load(group);
                ctx.Load(set, ts => ts.Terms);

                ctx.ExecuteQueryRetry();

                Assert.IsInstanceOfType(group, typeof(Microsoft.SharePoint.Client.Taxonomy.TermGroup));
                Assert.IsInstanceOfType(set, typeof(Microsoft.SharePoint.Client.Taxonomy.TermSet));
                Assert.IsTrue(set.Terms.Count == 2);


                var creationInfo = new ProvisioningTemplateCreationInformation(ctx.Web)
                {
                    BaseTemplate = ctx.Web.GetBaseTemplate()
                };

                var template2 = new ProvisioningTemplate();
                template2 = new ObjectTermGroups().CreateEntities(ctx.Web, template, creationInfo);

                Assert.IsTrue(template.TermGroups.Any());
                Assert.IsInstanceOfType(template.TermGroups, typeof(List <TermGroup>));
            }
        }
コード例 #10
0
        public void CanProvisionObjects()
        {
            var template = new ProvisioningTemplate();

            var propbagEntry = new Core.Framework.Provisioning.Model.PropertyBagEntry();

            propbagEntry.Key   = key;
            propbagEntry.Value = "Unit Test";

            template.PropertyBagEntries.Add(propbagEntry);

            using (var ctx = TestCommon.CreateClientContext())
            {
                TokenParser.Initialize(ctx.Web, template);
                new ObjectPropertyBagEntry().ProvisionObjects(ctx.Web, template, new ProvisioningTemplateApplyingInformation());

                var value = ctx.Web.GetPropertyBagValueString(key, "default");
                Assert.IsTrue(value == "Unit Test");

                // Create same entry, but don't overwrite.
                template = new ProvisioningTemplate();

                var propbagEntry2 = new PropertyBagEntry();
                propbagEntry2.Key       = key;
                propbagEntry2.Value     = "Unit Test 2";
                propbagEntry2.Overwrite = false;

                template.PropertyBagEntries.Add(propbagEntry2);

                new ObjectPropertyBagEntry().ProvisionObjects(ctx.Web, template, new ProvisioningTemplateApplyingInformation());

                value = ctx.Web.GetPropertyBagValueString(key, "default");
                Assert.IsTrue(value == "Unit Test");


                // Create same entry, but overwrite
                template = new ProvisioningTemplate();

                var propbagEntry3 = new PropertyBagEntry();
                propbagEntry3.Key       = key;
                propbagEntry3.Value     = "Unit Test 3";
                propbagEntry3.Overwrite = true;

                template.PropertyBagEntries.Add(propbagEntry3);

                new ObjectPropertyBagEntry().ProvisionObjects(ctx.Web, template, new ProvisioningTemplateApplyingInformation());

                value = ctx.Web.GetPropertyBagValueString(key, "default");
                Assert.IsTrue(value == "Unit Test 3");

                // Create entry with system key. We don't specify to overwrite system keys, so the key should not be created.
                template = new ProvisioningTemplate();

                var propbagEntry4 = new PropertyBagEntry();
                propbagEntry4.Key       = systemKey;
                propbagEntry4.Value     = "Unit Test System Key";
                propbagEntry4.Overwrite = true;

                template.PropertyBagEntries.Add(propbagEntry4);

                new ObjectPropertyBagEntry().ProvisionObjects(ctx.Web, template, new ProvisioningTemplateApplyingInformation());

                value = ctx.Web.GetPropertyBagValueString(systemKey, "default");
                Assert.IsTrue(value == "default");

                // Create entry with system key. We _do_ specify to overwrite system keys, so the key should be created.
                template = new ProvisioningTemplate();

                var propbagEntry5 = new PropertyBagEntry();
                propbagEntry5.Key       = systemKey;
                propbagEntry5.Value     = "Unit Test System Key 5";
                propbagEntry5.Overwrite = true;

                template.PropertyBagEntries.Add(propbagEntry5);

                new ObjectPropertyBagEntry().ProvisionObjects(ctx.Web, template, new ProvisioningTemplateApplyingInformation()
                {
                    OverwriteSystemPropertyBagValues = true
                });

                value = ctx.Web.GetPropertyBagValueString(systemKey, "default");
                Assert.IsTrue(value == "Unit Test System Key 5");

                // Create entry with system key. We _do not_ specify to overwrite system keys, so the key should not be created.
                template = new ProvisioningTemplate();

                var propbagEntry6 = new PropertyBagEntry();
                propbagEntry6.Key       = systemKey;
                propbagEntry6.Value     = "Unit Test System Key 6";
                propbagEntry6.Overwrite = true;

                template.PropertyBagEntries.Add(propbagEntry6);

                new ObjectPropertyBagEntry().ProvisionObjects(ctx.Web, template, new ProvisioningTemplateApplyingInformation()
                {
                    OverwriteSystemPropertyBagValues = false
                });

                value = ctx.Web.GetPropertyBagValueString(systemKey, "default");
                Assert.IsFalse(value == "Unit Test System Key 6");
            }
        }