public void ProcessField_Always_ReturnExpectedValueForDateTime()
        {
            // Arrange
            SPWeb spWeb = new ShimSPWeb
            {
                LocaleGet = () => new CultureInfo("en-US")
            };
            SPListItem listItem = new ShimSPListItem
            {
                ItemGetGuid = guidValue => "2018-12-05 00:00:00"
            };
            SPField field = new ShimSPField
            {
                TypeGet      = () => SPFieldType.DateTime,
                SchemaXmlGet = () => "format=\"DATEONLY\""
            };

            // Act
            var result = _privateObject.Invoke(
                "ProcessField",
                spWeb,
                listItem,
                field) as string;

            // Assert
            this.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNull(),
                () => result.ShouldBe("12/5/2018"));
        }
        public void GetWorkingOnGridLayout_WhenCalled_ReturnsString()
        {
            // Arrange
            const string resultXml = "<Grid/>";

            var data         = @"
                <MyWork>
                    <Params>
                        <GridId>111</GridId>
                    </Params>
                </MyWork>";
            var field        = new ShimSPField();
            var myFieldTypes = new Dictionary <string, SPField>()
            {
                [DueDateColumn] = field,
                [AuthorColumn]  = field,
                [EditorColumn]  = field
            };

            ShimUtils.GetFieldTypes = () => myFieldTypes;
            ShimResourceManager.AllInstances.GetStringStringCultureInfo = (_, _1, _2) => resultXml;

            // Act
            var actual = XDocument.Parse((string)privateObj.Invoke(
                                             GetWorkingOnGridLayoutMethodName,
                                             BindingFlags.Static | BindingFlags.NonPublic,
                                             new object[] { data }));

            // Assert
            actual.ShouldSatisfyAllConditions(
                () => actual.Element("Grid").Element("Cfg").Attribute("id").Value.ShouldBe("111"),
                () => actual.Element("Grid").Element("Cfg").Attribute("CSS").Value.ShouldBe(string.Format("{0}/_layouts/epmlive/treegrid/workingon/grid.css", Url)));
        }
        public void GetFieldSpecialValues_FieldTypeDate_ShouldExecuteCorrectly()
        {
            // Arrange
            var fieldType = new ShimSPField
            {
                TypeGet = () => SPFieldType.DateTime
            }.Instance;
            var fieldEditValue = string.Empty;
            var fieldTextValue = string.Empty;
            var fieldHtmlValue = string.Empty;
            var objectValue    = DateTime.Now;
            var stringValue    = DateTime.Now.ToString();
            var args           = new object[] { fieldType, stringValue, objectValue, fieldEditValue, fieldTextValue, fieldHtmlValue };

            // Act
            privateObject.Invoke(GetFieldSpecialValuesMethodName, args);
            fieldEditValue = args[3] as string;
            fieldTextValue = args[4] as string;
            fieldHtmlValue = args[5] as string;

            // Assert
            Assert.IsFalse(string.IsNullOrWhiteSpace(fieldEditValue));
            Assert.IsFalse(string.IsNullOrWhiteSpace(fieldTextValue));
            Assert.IsFalse(string.IsNullOrWhiteSpace(fieldHtmlValue));
        }
        public void AddParametersForField_FieldOkAllowMultipleValues_AddsExpectedParameters()
        {
            // Arrange
            const string internalNameExpected = "test-internal-name";
            var          idExpected           = Guid.NewGuid();
            var          prefixExpected       = internalNameExpected + "_" + idExpected;

            var fieldShim = new ShimSPField();

            fieldShim.InternalNameGet = () => internalNameExpected;
            fieldShim.IdGet           = () => idExpected;

            // Act
            _controlDataBuilder.AddParametersForField(fieldShim, true);

            // Assert
            Assert.IsTrue(_controlDataBuilder.Parameters.ContainsKey("SelectCandidateID"));
            Assert.AreEqual(prefixExpected + "_SelectCandidate", _controlDataBuilder.Parameters["SelectCandidateID"]);
            Assert.IsTrue(_controlDataBuilder.Parameters.ContainsKey("AddButtonID"));
            Assert.AreEqual(prefixExpected + "_AddButton", _controlDataBuilder.Parameters["AddButtonID"]);
            Assert.IsTrue(_controlDataBuilder.Parameters.ContainsKey("RemoveButtonID"));
            Assert.AreEqual(prefixExpected + "_RemoveButton", _controlDataBuilder.Parameters["RemoveButtonID"]);
            Assert.IsTrue(_controlDataBuilder.Parameters.ContainsKey("SelectResultID"));
            Assert.AreEqual(prefixExpected + "_SelectResult", _controlDataBuilder.Parameters["SelectResultID"]);
        }
        public void GetFieldSpecialValues_FieldTypeText_ShouldExecuteCorrectly()
        {
            // Arrange
            var fieldType = new ShimSPField
            {
                TypeGet = () => SPFieldType.Text
            }.Instance;
            var fieldEditValue = string.Empty;
            var fieldTextValue = string.Empty;
            var fieldHtmlValue = string.Empty;
            var objectValue    = DummyString;
            var stringValue    = DummyString;
            var args           = new object[] { fieldType, stringValue, objectValue, fieldEditValue, fieldTextValue, fieldHtmlValue };

            ShimSPField.AllInstances.GetFieldValueAsTextObject  = (_, objValue) => DummyString;
            ShimSPField.AllInstances.GetFieldValueForEditObject = (_, objValue) => DummyString;
            ShimSPField.AllInstances.GetFieldValueAsHtmlObject  = (_, objValue) => DummyString;

            // Act
            privateObject.Invoke(GetFieldSpecialValuesMethodName, args);
            fieldEditValue = args[3] as string;
            fieldTextValue = args[4] as string;
            fieldHtmlValue = args[5] as string;

            // Assert
            Assert.IsFalse(string.IsNullOrWhiteSpace(fieldEditValue));
            Assert.IsFalse(string.IsNullOrWhiteSpace(fieldTextValue));
            Assert.IsFalse(string.IsNullOrWhiteSpace(fieldHtmlValue));
        }
        public void GetListItemCount_OnException_ReturnsExpectedValue()
        {
            // Arrange
            var spWeb = new ShimSPWeb
            {
                ListsGet = () => null
            }.Instance;
            var field = new ShimSPField
            {
                GetCustomPropertyString = GetItem(new Hashtable
                {
                    ["AggType"]   = null,
                    ["AggColumn"] = null,
                    ["ListQuery"] = DummyString
                })
            }.Instance;

            // Act
            var result = privateObject.Invoke(getListItemCountMethodName, spWeb, field, DummyString) as double?;

            // Assert
            result.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNull(),
                () => result.Value.ShouldBe(0));
        }
        public void CleanupChildrenField_Should_ExecuteCorrectly()
        {
            // Arrange
            var field = new ShimSPField
            {
                ParentListGet = () => new ShimSPList
                {
                    FieldsGet = () => new ShimSPFieldCollection
                    {
                        GetFieldByInternalNameString = name =>
                        {
                            if (name == "[Test")
                            {
                                throw new Exception();
                            }
                            else
                            {
                                return(new ShimSPField());
                            }
                        }
                    }
                }
            }.Instance;
            const string ChildrenField = "[Dummy] [String] [Test] ";
            const string ExpectedValue = "[Dummy] [String] ";

            // Act
            var result = privateObject.Invoke(CleanupChildrenFieldMethodName, field, ChildrenField) as string;

            // Assert
            result.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNullOrEmpty(),
                () => result.ShouldBe(ExpectedValue));
        }
        public void GetUpdates_ValidConnection_OpenConnectionAndExecuteCommand()
        {
            // Arrange
            var spFields = new SPField[1];

            spFields[0] = new ShimSPField()
            {
                IdGet             = () => Guid.Empty,
                ReorderableGet    = () => true,
                ShowInEditFormGet = () => true,
                InternalNameGet   = () => string.Empty
            };
            SetupShims(spFields);
            SetupDataReaderShims(3);

            // Act
            var result = _publisher.getUpdates(Guid.NewGuid().ToString());

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(0, result.Length);
            Assert.IsTrue(_isConnectionOpenedCalled);
            Assert.AreEqual(4, _executeReaderCallCount);
            Assert.IsTrue(_isWriteEntryCalled);
            const int expectedSqlCommandDisposeCalls = 4;

            AssertThatObjectsAreDisposed(expectedSqlCommandDisposeCalls);
            Assert.IsTrue(_isEventLogDisposeCalled);
        }
        public void GetListItemCount_AggTypeDefault_ReturnsExpectedValue()
        {
            // Arrange
            var spWeb = new ShimSPWeb
            {
                ListsGet = () => new ShimSPListCollection
                {
                    ItemGetString = name => new ShimSPList
                    {
                        GetItemsSPQuery = query => new ShimSPListItemCollection
                        {
                            CountGet      = () => 1,
                            GetEnumerator = () => new List <SPListItem>
                            {
                                new ShimSPListItem
                                {
                                    ItemGetString = itemName => DummyString,
                                    FieldsGet     = () => new ShimSPFieldCollection
                                    {
                                        GetFieldByInternalNameString = internalName => new ShimSPField
                                        {
                                            GetFieldValueString = fieldName => "Value;#1"
                                        }
                                    }
                                }
                            }.GetEnumerator()
                        }
                    }
                }
            }.Instance;
            var field = new ShimSPField
            {
                GetCustomPropertyString = GetItem(new Hashtable
                {
                    ["AggType"]   = null,
                    ["AggColumn"] = null,
                    ["ListQuery"] = DummyString
                })
            }.Instance;

            // Act
            var result = privateObject.Invoke(getListItemCountMethodName, spWeb, field, DummyString) as double?;

            // Assert
            result.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNull(),
                () => result.Value.ShouldBe(1));
        }
        public void GetRelatedGridFormat_Other_ReturnsString()
        {
            // Arrange
            const string type = "Other";

            var field = new ShimSPField();

            // Act
            var actual = (string)privateObj.Invoke(
                GetRelatedGridFormatMethodName,
                BindingFlags.Static | BindingFlags.NonPublic,
                new object[] { type, string.Empty, field.Instance, spWeb.Instance });

            // Assert
            actual.ShouldBe(string.Empty);
        }
