public void SimWeb_can_change_web_title_fake()
        {
            using (var context = new SPOEmulationContext(IsolationLevel.Fake))
            {

                // set title for fake
                context.ClientContext.Web.Title = "Teamsite";


                // Get title
                context.ClientContext.Load(context.ClientContext.Web);
                context.ClientContext.Load(context.ClientContext.Web, w => w.Title);
                context.ClientContext.ExecuteQuery();
                var originalTitle = context.ClientContext.Web.Title;
                Assert.IsNotNull(originalTitle);

                // set title to something different
                context.ClientContext.Web.Title = "A new Title that is applied";
                context.ClientContext.Web.Update();
                context.ClientContext.ExecuteQuery();

                context.ClientContext.Load(context.ClientContext.Web, w => w.Title);
                context.ClientContext.ExecuteQuery();
                Assert.AreEqual("A new Title that is applied", context.ClientContext.Web.Title);
            }
        }
        public void SimWeb_can_change_web_title_fake()
        {
            using (var context = new SPOEmulationContext(IsolationLevel.Fake))
            {
                // set title for fake
                context.ClientContext.Web.Title = "Teamsite";


                // Get title
                context.ClientContext.Load(context.ClientContext.Web);
                context.ClientContext.Load(context.ClientContext.Web, w => w.Title);
                context.ClientContext.ExecuteQuery();
                var originalTitle = context.ClientContext.Web.Title;
                Assert.IsNotNull(originalTitle);

                // set title to something different
                context.ClientContext.Web.Title = "A new Title that is applied";
                context.ClientContext.Web.Update();
                context.ClientContext.ExecuteQuery();

                context.ClientContext.Load(context.ClientContext.Web, w => w.Title);
                context.ClientContext.ExecuteQuery();
                Assert.AreEqual("A new Title that is applied", context.ClientContext.Web.Title);
            }
        }
        public void SimWeb_can_change_web_title_o365()
        {
            using (var context = new SPOEmulationContext(IsolationLevel.Integration, _connectionInformation))
            {
                // Get title
                context.ClientContext.Load(context.ClientContext.Web, w => w.Title);
                context.ClientContext.ExecuteQuery();
                var originalTitle = context.ClientContext.Web.Title;
                Assert.IsNotNull(originalTitle);

                // set title to something different
                context.ClientContext.Web.Title = "A new Title that is applied";
                context.ClientContext.Web.Update();
                context.ClientContext.ExecuteQuery();

                context.ClientContext.Load(context.ClientContext.Web, w => w.Title);
                context.ClientContext.ExecuteQuery();
                Assert.AreEqual("A new Title that is applied", context.ClientContext.Web.Title);

                // set title back
                context.ClientContext.Web.Title = originalTitle;
                context.ClientContext.Web.Update();
                context.ClientContext.ExecuteQuery();
            }
        }
Example #4
0
        public void ProvisioningEngine_default_list_contains_fields()
        {
            using (var context = new SPOEmulationContext(_isolationLevel, _url))
            {
                var sut = new ProvisioningEngine();
                sut.CreateDefaultList(context.ClientContext, context.ClientContext.Web);

                var result = context.ClientContext.Web.Lists.GetByTitle("Default List");
                context.ClientContext.Load(result);
                context.ClientContext.ExecuteQuery();

                // Check that the list contains fields.
                var field1 = result.Fields.GetByTitle("My Number1");
                var field2 = result.Fields.GetByTitle("My Number2");
                context.ClientContext.Load(field1);
                context.ClientContext.Load(field2);
                context.ClientContext.ExecuteQuery();
                Assert.IsNotNull(field1);
                Assert.IsNotNull(field2);

                // Delete list if we do integration testing
                if (_isolationLevel != IsolationLevel.Fake)
                {
                    result.DeleteObject();
                    context.ClientContext.ExecuteQuery();
                }
            }
        }
