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); } }
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); } } }
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"); } }
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"); } }
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)); } }
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); } }
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"); } }
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()); } }
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>)); } }
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"); } }