Example #11
0
        public void SetupShim(string labelTitle)
        {
            var _field = new ShimSPField()
            {
                DescriptionGet = () => { return(labelTitle); }
            };

            ShimSPField.AllInstances.Update = (_) => { _itemUpdated = true; };
            ShimSPFieldCollection.AllInstances.GetFieldByInternalNameString = (_, _1) => { return(_field); };

            ShimSPList.AllInstances.FieldsGet = (_) => { return(new ShimSPFieldCollection()); };

            ShimSPSecurity.RunWithElevatedPrivilegesSPSecurityCodeToRunElevated = codeToRun => codeToRun();
            ShimSPWeb.AllInstances.GetListString = (_, _1) => { return(new ShimSPList()); };

            ShimSPWeb.AllInstances.ListsGet = (_) => { return(new ShimSPListCollection()); };
            ShimSPListCollection.AllInstances.ItemGetString = (_, _1) => { return(new ShimSPList()); };
        }
Example #12
0
 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 = () => { }
     };
 }
        public void GetWorkingOnGridData_WhenCalled_ReturnsString()
        {
            // Arrange
            const string date   = "2018-09-16 01:00:00";
            const string format = "yyyy/MM/dd HH:mm:ss";

            var friendlyDate = Convert.ToDateTime(date).ToString(format);
            var dataTable    = new DataTable();

            dataTable.Columns.Add(DueDateColumn);
            dataTable.Columns.Add(AuthorColumn);
            var row = dataTable.NewRow();

            row[DueDateColumn] = date;
            row[AuthorColumn]  = DummyString;
            dataTable.Rows.Add(row);

            var field        = new ShimSPField();
            var myFieldTypes = new Dictionary <string, SPField>()
            {
                [DueDateColumn] = field,
                [AuthorColumn]  = field
            };

            ShimExtensionMethods.ToFriendlyDateDateTime = instance => instance.ToString(format);
            ShimUtils.GetFieldTypes             = () => myFieldTypes;
            ShimMyWork.GetWorkingOnString       = _ => dataTable;
            ShimMyWork.GetGridSafeValueXElement = input => input.Value;
            ShimMyWork.BuildFieldElementIDictionaryOfStringSPFieldStringString = (_, value, name) => new XElement(name, value);

            // Act
            var actual = XDocument.Parse((string)privateObj.Invoke(
                                             GetWorkingOnGridDataMethodName,
                                             BindingFlags.Static | BindingFlags.NonPublic,
                                             new object[] { string.Empty }));

            // Assert
            actual.ShouldSatisfyAllConditions(
                () => actual.Element("Grid").Element("Body").Element("B").Element("I").Attributes().Count().ShouldBe(3),
                () => actual.Element("Grid").Element("Body").Element("B").Element("I").Attribute(DueDayColumn).Value.ShouldBe(friendlyDate),
                () => actual.Element("Grid").Element("Body").Element("B").Element("I").Attribute(DueDateColumn).Value.ShouldBe(date),
                () => actual.Element("Grid").Element("Body").Element("B").Element("I").Attribute(AuthorColumn).Value.ShouldBe(DummyString));
        }
        public void GetRelatedGridFormat_Date_ReturnsString()
        {
            // Arrange
            const string type     = "Date";
            const string format   = "yyyy-MM-dd";
            const string expected = "yyyy-MM-dd h:mm tt";

            var field = new ShimSPField();

            ShimMyWork.GetExampleDateFormatSPWebStringStringString = (_, _1, _2, _3) => format;

            // Act
            var actual = (string)privateObj.Invoke(
                GetRelatedGridFormatMethodName,
                BindingFlags.Static | BindingFlags.NonPublic,
                new object[] { type, string.Empty, field.Instance, spWeb.Instance });

            // Assert
            actual.ShouldBe(expected);
        }