Example #5
0
        public void ProvisioningEngine_adds_default_data()
        {
            using (var context = new SPOEmulationContext(_isolationLevel, _url))
            {
                var sut = new ProvisioningEngine();
                // ensure the list
                sut.CreateDefaultList(context.ClientContext, context.ClientContext.Web);
                var list = context.ClientContext.Web.Lists.GetByTitle("Default List");
                context.ClientContext.Load(list);

                // add items to list
                sut.AddDeaultData(context.ClientContext, list);

                // reload items validate
                var query = CamlQuery.CreateAllItemsQuery();
                var items = list.GetItems(query);
                context.ClientContext.Load(items);
                context.ClientContext.ExecuteQuery();

                Assert.AreEqual(5, items.Count);

                // Delete list if we do integration testing
                if (_isolationLevel != IsolationLevel.Fake)
                {
                    list.DeleteObject();
                    context.ClientContext.ExecuteQuery();
                }
            }
        }
Example #6
0
        public void ProvisioningEngine_sets_web_title_to_department_name()
        {
            using (var context = new SPOEmulationContext(_isolationLevel, _connectionInformation))
            {
                // Get title
                context.ClientContext.Load(context.ClientContext.Web, w => w.Title);
                context.ClientContext.ExecuteQuery();
                var originalTitle = context.ClientContext.Web.Title;

                var sut = new ProvisioningEngine();

                // set title of web to department name
                sut.SetDepartmentTitle(context.ClientContext, context.ClientContext.Web);

                context.ClientContext.Load(context.ClientContext.Web, w => w.Title);
                context.ClientContext.ExecuteQuery();
                Assert.AreEqual("Department A", context.ClientContext.Web.Title);

                // Clean up title for integration testing
                if (_isolationLevel != IsolationLevel.Fake)
                {
                    context.ClientContext.Web.Title = originalTitle;
                    context.ClientContext.Web.Update();
                    context.ClientContext.ExecuteQuery();
                }
            }
        }
