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)); }