Example #15
0
        public void RenderOptions_Situation8_ConfirmResult()
        {
            // Arrange
            var field = new ShimSPField
            {
                TypeGet         = () => SPFieldType.Text,
                RequiredGet     = () => false,
                InternalNameGet = () => $"{DummyString}_"
            }.Instance;

            SetupForRenderOptions(DummyString, MemOptionFieldWhere, EditMode);

            // Act
            var result = (string)_privateObj.Invoke(RenderOptionsMethod, field);

            // Assert
            this.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNullOrEmpty(),
                () => _scriptRegistered.ShouldBeTrue());
        }
        public void AddParametersForField_FieldOkNotAllowMultiple_AddsExpectedParameters()
        {
            // Arrange
            const string internalNameExpected = "test-internal-name";
            var          idExpected           = Guid.NewGuid();
            var          prefixExpected       = internalNameExpected + "_" + idExpected + "_$";

            var fieldShim = new ShimSPField();

            fieldShim.InternalNameGet          = () => internalNameExpected;
            fieldShim.IdGet                    = () => idExpected;
            fieldShim.FieldRenderingControlGet = () => new ShimBusinessDataFieldControl();

            // Act
            _controlDataBuilder.AddParametersForField(fieldShim, false);

            // Assert
            Assert.IsTrue(_controlDataBuilder.Parameters.ContainsKey("SourceDropDownID"));
            Assert.AreEqual(prefixExpected + typeof(BusinessDataFieldControl).Name, _controlDataBuilder.Parameters["SourceDropDownID"]);
            Assert.IsTrue(_controlDataBuilder.Parameters.ContainsKey("SourceControlID"));
            Assert.AreEqual(prefixExpected + typeof(BusinessDataFieldControl).Name, _controlDataBuilder.Parameters["SourceControlID"]);
        }
        public void GetRealField_WhenCalled_ReturnsSPField()
        {
            // Arrange
            const string schemaXml = @"<child DisplayNameSrcField=""ParentField""/>";

            var field = new ShimSPField()
            {
                TypeGet       = () => SPFieldType.Computed,
                SchemaXmlGet  = () => schemaXml,
                ParentListGet = () => spList
            };

            spField.InternalNameGet = () => DummyString;

            // Act
            var actual = (SPField)privateObject.Invoke(
                GetRealFieldMethodName,
                BindingFlags.Static | BindingFlags.Public,
                new object[] { field.Instance });

            // Assert
            actual.InternalName.ShouldBe(DummyString);
        }