Example #7
0
        public void Site_can_add_and_remove_Webs_O365()
        {
            var isolationLevel = IsolationLevel.Integration;

            // create a unique name for a subweb
            var uniqueName = Guid.NewGuid().ToString("N");

            using (var context = new SPOEmulationContext(isolationLevel, _connectionInformation))
            {
                using (var clientContext = new ClientContext(_connectionInformation.Url))
                {
                    clientContext.Credentials = new SharePointOnlineCredentials(_connectionInformation.UserName, _connectionInformation.Password);
                    var site = clientContext.Site;
                    clientContext.Load(site);

                    // The rootweb should exit...
                    clientContext.Load(site.RootWeb, w => w.Url);
                    clientContext.Load(site.RootWeb, w => w.ServerRelativeUrl);
                    clientContext.ExecuteQuery();
                    Assert.IsNotNull(site.RootWeb);
                    Assert.AreEqual(_connectionInformation.Url.AbsoluteUri.TrimEnd('/'), site.RootWeb.Url);
                    Assert.AreEqual(MakeServerRelative(_connectionInformation.Url), site.RootWeb.ServerRelativeUrl);

                    // add a new web
                    var subweb = site.RootWeb.Webs.Add(new WebCreationInformation
                    {
                        Url   = uniqueName,
                        Title = uniqueName,
                        UseSamePermissionsAsParentSite = true,
                        WebTemplate = "STS#0"
                    });

                    clientContext.Load(subweb, w => w.Title);
                    clientContext.Load(subweb, w => w.Url);
                    clientContext.Load(subweb, w => w.ServerRelativeUrl);
                    clientContext.ExecuteQuery();

                    Assert.AreEqual(uniqueName, subweb.Title);
                    Assert.AreEqual(_connectionInformation.Url.AbsoluteUri + uniqueName, subweb.Url);
                    Assert.AreEqual(MakeServerRelative(_connectionInformation.Url) + uniqueName, subweb.ServerRelativeUrl);
                }


                // Directly connect and delete web
                using (var clientContext = new ClientContext(_connectionInformation.Url.AbsoluteUri + uniqueName))
                {
                    clientContext.Credentials = new SharePointOnlineCredentials(_connectionInformation.UserName, _connectionInformation.Password);
                    var web = clientContext.Web;
                    clientContext.Load(web);
                    clientContext.ExecuteQuery();

                    Assert.AreEqual(uniqueName, web.Title);
                    Assert.AreEqual(_connectionInformation.Url.AbsoluteUri + uniqueName, web.Url);
                    Assert.AreEqual(MakeServerRelative(_connectionInformation.Url) + uniqueName, web.ServerRelativeUrl);

                    web.DeleteObject();
                    clientContext.ExecuteQuery();
                }
            }
        }
        public void SimWeb_can_change_web_title_onPrem()
        {
            using (var context = new SPOEmulationContext(_isolationLevel, _url))
            {
                // Get title
                context.ClientContext.Load(context.ClientContext.Web, w => w.Title);
                context.ClientContext.ExecuteQuery();
                var originalTitle = context.ClientContext.Web.Title;
                Assert.IsNotNull(originalTitle);

                // set title to something different
                context.ClientContext.Web.Title = "A new Title that is applied";
                context.ClientContext.Web.Update();
                context.ClientContext.ExecuteQuery();

                context.ClientContext.Load(context.ClientContext.Web, w => w.Title);
                context.ClientContext.ExecuteQuery();
                Assert.AreEqual("A new Title that is applied", context.ClientContext.Web.Title);

                // set title back
                context.ClientContext.Web.Title = originalTitle;
                context.ClientContext.Web.Update();
                context.ClientContext.ExecuteQuery();
            }
        }
 public void SimClientContext_creates_Web_for_integration_onprem()
 {
     using (var context = new SPOEmulationContext(_isolationLevel, _url))
     {
         Assert.IsNotNull(context.ClientContext);
         Assert.IsNotNull(context.ClientContext.Web);
     }
 }
 public void SimClientContext_creates_Web_for_integration_onprem()
 {
     using (var context = new SPOEmulationContext(_isolationLevel, _url))
     {
         Assert.IsNotNull(context.ClientContext);
         Assert.IsNotNull(context.ClientContext.Web);
     }
 }
        public void SPOEmulationContext_does_NOT_create_shimContext_for_none()
        {
            using (var sut = new SPOEmulationContext(IsolationLevel.None, Settings.Default.OnPremUrl))
            {
                var shimsContext = new PrivateObject(sut).GetField("_shimsContext");

                Assert.IsNull(shimsContext);
            }
        }
        public void SPOEmulationContext_creates_shimContext_for_fake()
        {
            using (var sut = new SPOEmulationContext(IsolationLevel.Fake))
            {
                var shimsContext = new PrivateObject(sut).GetField("_shimsContext");

                Assert.IsNotNull(shimsContext);
            }
        }
        public void SPOEmulationContext_creates_shimContext_for_integration()
        {
            using (var sut = new SPOEmulationContext(IsolationLevel.Integration, Settings.Default.OnPremUrl))
            {
                var shimsContext = new PrivateObject(sut).GetField("_shimsContext");

                Assert.IsNotNull(shimsContext);
            }
        }
        public void SimClientContext_creates_Web_for_fake()
        {
            using (var context = new SPOEmulationContext(IsolationLevel.Fake))
            {
                Assert.IsNotNull(context.ClientContext);
                Assert.IsNotNull(context.ClientContext.Web);

                context.ClientContext.ExecuteQuery();
            }
        }
        public void SimClientContext_creates_Web_for_integration_0365()
        {
            using (var context = new SPOEmulationContext(IsolationLevel.Integration, _connectionInformation))
            {
                Assert.IsNotNull(context.ClientContext);
                Assert.IsNotNull(context.ClientContext.Web);

                context.ClientContext.ExecuteQuery();
            }
        }
        public void SimClientContext_creates_Web_for_fake()
        {
            using (var context = new SPOEmulationContext(IsolationLevel.Fake))
            {
                Assert.IsNotNull(context.ClientContext);
                Assert.IsNotNull(context.ClientContext.Web);

                context.ClientContext.ExecuteQuery();
            }
        }
Example #17
0
        public void SimClientContext_creates_Web_for_integration_0365()
        {
            using (var context = new SPOEmulationContext(IsolationLevel.Integration, _connectionInformation))
            {
                Assert.IsNotNull(context.ClientContext);
                Assert.IsNotNull(context.ClientContext.Web);

                context.ClientContext.ExecuteQuery();
            }
        }
