private void SetupShims()
        {
            var readNum = -1;

            ShimSqlDataReader.AllInstances.Read = instance =>
            {
                readNum++;
                return(readNum < 3);
            };

            ShimSqlDataReader.AllInstances.GetInt32Int32  = (instance, num) => 0;
            ShimSqlDataReader.AllInstances.GetStringInt32 = (instance, num) => string.Empty;
            ShimCoreFunctions.getConfigSettingSPWebString = (_, __) => true.ToString();
            ShimTimesheetAPI.CheckNonTeamMemberAllocationSPWebStringStringString
                = (_, __, ___, ____) => { };
            ShimTimesheetAPI.GetPeriodDaysArraySqlConnectionTimesheetSettingsSPWebString =
                (cn, settings, web, sPeriod) =>
            {
                return(new ArrayList(new [] { new DateTime(2018, 01, 22) }));
            };

            ShimMyWorkReportData.ConstructorGuid = (instance, __) =>
            {
                var reportDataShim = new ShimMyWorkReportData(instance)
                {
                    ExecuteSqlString = _ => new DataTable()
                };
            };

            ShimTimesheetSettings.ConstructorSPWeb = (_, __) => { };
        }
        public void MapCompleteField_WhenCalled_SetsConfigSetting()
        {
            // Arrange
            const string expectedKey = "EPMLive_MyWork_CompleteFieldAdded";

            SerializedGlobalViews = false.ToString();

            var dataTable = new DataTable();

            dataTable.Columns.Add(ListIdColumn, typeof(Guid));
            dataTable.Columns.Add(ColColumn);
            var row = dataTable.NewRow();

            row[ListIdColumn] = guid;
            row[ColColumn]    = "NotComplete";
            dataTable.Rows.Add(row);

            var myWorkReportData = new ShimMyWorkReportData()
            {
                ExecuteSqlString = _ => dataTable
            };
            var actual      = false;
            var actualKey   = string.Empty;
            var actualValue = string.Empty;

            ShimCoreFunctions.setConfigSettingSPWebStringString = (_, key, value) =>
            {
                actual      = true;
                actualKey   = key;
                actualValue = value;
            };
            ShimReportData.AllInstances.InsertListColumnsGuidListOfColumnDef = (_, _1, _2) => true;
            ShimReportData.AllInstances.AddColumnsStringListOfColumnDef      = (_, _1, _2) => true;

            // Act
            privateObj.Invoke(
                MapCompleteFieldMethodName,
                BindingFlags.Static | BindingFlags.NonPublic,
                new object[] { spWeb.Instance, myWorkReportData.Instance });

            // Assert
            actual.ShouldSatisfyAllConditions(
                () => actual.ShouldBeTrue(),
                () => actualKey.ShouldBe(expectedKey),
                () => actualValue.ShouldBe(true.ToString()));
        }
예제 #3
0
        private void SetupShims()
        {
            var readNum = -1;

            ShimSqlDataReader.AllInstances.Read = instance =>
            {
                readNum++;
                return(readNum < 3);
            };

            ShimSqlDataReader.AllInstances.GetInt32Int32  = (instance, num) => 0;
            ShimSqlDataReader.AllInstances.GetStringInt32 = (instance, num) =>
            {
                if (readNum == 0)
                {
                    if (num == ResultFieldIndex)
                    {
                        return(Result);
                    }
                    else if (num == ResultTextFieldIndex)
                    {
                        return(ResultText);
                    }
                }
                throw new Exception("Unexpected call to GetString.");
            };
            ShimCoreFunctions.getConfigSettingSPWebString = (_, __) => true.ToString();
            ShimTimesheetAPI.CheckNonTeamMemberAllocationSPWebStringStringString
                = (_, __, ___, ____) => { };

            ShimMyWorkReportData.ConstructorGuid = (instance, __) =>
            {
                var reportDataShim = new ShimMyWorkReportData(instance)
                {
                    ExecuteSqlString = _ => new DataTable()
                };
            };
        }