Example #18
0
 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            = () => { }
     };
 }
        public void GetMyWorkGridLayout_WhenCalled_ReturnsString()
        {
            // Arrange
            var data      = @"
                <MyWork>
                    <WebPart ID=""1"" />
                    <CompleteItemsQuery>False</CompleteItemsQuery>
                </MyWork>";
            var resultXml = string.Format(@"
                <Grid>
                    <Header />
                    <LeftCols>
                        <C Name=""Complete""/>
                    </LeftCols>
                    <Cols>
                        <C Name=""ColName""/>
                        <C Name=""{0}""/>
                    </Cols>
                    <RightCols>
                        <C Name=""RightColName""/>
                    </RightCols>
                </Grid>",
                                          WorkingOnColumn);
            var field        = new ShimSPField();
            var myFieldTypes = new Dictionary <string, SPField>()
            {
                [DueDateColumn] = field,
                [AuthorColumn]  = field,
                [EditorColumn]  = field
            };

            ShimUtils.GetFieldTypes = () => myFieldTypes;
            ShimResourceManager.AllInstances.GetStringStringCultureInfo = (_, _1, _2) => resultXml;
            ShimExtensionMethods.ToPrettierNameStringListOfStringSPWeb  = (instance, _, _1) => instance;
            ShimMyWork.ShouldUseReportingDbSPWeb = _ => false;
            ShimMyWork.GetMyWorkFieldTypeMyWorkFieldIDictionaryOfStringSPFieldStringOut = (MyWorkField myWorkField, IDictionary <string, SPField> fieldTypes, out string format) =>
            {
                format = "format";
                return("Date");
            };
            GetMyWorkParams.SelectedFields = new List <string>();

            ShimMyWork.GetRelatedGridFormatStringStringSPFieldSPWeb = (_, _1, _2, _3) => "editFormat%";
            ShimMyWork.GetSettingsString =
                (string dataParam) =>
            {
                GetMyWorkParams.SelectedFields.Add(DueDateColumn);
                GetMyWorkParams.SelectedFields.Add(AuthorColumn);
                GetMyWorkParams.SelectedFields.Add(EditorColumn);
            };

            // Act
            var actual = XDocument.Parse((string)privateObj.Invoke(
                                             GetMyWorkGridLayoutMethodName,
                                             BindingFlags.Static | BindingFlags.NonPublic,
                                             new object[] { data }));

            // Assert
            actual.ShouldSatisfyAllConditions(
                () => actual.Element("Grid").Element("Cfg").Attribute("id").Value.ShouldBe("1"),
                () => actual.Element("Grid").Element("Cols").Elements().Count().ShouldBe(7),
                () => actual.Element("Grid").Element("Header").Attribute("Author").Value.ShouldBe("Created By"),
                () => actual.Element("Grid").Element("RightCols").Elements().Count().ShouldBe(0),
                () => actual.Element("Grid").Element("LeftCols").Element("C").Attribute("Tip").Value.ShouldBe("Mark Complete"),
                () => actual.Element("Grid").Element("Cols").Elements().FirstOrDefault(x => x.Attribute("Name").Value.Equals(WorkingOnColumn)).Attributes().Count(x => x.Value == "0").ShouldBe(3));
        }