Example #18
0
        public void Can_set_principal_title_on_web_user()
        {
            var isolationLevel = IsolationLevel.Fake;
            var uniqueName     = Guid.NewGuid().ToString("N");

            using (var context = new SPOEmulationContext(isolationLevel, _connectionInformation))
            {
                context.ClientContext.Web.CurrentUser.Title = uniqueName;

                string actual = context.ClientContext.Web.CurrentUser.Title;

                Assert.AreEqual(uniqueName, actual);
            }
        }
Example #19
0
        public void Can_set_principal_title_on_web_user()
        {
            var isolationLevel = IsolationLevel.Fake;
            var uniqueName = Guid.NewGuid().ToString("N");

            using (var context = new SPOEmulationContext(isolationLevel, _connectionInformation))
            {
                context.ClientContext.Web.CurrentUser.Title = uniqueName;

                string actual = context.ClientContext.Web.CurrentUser.Title;

                Assert.AreEqual(uniqueName, actual);
            }
        }
Example #20
0
        public void ProvisioningEngine_creates_default_list()
        {
            using (var context = new SPOEmulationContext(_isolationLevel, _url))
            {
                var sut = new ProvisioningEngine();
                sut.CreateDefaultList(context.ClientContext, context.ClientContext.Web);

                var result = context.ClientContext.Web.Lists.GetByTitle("Default List");
                context.ClientContext.Load(result);
                context.ClientContext.ExecuteQuery();

                Assert.IsNotNull(result);
                Assert.AreEqual("A default list that is provisioned.", result.Description);
                Assert.IsTrue(result.EnableVersioning);


                // Delete list if we do integration testing
                if (_isolationLevel != IsolationLevel.Fake)
                {
                    result.DeleteObject();
                    context.ClientContext.ExecuteQuery();
                }
            }
        }
