public void TranslateNotificationToPersonalization_OnSuccess_ExecutesCorrectly() { // Arrange const string ExpectedCommand = "spNTranslateNotificationToPersonalization"; var executedCommand = string.Empty; var notification = CreateEPMNotification(); var connection = new SqlConnection(); var user = new ShimSPUser { LoginNameGet = () => DummyString, IDGet = () => 1 }.Instance; var args = new object[] { notification, new SqlConnection(), user }; ShimSqlCommand.AllInstances.ExecuteNonQuery = command => { executedCommand = command.CommandText; return(1); }; // Act privateType.InvokeStatic(TranslateNotificationToPersonalizationMethodName, args); // Assert executedCommand.ShouldSatisfyAllConditions( () => executedCommand.ShouldNotBeNullOrEmpty(), () => executedCommand.ShouldBe(ExpectedCommand)); }
private object ConvertValueForFieldType(SPFieldType fieldType, string stringValue) { switch (fieldType) { case SPFieldType.DateTime: return(DateTime.Parse(stringValue)); case SPFieldType.Counter: case SPFieldType.Integer: case SPFieldType.Lookup: return(int.Parse(stringValue)); case SPFieldType.Number: return(double.Parse(stringValue)); case SPFieldType.User: var user = new ShimSPUser() { IDGet = () => int.Parse(stringValue), LoginNameGet = () => stringValue }; return(user.Instance); case SPFieldType.AllDayEvent: case SPFieldType.Attachments: case SPFieldType.Boolean: case SPFieldType.Calculated: case SPFieldType.Choice: case SPFieldType.Computed: case SPFieldType.ContentTypeId: case SPFieldType.CrossProjectLink: case SPFieldType.Currency: case SPFieldType.Error: case SPFieldType.File: case SPFieldType.Geolocation: case SPFieldType.GridChoice: case SPFieldType.Guid: case SPFieldType.Invalid: case SPFieldType.MaxItems: case SPFieldType.ModStat: case SPFieldType.MultiChoice: case SPFieldType.Note: case SPFieldType.OutcomeChoice: case SPFieldType.PageSeparator: case SPFieldType.Recurrence: case SPFieldType.Text: case SPFieldType.ThreadIndex: case SPFieldType.Threading: case SPFieldType.URL: case SPFieldType.WorkflowEventType: case SPFieldType.WorkflowStatus: break; } return(stringValue); }
public void TranslateNotificationToPersonalization_SqlConnectionNull_ThrowsExcetion() { // Arrange var notification = CreateEPMNotification(); var user = new ShimSPUser().Instance; var args = new object[] { notification, null, user }; // Act Action action = () => privateType.InvokeStatic(TranslateNotificationToPersonalizationMethodName, args); // Assert action.ShouldThrow <ArgumentNullException>(); }
private void ShimSPWebMethods() { var user = new ShimSPUser { IDGet = () => Id }; _shimWeb = new ShimSPWeb { IDGet = () => DummyGuid, CurrentUserGet = () => user, EnsureUserString = _ => user, SiteUserInfoListGet = () => _shimList.Instance, ListsGet = () => _shimListCollection.Instance }; }
public void IQueueItemMessageByListIteam_Called_Disposed() { // Arrange var shimUser = new ShimSPUser(); var arguments = new object[] { 1, true, new Hashtable() { { "building", "64" } }, new string[] { "177", "401" }, new string[] { "919" }, true, true, (SPListItem)CreateShimSpListItem(_webAppGuid1), (SPUser)shimUser, false }; // Act _apiEmailPrivate.Invoke("iQueueItemMessage", BindingFlags.Static | BindingFlags.NonPublic, arguments); // Assert AssertConnection(); Assert.AreEqual(1, _executeReaderCommandsCalled.Count); Assert.AreSame(_createdConnection, _executeReaderCommandsCalled[0].Connection); Assert.AreEqual(CommandType.Text, _executeReaderCommandsCalled[0].CommandType); Assert.IsTrue( "SELECT id from NOTIFICATIONS where listid=@listid and itemid=@itemid and type=@type" .Equals(_executeReaderCommandsCalled[0].CommandText, StringComparison.OrdinalIgnoreCase)); Assert.AreEqual(3, _executeReaderCommandsCalled[0].Parameters.Count); Assert.AreEqual("@listid", _executeReaderCommandsCalled[0].Parameters[0].ParameterName); Assert.AreEqual("@itemid", _executeReaderCommandsCalled[0].Parameters[1].ParameterName); Assert.AreEqual("@type", _executeReaderCommandsCalled[0].Parameters[2].ParameterName); AssertNonQueryComands(ListItemId, _listParentListId); AssertDataSetCommand(); Assert.AreEqual(7, _createdCommands.Count); Assert.AreEqual(7, _disposedCommands.Count); AssertCreatedCommandsDisposed(); }
private void ShimSPWebMethods() { var user = new ShimSPUser { IDGet = () => Id }; _shimWeb = new ShimSPWeb { IDGet = () => DummyGuid, CurrentUserGet = () => user, EnsureUserString = _ => user, SiteUserInfoListGet = () => _shimList.Instance, ListsGet = () => _shimListCollection.Instance, Close = () => { _webClosed = true; }, UrlGet = () => ExampleUrl }; }
private void SetupVariables() { validations = 0; publicInstance = BindingFlags.Instance | BindingFlags.Public; nonPublicInstance = BindingFlags.Instance | BindingFlags.NonPublic; guid = Guid.Parse(SampleGuidString1); spWeb = new ShimSPWeb() { IDGet = () => guid, ListsGet = () => spListCollection, AllowUnsafeUpdatesSetBoolean = _ => { }, AllUsersGet = () => new ShimSPUserCollection(), SiteGroupsGet = () => new ShimSPGroupCollection(), RoleDefinitionsGet = () => new ShimSPRoleDefinitionCollection() }; spSite = new ShimSPSite() { IDGet = () => guid }; spListCollection = new ShimSPListCollection() { ItemGetGuid = _ => spList }; spList = new ShimSPList() { IDGet = () => guid, FieldsGet = () => spFieldCollection, GetItemByIdInt32 = _ => spListItem }; spListItemCollection = new ShimSPListItemCollection(); spListItem = new ShimSPListItem() { IDGet = () => DummyInt, TitleGet = () => DummyString, ItemGetString = _ => DummyString }; spFieldCollection = new ShimSPFieldCollection(); spField = new ShimSPField(); spUser = new ShimSPUser(); dataReader = new ShimSqlDataReader() { Close = () => { } }; }
private object[] ShimCoreWebAndUser() { const string webTitle = "WebTitle"; const string webUrl = "WebUrl"; const string userName = "******"; const string userEmail = "*****@*****.**"; const string userLogin = "******"; ShimIQueueItemMessage(); var shimConnection = new ShimSqlConnection(); string body = null; string subject = null; var shimSpWeb = new ShimSPWeb { TitleGet = () => webTitle, UrlGet = () => webUrl }; var shimCurrentUser = new ShimSPUser { NameGet = () => userName, EmailGet = () => userEmail, LoginNameGet = () => userLogin }; var arguments = new object[] { (SqlConnection)shimConnection, 23, body, subject, (SPWeb)shimSpWeb, (SPUser)shimCurrentUser }; return(arguments); }
public void TestGetUsersForSiteReturnsLoginNamesOfAllDefinedUsers() { // Arrange. using (new SharePointEmulationScope()) { ShimSPUser user1 = new ShimSPUser() {LoginNameGet = () => @"DOMAIN\user1"}; ShimSPUser user2 = new ShimSPUser() {LoginNameGet = () => @"EXTERNAL\some.user"}; ShimSPUser user3 = new ShimSPUser() {LoginNameGet = () => "*****@*****.**"}; ShimSPUser user4 = new ShimSPUser() {LoginNameGet = () => "mike.test"}; List<ShimSPUser> masterUsers = new List<ShimSPUser>() { user1, user2, user3, user4 }; ShimSPWeb web = new ShimSPWeb(); ShimSPUserCollection coll = new ShimSPUserCollection(); coll.CountGet = () => masterUsers.Count; coll.GetByIDInt32 = (id) => masterUsers.ElementAt(id); coll.ItemGetInt32 = (id) => masterUsers.ElementAt(id); coll.ItemAtIndexInt32 = (id) => masterUsers.ElementAt(id); web.UsersGet = () => coll; ShimSPSite.ConstructorString = (instance, url) => { ShimSPSite site = new ShimSPSite(instance); site.Dispose = () => { }; site.OpenWeb = () => web; }; WebSiteManager manager = new WebSiteManager("http://test"); // Act. IEnumerable<string> users = manager.GetUsersForSite(); // Assert. Assert.IsTrue(users.Contains(user1.Instance.LoginName)); Assert.IsTrue(users.Contains(user2.Instance.LoginName)); Assert.IsTrue(users.Contains(user3.Instance.LoginName)); Assert.IsTrue(users.Contains(user4.Instance.LoginName)); } }
public void AddBasicSecurityGroupsTest() { using (new SPEmulators.SPEmulationContext(SPEmulators.IsolationLevel.Fake)) { var user = new ShimSPUser() { IDGet = () => { return(1073741823); } }; var listitem = new ShimSPListItem() { ItemGetGuid = (guid) => { return(Guid.NewGuid()); }, IDGet = () => { return(1); }, TitleGet = () => { return("Adam Bar"); }, SystemUpdate = () => { } , FieldsGet = () => { return(new ShimSPFieldCollection() { GetFieldByInternalNameString = (s) => { return new ShimSPField() { IdGet = () => { return Guid.NewGuid(); } }; }, ItemGetGuid = (guid) => { return new ShimSPField() { IdGet = () => { return Guid.NewGuid(); } }; } }); }, ItemSetGuidObject = (a, b) => { }, Update = () => { } }; ShimSPList list = new ShimSPList() { ItemsGet = () => { return(new ShimSPListItemCollection() { GetItemByIdInt32 = (id) => { return listitem; } }); } }; ShimCoreFunctions.AddGroupSPWebStringStringSPMemberSPUserString = (a, b, c, d, e, f) => { return("final"); }; ShimSPWeb fakespweb = fakespweb = new ShimSPWeb() { IDGet = () => { return(Guid.Parse("D4A8A5A3-5C26-45D0-876C-AC2B4FB86D03")); }, CurrentUserGet = () => { return(user); }, SiteGroupsGet = () => { return(new ShimSPGroupCollection() { ItemGetString = (id) => { return new ShimSPGroup() { NameGet = () => { return Guid.NewGuid().ToString(); } }; } }); }, AllowUnsafeUpdatesSetBoolean = (b) => { }, SiteGet = () => { return(new ShimSPSite() { UrlGet = () => { return ""; }, OpenWebGuid = (gg) => { return new ShimSPWeb() { IDGet = () => { return Guid.Parse("D4A8A5A3-5C26-45D0-876C-AC2B4FB86D03"); }, PropertiesGet = () => { var propertyBag = new ShimSPPropertyBag(); var sd = new ShimStringDictionary(propertyBag); sd.ItemGetString = (key) => { return "EPMLive_MyWork_Grid_GlobalViews"; }; return propertyBag; }, SiteGet = () => { return new ShimSPSite() { IDGet = () => { return Guid.Parse("D4A8A5A3-5C26-45D0-876C-AC2B4FB86D03"); } }; }, Dispose = () => { }, AllowUnsafeUpdatesSetBoolean = (b) => { } }; }, RootWebGet = () => { return new ShimSPWeb() { ListsGet = () => { return new ShimSPListCollection() { ItemGetString = (s) => { return list; } }; }, IDGet = () => { return Guid.Parse("D4A8A5A3-5C26-45D0-876C-AC2B4FB86D03"); } }; } }); }, ParentWebGet = () => { return(null); }, PropertiesGet = () => { var propertyBag = new ShimSPPropertyBag(); var sd = new ShimStringDictionary(propertyBag); sd.ItemGetString = (key) => { return("EPMLiveLockConfig"); }; return(propertyBag); } , Update = () => { } }; fakespweb.Dispose = () => { }; var objSecurityUpdates = new SecurityUpdate(); var dict = objSecurityUpdates.AddBasicSecurityGroups(fakespweb, "title", user, listitem); Assert.IsTrue(dict.Count == 3); } }
private object ConvertValueForFieldType(SPFieldType fieldType, string stringValue) { switch (fieldType) { case SPFieldType.DateTime: return DateTime.Parse(stringValue); case SPFieldType.Counter: case SPFieldType.Integer: case SPFieldType.Lookup: return int.Parse(stringValue); case SPFieldType.Number: return double.Parse(stringValue); case SPFieldType.User: var user = new ShimSPUser() { IDGet = () => int.Parse(stringValue), LoginNameGet = () => stringValue }; return user.Instance; case SPFieldType.AllDayEvent: case SPFieldType.Attachments: case SPFieldType.Boolean: case SPFieldType.Calculated: case SPFieldType.Choice: case SPFieldType.Computed: case SPFieldType.ContentTypeId: case SPFieldType.CrossProjectLink: case SPFieldType.Currency: case SPFieldType.Error: case SPFieldType.File: case SPFieldType.Geolocation: case SPFieldType.GridChoice: case SPFieldType.Guid: case SPFieldType.Invalid: case SPFieldType.MaxItems: case SPFieldType.ModStat: case SPFieldType.MultiChoice: case SPFieldType.Note: case SPFieldType.OutcomeChoice: case SPFieldType.PageSeparator: case SPFieldType.Recurrence: case SPFieldType.Text: case SPFieldType.ThreadIndex: case SPFieldType.Threading: case SPFieldType.URL: case SPFieldType.WorkflowEventType: case SPFieldType.WorkflowStatus: break; } return stringValue; }
private void SetupVariables() { guid = new Guid(GuidString); spFarm = new ShimSPFarm(); spField = new ShimSPField(); spList = new ShimSPList() { FieldsGet = () => new ShimSPFieldCollection() { GetFieldByInternalNameString = _ => spField }, IDGet = () => guid }; spListItem = new ShimSPListItem() { ParentListGet = () => spList, FieldsGet = () => new ShimSPFieldCollection(), IDGet = () => 1 }; spSite = new ShimSPSite() { WebApplicationGet = () => new ShimSPWebApplication() { ApplicationPoolGet = () => new ShimSPApplicationPool() } }; spUser = new ShimSPUser() { LoginNameGet = () => DummyString, EmailGet = () => DummyString, IDGet = () => 1 }; spWeb = new ShimSPWeb() { ListsGet = () => new ShimSPListCollection() { ItemGetString = _ => spList }, SiteGet = () => spSite, CurrentUserGet = () => spUser, AllUsersGet = () => new ShimSPUserCollection() { GetByIDInt32 = _ => spUser }, IDGet = () => guid, WebsGet = () => new ShimSPWebCollection() { AddStringStringStringUInt32StringBooleanBoolean = (_, _1, _2, _3, _4, _5, _6) => spWeb }, NavigationGet = () => new ShimSPNavigation() { TopNavigationBarGet = () => new ShimSPNavigationNodeCollection() { NavigationGet = () => new ShimSPNavigation() } }, SiteGroupsGet = () => new ShimSPGroupCollection() { GetByIDInt32 = _ => new ShimSPGroup() }, UrlGet = () => DummyString, ServerRelativeUrlGet = () => DummyString, TitleGet = () => DummyString, AllowUnsafeUpdatesSetBoolean = _ => { }, SiteUserInfoListGet = () => spList, SiteUsersGet = () => new ShimSPUserCollection() { GetByIDInt32 = _ => spUser }, EnsureUserString = _ => spUser }; }
private void SetupVariables() { validations = 0; publicStatic = BindingFlags.Static | BindingFlags.Public; nonPublicStatic = BindingFlags.Static | BindingFlags.NonPublic; publicInstance = BindingFlags.Instance | BindingFlags.Public; nonPublicInstance = BindingFlags.Instance | BindingFlags.NonPublic; guid = Guid.Parse(SampleGuidString1); request = new Dictionary <string, string>() { ["period"] = DummyString, ["action"] = DummyString, ["duser"] = DummyString, ["ts_uids"] = DummyString, ["tsitemuids"] = DummyString }; currentDate = DateTime.Now; spWeb = new ShimSPWeb() { IDGet = () => guid, SiteGet = () => spSite, ListsGet = () => spListCollection, GetFolderString = _ => spFolder, GetFileString = _ => spFile, FoldersGet = () => spFolderCollection, CurrentUserGet = () => spUser, ServerRelativeUrlGet = () => SampleUrl, AllUsersGet = () => new ShimSPUserCollection(), SiteUsersGet = () => new ShimSPUserCollection(), TitleGet = () => DummyString }; spSite = new ShimSPSite() { IDGet = () => guid, WebApplicationGet = () => new ShimSPWebApplication(), RootWebGet = () => spWeb, FeaturesGet = () => new ShimSPFeatureCollection() { ItemGetGuid = _ => new ShimSPFeature() }, ContentDatabaseGet = () => new ShimSPContentDatabase() }; spListCollection = new ShimSPListCollection() { TryGetListString = _ => spList, ItemGetString = _ => spList, ItemGetGuid = _ => spList }; spList = new ShimSPList() { IDGet = () => guid, FieldsGet = () => spFieldCollection, GetItemByIdInt32 = _ => spListItem, ItemsGet = () => spListItemCollection, GetItemsSPQuery = _ => spListItemCollection, RootFolderGet = () => spFolder, ParentWebGet = () => spWeb, DefaultViewGet = () => spView, ViewsGet = () => spViewCollection, ContentTypesGet = () => spContentTypeCollection, TitleGet = () => DummyString, EventReceiversGet = () => new ShimSPEventReceiverDefinitionCollection(), DefaultViewUrlGet = () => SampleUrl }; spListItemCollection = new ShimSPListItemCollection() { CountGet = () => DummyInt, ItemGetInt32 = _ => spListItem }; spListItem = new ShimSPListItem() { IDGet = () => DummyInt, TitleGet = () => DummyString, ItemGetString = _ => DummyString, ItemGetGuid = _ => DummyString, ItemSetGuidObject = (_, __) => { }, Update = () => { }, FileGet = () => spFile, ParentListGet = () => spList, NameGet = () => DummyString }; spFieldCollection = new ShimSPFieldCollection() { GetFieldByInternalNameString = _ => spField, ContainsFieldString = _ => false, GetFieldString = _ => spField, ItemGetString = _ => spField }; spField = new ShimSPField() { IdGet = () => guid, TitleGet = () => DummyString, InternalNameGet = () => DummyString, ReadOnlyFieldGet = () => false, HiddenGet = () => false, ReorderableGet = () => true, TypeAsStringGet = () => DummyString }; spUser = new ShimSPUser() { IDGet = () => DummyInt, IsSiteAdminGet = () => true, UserTokenGet = () => new ShimSPUserToken(), EmailGet = () => DummyString }; spFolderCollection = new ShimSPFolderCollection() { ItemGetString = _ => spFolder, AddString = _ => spFolder }; spFolder = new ShimSPFolder() { ExistsGet = () => false, SubFoldersGet = () => spFolderCollection, FilesGet = () => spFileCollection, UrlGet = () => SampleUrl, UniqueIdGet = () => guid, ParentWebGet = () => spWeb }; spFileCollection = new ShimSPFileCollection() { CountGet = () => DummyInt, AddStringByteArrayBoolean = (_1, _2, _3) => spFile, AddStringStream = (_1, _2) => spFile, ItemGetString = _ => spFile }; spFile = new ShimSPFile() { Delete = () => { }, OpenBinaryStream = () => null, NameGet = () => DummyString, GetListItemStringArray = _ => spListItem }; spViewCollection = new ShimSPViewCollection() { ItemGetString = _ => spView }; spView = new ShimSPView() { ViewFieldsGet = () => spViewFieldCollection, ServerRelativeUrlGet = () => SampleUrl }; spViewFieldCollection = new ShimSPViewFieldCollection(); spContentTypeCollection = new ShimSPContentTypeCollection() { ItemGetString = _ => spContentType }; spContentType = new ShimSPContentType() { IdGet = () => default(SPContentTypeId), FieldLinksGet = () => spFieldLinkCollection }; spFieldLinkCollection = new ShimSPFieldLinkCollection() { ItemGetGuid = _ => new ShimSPFieldLink() }; transaction = new ShimSqlTransaction() { Commit = () => { }, Rollback = () => { } }; dataReader = new ShimSqlDataReader() { Read = () => false, GetInt32Int32 = _ => One, GetDateTimeInt32 = _ => currentDate, GetStringInt32 = _ => DummyString, GetGuidInt32 = _ => guid, Close = () => { } }; }
private void ISendEmail_Called_Disposed(bool hideFrom, string curUserEmail) { // Arrange const string outboundEmail = "*****@*****.**"; var siteId = new Guid("0E2FCE32-4507-452C-A8BF-D28C867DF0E9"); var webId = new Guid("4008FE64-56A8-4DDF-99C7-AF3C45AEBDDA"); var shimCurrentUser = new ShimSPUser { NameGet = () => "CurUserName", EmailGet = () => curUserEmail }; var currentUser = (SPUser)shimCurrentUser; var shimUser = new ShimSPUser { NameGet = () => "EUserName", EmailGet = () => "*****@*****.**" }; var user = (SPUser)shimUser; var arguments = new object[] { 1, hideFrom, siteId, webId, (SPUser)shimCurrentUser, (SPUser)shimUser, new Hashtable() { { "building", "64" } } }; ShimSPAdministrationWebApplication.LocalGet = () => { var spAdministrationWebApplication = new ShimSPAdministrationWebApplication(); var spWebApplication = new ShimSPWebApplication(spAdministrationWebApplication) { OutboundMailServiceInstanceGet = () => { var spOutboundMailServiceInstance = new ShimSPOutboundMailServiceInstance(); var spServiceInstance = new ShimSPServiceInstance(spOutboundMailServiceInstance) { ServerGet = () => new ShimSPServer { AddressGet = () => "15th ave" } }; return(spOutboundMailServiceInstance); }, OutboundMailSenderAddressGet = () => outboundEmail }; return(spAdministrationWebApplication); }; string setHost = null; MailMessage sentMessage = null; var clientDisposed = false; ShimSmtpClient.Constructor = client => { new ShimSmtpClient(client) { HostSetString = host => { setHost = host; }, SendMailMessage = message => { sentMessage = message; }, DisposeBoolean = disposing => { clientDisposed = true; } }; }; var messageDisposed = false; ShimMailMessage.AllInstances.DisposeBoolean = (message, disposing) => { messageDisposed = true; }; // Act _apiEmailPrivate.Invoke("iSendEmail", BindingFlags.Static | BindingFlags.NonPublic, arguments); // Assert AssertConnection(); if (hideFrom) { Assert.AreEqual(outboundEmail, sentMessage.From.Address); Assert.IsTrue(string.IsNullOrWhiteSpace(sentMessage.From.DisplayName)); } else if (string.IsNullOrWhiteSpace(curUserEmail)) { Assert.AreEqual(outboundEmail, sentMessage.From.Address); Assert.AreEqual(currentUser.Name, sentMessage.From.DisplayName); } else { Assert.AreEqual(currentUser.Email, sentMessage.From.Address); Assert.AreEqual(currentUser.Name, sentMessage.From.DisplayName); } Assert.AreEqual(user.Email, sentMessage.To[0].Address); Assert.AreEqual("64 house", sentMessage.Subject); Assert.AreEqual("goose live in 64 house", sentMessage.Body); Assert.IsTrue(clientDisposed); Assert.IsTrue(messageDisposed); }
private void SetupVariables() { guid = new Guid(GuidString); spSite = new ShimSPSite() { IDGet = () => guid, UrlGet = () => Url, ContentDatabaseGet = () => new ShimSPContentDatabase(), OpenWebGuid = _ => spWeb }; fields = new ShimSPFieldCollection() { ContainsFieldString = _1 => true }; spListItem = new ShimSPListItem() { IDGet = () => 1, FieldsGet = () => fields, ItemGetString = _1 => DummyString }; spList = new ShimSPList() { IDGet = () => guid, TitleGet = () => Title, GetItemsSPQuery = _ => new ShimSPListItemCollection() { FieldsGet = () => fields, GetEnumerator = () => new List <SPListItem>() { spListItem }.GetEnumerator() }, GetItemByIdInt32 = _ => spListItem }; var currentUser = new ShimSPUser() { IDGet = () => 1, LoginNameGet = () => DummyString, RegionalSettingsGet = () => new ShimSPRegionalSettings() }; spWeb = new ShimSPWeb() { CurrentUserGet = () => currentUser, SiteGet = () => spSite, TitleGet = () => Title, ServerRelativeUrlGet = () => ServerRelativeUrl, ListsGet = () => new ShimSPListCollection() { ItemGetString = _ => spList, ItemGetGuid = _ => spList, TryGetListString = _ => spList }, UrlGet = () => Url }; webApplication = new ShimSPWebApplication(); }
private void SetupShims() { _configJob = new ShimUninstall().Instance; _privateConfigJob = new PrivateObject(_configJob); _privateConfigJob.SetFieldOrProperty(UserIdField, DummyInt); var spUser = new ShimSPUser { UserTokenGet = () => new ShimSPUserToken(), IsSiteAdminGet = () => true }; var spListItem = new ShimSPListItem { ParentListGet = () => _list, IDGet = () => DummyInt, TitleGet = () => DummyString, ItemGetString = item => { switch (item) { case "LinkedCommunity": case "QuickLaunch": case "TopNav": return(DummyInt); case "InstalledFiles": return($@"<Files> <Folder Type='Folder' FullFile='{Folder1}/' Name='{Folder1}'></Folder> <Folder Type='Folder' FullFile='{Folder2}' Name='{Folder2}'> <File Type='File' FullFile='{File1}' Name='{File1}'></File> </Folder> <Folder Type='Folder' FullFile='{Folder3}/File' Name='{Folder3}'></Folder> <Folder Type='Folder' FullFile='{Folder4}' Name='{Folder4}' NoDelete='true'></Folder> </Files>"); default: return(DummyString); } }, Update = () => _listItemUpdated = true, Delete = () => _listItemDeleted = true, Recycle = () => { _listItemRecycled = true; return(Guid.NewGuid()); } }; _list = new ShimSPList { IDGet = () => Guid.NewGuid(), GetItemsSPQuery = _ => new ShimSPListItemCollection { CountGet = () => DummyInt, ItemGetInt32 = __ => spListItem }.Bind(new SPListItem[] { spListItem }), ParentWebGet = () => _web, Delete = () => _listDeleted = true, FieldsGet = () => new ShimSPFieldCollection { GetFieldByInternalNameString = _ => new ShimSPField { SealedGet = () => true, Update = () => _fieldUpdated = true, Delete = () => _fieldDeleted = true } }, ViewsGet = () => new ShimSPViewCollection { ItemGetString = _ => new ShimSPView(), DeleteGuid = _ => _viewDeleted = true }, EventReceiversGet = () => new ShimSPEventReceiverDefinitionCollection().Bind(new SPEventReceiverDefinition[] { new ShimSPEventReceiverDefinition { TypeGet = () => SPEventReceiverType.AppInstalled, AssemblyGet = () => DummyString, ClassGet = () => DummyString, Delete = () => _eventHandlerDeleted = true } }) }; _web = new ShimSPWeb { IDGet = () => new Guid(WebId), SiteGet = () => _site.Instance, CurrentUserGet = () => spUser, AllUsersGet = () => new ShimSPUserCollection { GetByIDInt32 = _ => spUser }, ListsGet = () => new ShimSPListCollection { TryGetListString = item => { if (item == File1) { return(null); } return(_list); } }, FilesGet = () => new ShimSPFileCollection { DeleteString = _ => _webFileDeleted = true }, NavigationGet = () => new ShimSPNavigation { QuickLaunchGet = () => new ShimSPNavigationNodeCollection { DeleteSPNavigationNode = _ => _quickLaunchDeleted = true }.Bind(new SPNavigationNode[] { new ShimSPNavigationNode { IdGet = () => DummyInt, TitleGet = () => DummyString } }), TopNavigationBarGet = () => new ShimSPNavigationNodeCollection { DeleteSPNavigationNode = _ => _topNavigationBarDeleted = true }.Bind(new SPNavigationNode[] { new ShimSPNavigationNode { IdGet = () => DummyInt, TitleGet = () => DummyString }, new ShimSPNavigationNode { IdGet = () => DummyInt + 1, TitleGet = () => $"{DummyString}1", ChildrenGet = () => new ShimSPNavigationNodeCollection { DeleteSPNavigationNode = _ => { } }.Bind(new SPNavigationNode[] { new ShimSPNavigationNode { IdGet = () => DummyInt, TitleGet = () => DummyString } }) } }) }, GetFolderString = _ => new ShimSPFolder { ExistsGet = () => true, Delete = () => _folderDeleted = true }, FeaturesGet = () => new ShimSPFeatureCollection { RemoveGuid = _ => _webFeatureRemoved = true }, GetFileString = _ => new ShimSPFile { ExistsGet = () => true, Delete = () => _fileDeleted = true } }; _site = new ShimSPSite { IDGet = () => Guid.NewGuid(), GetCatalogSPListTemplateType = _ => new ShimSPDocumentLibrary(), SolutionsGet = () => new ShimSPUserSolutionCollection { RemoveSPUserSolution = _ => _solutionDeleted = true }.Bind(new SPUserSolution[] { new ShimSPUserSolution { NameGet = () => DummyString } }), FeaturesGet = () => new ShimSPFeatureCollection { RemoveGuid = _ => _siteFeatureRemoved = true } }; ShimSPList.AllInstances.RootFolderGet = _ => new ShimSPFolder { FilesGet = () => new ShimSPFileCollection().Bind(new SPFile[] { new ShimSPFile { NameGet = () => DummyString, Delete = () => _listFileDeleted = true } }) }; ShimSPSite.ConstructorGuid = (_, __) => { }; ShimSPSite.ConstructorGuidSPUserToken = (_, __, ___) => { }; ShimSPSite.AllInstances.OpenWeb = _ => _web.Instance; ShimSPSite.AllInstances.OpenWebGuid = (_, __) => _web; ShimSPSite.AllInstances.WebApplicationGet = _ => new ShimSPWebApplication(); ShimSPSite.AllInstances.FeatureDefinitionsGet = _ => new ShimSPFeatureDefinitionCollection().Bind(new SPFeatureDefinition[] { new ShimSPFeatureDefinition { IdGet = () => new Guid(Feature1Guid), DisplayNameGet = () => DummyString, CompatibilityLevelGet = () => 14, ScopeGet = () => SPFeatureScope.Site }, new ShimSPFeatureDefinition { IdGet = () => new Guid(Feature2Guid), DisplayNameGet = () => DummyString, CompatibilityLevelGet = () => 15, ScopeGet = () => SPFeatureScope.Site } }); ShimSPSite.AllInstances.Dispose = _ => { }; ShimSPWeb.AllInstances.Dispose = _ => { }; ShimSPPersistedObject.AllInstances.FarmGet = _ => new ShimSPFarm { FeatureDefinitionsGet = () => new ShimSPFeatureDefinitionCollection().Bind(new SPFeatureDefinition[] { new ShimSPFeatureDefinition { IdGet = () => new Guid(Feature3Guid), DisplayNameGet = () => DummyString, CompatibilityLevelGet = () => 14, ScopeGet = () => SPFeatureScope.Web }, new ShimSPFeatureDefinition { IdGet = () => new Guid(Feature4Guid), DisplayNameGet = () => DummyString, CompatibilityLevelGet = () => 15, ScopeGet = () => SPFeatureScope.Web } }) }; ShimSPSiteDataQuery.Constructor = _ => { }; ShimSPQuery.Constructor = _ => { }; ShimApplications.RemoveAppFromCommunitySPListItemInt32 = (_, __) => _appRemovedFromCommunity = true; ShimApplications.DeleteCommunityInt32SPWeb = (_, __) => _communityDeleted = true; ShimSPSecurity.RunWithElevatedPrivilegesSPSecurityCodeToRunElevated = action => action(); ShimReportBiz.ConstructorGuid = (_, __) => { }; ShimReportBiz.AllInstances.GetReferencingTablesEPMDataString = (_, __, ___) => new DataTable(); ShimReportBiz.AllInstances.GetListBizGuid = (_, __) => new ShimListBiz { Delete = () => _listBizDeleted = true }; ShimEPMData.ConstructorGuid = (_, __) => { }; ShimEPMData.AllInstances.ExecuteScalarSqlConnection = (_, __) => DummyString; ShimEPMData.AllInstances.AddParamStringObject = (_, __, ___) => { }; ShimCoreFunctions.getLockConfigSettingSPWebStringBoolean = (_, __, ___) => DummyString; ShimCoreFunctions.getLockedWebSPWeb = _ => Guid.NewGuid(); ShimCoreFunctions.setConfigSettingSPWebStringString = (_, __, ___) => _configSettingSet = true; ShimCoreFunctions.getListSettingStringSPList = (_, __) => $"{DummyString}1"; ShimCoreFunctions.iGetListEventTypeString = _ => SPEventReceiverType.AppInstalled; ShimGridGanttSettings.AllInstances.SaveSettingsSPList = (_, __) => _gridGanttSettingsSaved = true; ShimPath.GetDirectoryNameString = _ => DummyString; ShimPath.GetExtensionString = fileName => { if (fileName == Folder1) { return(DummyString); } return(string.Empty); }; }