Example #20
0
        public void EnsureFieldsInRequestItem_WhenCalled_ReturnsBoolean()
        {
            // Arrange
            const string workspaceUrl        = "WorkspaceUrl";
            const string childItem           = "ChildItem";
            const string url                 = "http://sampleurl.com";
            const string expectedDescription = "sampleurl.com";

            var validationCount     = 0;
            var expectedString      = $"{guid.ToString()}.{guid.ToString()}.1";
            var actualString        = string.Empty;
            var actualFieldUrlValue = default(SPFieldUrlValue);
            var visitCount          = new Dictionary <string, int>()
            {
                [workspaceUrl] = 0,
                [childItem]    = 0
            };

            spList.FieldsGet = () => new ShimSPFieldCollection()
            {
                GetFieldByInternalNameString = key =>
                {
                    var result = default(SPField);
                    switch (key)
                    {
                    case workspaceUrl:
                        visitCount[key] = visitCount[key] + 1;
                        if (visitCount[key] > 1)
                        {
                            result = new ShimSPFieldUrl().Instance;
                        }
                        break;

                    case childItem:
                        visitCount[key] = visitCount[key] + 1;
                        if (visitCount[key] > 1)
                        {
                            result = new ShimSPFieldText().Instance;
                        }
                        break;

                    default:
                        result = new ShimSPField()
                        {
                            IdGet = () => guid
                        }.Instance;
                        break;
                    }
                    return(result);
                },
                AddStringSPFieldTypeBoolean = (key, _, __) =>
                {
                    if (key == workspaceUrl || key == childItem)
                    {
                        validationCount = validationCount + 1;
                    }
                    return(key);
                }
            };
            spWeb.ServerRelativeUrlGet = () => url;
            spListItem.SystemUpdate    = () =>
            {
                validationCount = validationCount + 1;
            };
            spListItem.ItemSetGuidObject = (_, input) =>
            {
                if (input.GetType().Equals(typeof(SPFieldUrlValue)))
                {
                    actualFieldUrlValue = (SPFieldUrlValue)input;
                    validationCount     = validationCount + 1;
                }
                else if (input.GetType().Equals(typeof(string)))
                {
                    actualString    = (string)input;
                    validationCount = validationCount + 1;
                }
            };

            ShimSPField.AllInstances.Update = _ =>
            {
                validationCount = validationCount + 1;
            };

            // Act
            var actual = (bool)privateObj.Invoke(
                EnsureFieldsInRequestItemMethodName,
                BindingFlags.Static | BindingFlags.NonPublic,
                new object[] { string.Empty, spList.Instance, spWeb.Instance, spListItem.Instance, spListItem.Instance });

            // Assert
            actual.ShouldSatisfyAllConditions(
                () => actual.ShouldBeTrue(),
                () => actualString.ShouldBe(expectedString),
                () => actualFieldUrlValue.Url.ShouldBe(url),
                () => actualFieldUrlValue.Description.ShouldBe(expectedDescription),
                () => validationCount.ShouldBe(7));
        }