Example #21
0
        public void Site_can_add_and_remove_Webs_O365()
        {
            var isolationLevel = IsolationLevel.Integration;

            // create a unique name for a subweb
            var uniqueName = Guid.NewGuid().ToString("N");

            using (var context = new SPOEmulationContext(isolationLevel, _connectionInformation))
            {
                using (var clientContext = new ClientContext(_connectionInformation.Url))
                {
                    clientContext.Credentials = new SharePointOnlineCredentials(_connectionInformation.UserName, _connectionInformation.Password);
                    var site = clientContext.Site;
                    clientContext.Load(site);

                    // The rootweb should exit...
                    clientContext.Load(site.RootWeb, w => w.Url);
                    clientContext.Load(site.RootWeb, w => w.ServerRelativeUrl);
                    clientContext.ExecuteQuery();
                    Assert.IsNotNull(site.RootWeb);
                    Assert.AreEqual(_connectionInformation.Url.AbsoluteUri.TrimEnd('/'), site.RootWeb.Url);
                    Assert.AreEqual(MakeServerRelative(_connectionInformation.Url), site.RootWeb.ServerRelativeUrl);

                    // add a new web
                    var subweb = site.RootWeb.Webs.Add(new WebCreationInformation
                    {
                        Url = uniqueName,
                        Title = uniqueName,
                        UseSamePermissionsAsParentSite = true,
                        WebTemplate = "STS#0"
                    });

                    clientContext.Load(subweb, w => w.Title);
                    clientContext.Load(subweb, w => w.Url);
                    clientContext.Load(subweb, w => w.ServerRelativeUrl);
                    clientContext.ExecuteQuery();

                    Assert.AreEqual(uniqueName, subweb.Title);
                    Assert.AreEqual(_connectionInformation.Url.AbsoluteUri + uniqueName, subweb.Url);
                    Assert.AreEqual(MakeServerRelative(_connectionInformation.Url) + uniqueName, subweb.ServerRelativeUrl);
                }


                // Directly connect and delete web
                using (var clientContext = new ClientContext(_connectionInformation.Url.AbsoluteUri + uniqueName))
                {
                    clientContext.Credentials = new SharePointOnlineCredentials(_connectionInformation.UserName, _connectionInformation.Password);
                    var web = clientContext.Web;
                    clientContext.Load(web);
                    clientContext.ExecuteQuery();

                    Assert.AreEqual(uniqueName, web.Title);
                    Assert.AreEqual(_connectionInformation.Url.AbsoluteUri + uniqueName, web.Url);
                    Assert.AreEqual(MakeServerRelative(_connectionInformation.Url) + uniqueName, web.ServerRelativeUrl);

                    web.DeleteObject();
                    clientContext.ExecuteQuery();
                }

            }
        }
        public void SimWeb_can_work_with_list_fake()
        {
            using (var context = new SPOEmulationContext(IsolationLevel.Fake))
            {
                var web = context.ClientContext.Web;

                // Create a list
                var listInfo = new ListCreationInformation
                {
                    Title        = "A custom list",
                    TemplateType = (int)ListTemplateType.GenericList
                };
                var list = web.Lists.Add(listInfo);
                list.Description      = "A custom description...";
                list.EnableVersioning = true;
                list.Update();
                context.ClientContext.ExecuteQuery();

                // Add a field
                var field       = list.Fields.AddFieldAsXml("<Field DisplayName='My Number' Type='Number' />", true, AddFieldOptions.DefaultValue);
                var numberField = context.ClientContext.CastTo <FieldNumber>(field);
                numberField.MaximumValue = 1000;
                numberField.MinimumValue = 10;
                numberField.Update();
                context.ClientContext.Load(field, f => f.InternalName);
                context.ClientContext.ExecuteQuery();

                // Add a list item
                var itemInfo = new ListItemCreationInformation
                {
                    LeafName = "List Item 1"
                };
                var item = list.AddItem(itemInfo);
                item[field.InternalName] = 100;
                item.Update();
                context.ClientContext.ExecuteQuery();

                // Query list and retrieve item
                var query = new CamlQuery
                {
                    ViewXml = @"<View>
 <Query>
  <Where>
   <Eq>
    <FieldRef Name='Title' />
    <Value Type='Text'>List Item 1</Value>
   </Eq>
  </Where>
 </Query>
</View>"
                };

                // caml queries are not yet supported
                context.SetQueryResultsForFakeList(list, item);

                var items = list.GetItems(query);
                context.ClientContext.Load(items);
                context.ClientContext.ExecuteQuery();

                Assert.AreEqual(1, items.Count);

                // Clean up and delete list
                var listToDelete = web.Lists.GetByTitle("A custom list");
                listToDelete.DeleteObject();
                context.ClientContext.ExecuteQuery();
            }
        }
        public void SimWeb_can_work_with_list_fake()
        {
            using (var context = new SPOEmulationContext(IsolationLevel.Fake))
            {
                var web = context.ClientContext.Web;

                // Create a list
                var listInfo = new ListCreationInformation
                {
                    Title = "A custom list",
                    TemplateType = (int)ListTemplateType.GenericList
                };
                var list = web.Lists.Add(listInfo);
                list.Description = "A custom description...";
                list.EnableVersioning = true;
                list.Update();
                context.ClientContext.ExecuteQuery();

                // Add a field
                var field = list.Fields.AddFieldAsXml("<Field DisplayName='My Number' Type='Number' />", true, AddFieldOptions.DefaultValue);
                var numberField = context.ClientContext.CastTo<FieldNumber>(field);
                numberField.MaximumValue = 1000;
                numberField.MinimumValue = 10;
                numberField.Update();
                context.ClientContext.Load(field, f => f.InternalName);
                context.ClientContext.ExecuteQuery();

                // Add a list item
                var itemInfo = new ListItemCreationInformation
                {
                    LeafName = "List Item 1"
                };
                var item = list.AddItem(itemInfo);
                item[field.InternalName] = 100;
                item.Update();
                context.ClientContext.ExecuteQuery();

                // Query list and retrieve item
                var query = new CamlQuery
                {
                    ViewXml = @"<View>
 <Query>
  <Where>
   <Eq>
    <FieldRef Name='Title' />
    <Value Type='Text'>List Item 1</Value>
   </Eq>
  </Where>
 </Query>
</View>"
                };

                // caml queries are not yet supported
                context.SetQueryResultsForFakeList(list, item);

                var items = list.GetItems(query);
                context.ClientContext.Load(items);
                context.ClientContext.ExecuteQuery();

                Assert.AreEqual(1, items.Count);

                // Clean up and delete list
                var listToDelete = web.Lists.GetByTitle("A custom list");
                listToDelete.DeleteObject();
                context.ClientContext.ExecuteQuery();
            }
        }