コード例 #1
0
        public void GetAllForeignKeys_OnSuccess_ExecutesCorrectly()
        {
            // Arrange
            var lookupId = Guid.NewGuid();

            var dao = new ShimEPMData
            {
                GetClientReportingConnectionGet = () => new SqlConnection(),
                GetTableSqlConnection           = _ => new ShimDataTable
                {
                    RowsGet = () => new ShimDataRowCollection
                    {
                        GetEnumerator = () => new List <DataRow>
                        {
                            new ShimDataRow
                            {
                                ItemGetString = name => DummyString
                            }
                        }.GetEnumerator()
                    }
                }
            };

            ShimDataTable.AllInstances.SelectString = (_, query) => new DataRow[]
            {
                new ShimDataRow
                {
                    ItemGetString = name => DummyString
                }
            };
            ShimSPWeb.AllInstances.ListsGet = _ => new ShimSPListCollection
            {
                ItemGetString = name => null,
                ItemGetGuid   = guid =>
                {
                    return(guid == lookupId
                        ? new ShimSPList()
                        : null);
                }
            };
            ShimSPSite.AllInstances.AllWebsGet = _ =>
            {
                var list = new List <SPWeb>
                {
                    new ShimSPWeb
                    {
                        ListsGet = () => new ShimSPListCollection
                        {
                            ItemGetGuid   = guid => new ShimSPList(),
                            ItemGetString = name => new ShimSPList()
                        }
                    }
                }.AsEnumerable();
                return(new ShimSPWebCollection().Bind(list));
            };
            ShimSPList.AllInstances.FieldsGet = _ => new ShimSPFieldCollection
            {
                GetFieldByInternalNameString = name =>
                {
                    return(new ShimSPFieldLookup
                    {
                        LookupListGet = () => lookupId.ToString()
                    }.Instance);
                }
            };
            ShimSPField.AllInstances.TypeAsStringGet = _ => DummyString;
            ShimSPList.AllInstances.TitleGet         = _ => DummyString;

            // Act
            var result = reportBiz.GetAllForeignKeys(dao);

            // Assert
            result.ShouldSatisfyAllConditions(
                () => result.ShouldNotBeNull(),
                () => result.Rows.Count.ShouldBeGreaterThan(0));
        }