Example #21
0
        private void commonTest(Boolean groups)
        {
            try
            {
                SortedList    arrGTemp = new SortedList();
                PrivateObject objToTestPrivateMethod = new PrivateObject(typeof(getts));
                XmlDocument   docXml = new XmlDocument();

                using (SPEmulators.SPEmulationContext ctx = new SPEmulators.SPEmulationContext(SPEmulators.IsolationLevel.Fake))
                {
                    SPList list  = new ShimSPList();
                    SPWeb  spWeb = new ShimSPWeb();

                    docXml.LoadXml("<rows></rows>");
                    objToTestPrivateMethod.SetField("docXml", docXml);
                    objToTestPrivateMethod.SetField("period", "1");
                    objToTestPrivateMethod.SetField("ndMainParent", docXml.ChildNodes[0]);
                    objToTestPrivateMethod.SetField("list", list);

                    if (groups)
                    {
                        objToTestPrivateMethod.SetField("arrGroupFields", new string[] { "FirstName", "LastName" });

                        ShimSPField.AllInstances.IdGet = (instance) =>
                        {
                            return(Guid.NewGuid());
                        };

                        ShimSPList.AllInstances.FieldsGet = (instance) =>
                        {
                            ShimSPFieldCollection fcol = new ShimSPFieldCollection();
                            fcol.GetFieldByInternalNameString = (internalName) =>
                            {
                                ShimSPField field = new ShimSPField();
                                field.IdGet = () =>
                                {
                                    return(Guid.NewGuid());
                                };
                                field.GetFieldValueAsTextObject = (obj) =>
                                {
                                    return(internalName);
                                };
                                return(field);
                            };
                            return(fcol);
                        };
                    }

                    ShimSPList.AllInstances.GetItemsSPQuery = (instance, a) =>
                    {
                        SPListItemEnumerator sPListItemEnumerator = new SPListItemEnumerator();
                        return(new ShimSPListItemCollection()
                        {
                            GetEnumerator = () =>
                            {
                                return sPListItemEnumerator;
                            },
                            CountGet = () =>
                            {
                                return sPListItemEnumerator.sPListItems.Length;
                            }
                        });
                    };

                    objToTestPrivateMethod.Invoke("processList", spWeb, arrGTemp);
                }
            }
            catch (Exception ex)
            {
                Assert.Fail(ex.Message);
            }
        }
 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()
        {
            guid = Guid.NewGuid();
            now  = DateTime.Now;

            userList = new List <SPFieldUserValue>()
            {
                new ShimSPFieldUserValue()
                {
                    UserGet = () => new ShimSPUser()
                    {
                        LoginNameGet = () => GetStringOutput,
                        IDGet        = () => 1
                    }
                }.Instance
            };

            listItem = new ShimSPListItem()
            {
                IDGet         = () => 1,
                ItemGetGuid   = _ => new object(),
                SystemUpdate  = () => { },
                ItemGetString = key =>
                {
                    var result = key;
                    switch (key)
                    {
                    case "taskorder":
                    case "taskuid":
                        result = "1";
                        break;
                    }
                    return(result);
                },
                TitleGet = () => Title
            };

            list = new ShimSPList()
            {
                FieldsGet = () => new ShimSPFieldCollection()
                {
                    GetFieldByInternalNameString = _ => new ShimSPField()
                    {
                        IdGet = () => guid
                    },
                    ItemGetGuid = _ => new ShimSPField()
                    {
                        GetFieldValueString = _1 => GetStringOutput
                    }
                },
                GetItemsSPQuery = _ => new ShimSPListItemCollection()
                {
                    CountGet     = () => 1,
                    ItemGetInt32 = _1 => listItem
                },
                GetItemByIdInt32 = _ => listItem,
                IDGet            = () => guid,
                ParentWebGet     = () => new ShimSPWeb()
                {
                    GetSiteDataSPSiteDataQuery = _ => dTable
                },
                Update = () => { }
            };

            spField = new ShimSPField()
            {
                IdGet           = () => guid,
                InternalNameGet = () => InternalNameString,
                SchemaXmlGet    = () => PublishStatusShowResultsFalse
            };

            defs = new Dictionary <string, PlannerDefinition>()
            {
                [GetStringOutput] = new PlannerDefinition()
            };

            spSite = new ShimSPSite()
            {
                IDGet             = () => guid,
                WebApplicationGet = () => new ShimSPWebApplication()
            };

            spWeb = new ShimSPWeb()
            {
                CurrentUserGet = () => new ShimSPUser()
                {
                    IDGet = () => 1
                },
                IDGet    = () => guid,
                ListsGet = () => new ShimSPListCollection()
                {
                    ItemGetString    = key => list,
                    TryGetListString = _ => list
                },
                GetFileString = url => new ShimSPFile()
                {
                    ExistsGet       = () => true,
                    ParentFolderGet = () => new ShimSPFolder()
                    {
                        NameGet = () => Planner
                    }
                },
                SiteGet = () => spSite
            };

            dataReader = new ShimSqlDataReader()
            {
                Close            = () => { },
                GetGuidInt32     = index => guid,
                IsDBNullInt32    = index => false,
                GetInt32Int32    = index => 2,
                GetStringInt32   = index => GetStringOutput,
                GetDateTimeInt32 = index => now
            };

            parameterList = new List <string>();
            commandsList  = new List <string>();
        }