public void DataReaderToList_WhenPropertyHasCorrosponingColmunButHasPropertyMap_OnlyUsesPropertyMap() { var dataReader = new MockDataReader(); var rootTable = dataReader.AddTable( "IdVal", "Id" ); dataReader.AddRow( rootTable, 1, 2 ); dataReader.AddRow( rootTable, 1, DBNull.Value ); var result = dataReader.DataReaderToList<PropertyMapTest>( typeof( PropertyMapTestConfiguration ) ); }
public void DataReaderToList_WithMappingThatSetsVirtualStringProperty_ReturnsList() { var dataReader = new MockDataReader(); var table = dataReader.AddTable( "Id" ); dataReader.AddRow( table, 1 ); var result = dataReader.DataReaderToList<TestObject>( typeof ( TestObjectConfiguration ) ); Assert.AreEqual( "Hello World", result[ 0 ].Name ); }
public void DataReaderToList_WhenMultipleDictionaryJoins_DoesNotUseSameExpandoObjectMap() { var dataReader = new MockDataReader(); var rootTable = dataReader.AddTable( "Id" ); var users = dataReader.AddTable( "Key", "Value" ); var places = dataReader.AddTable( "Key", "Value" ); dataReader.AddRow( rootTable, 1 ); dataReader.AddRow( users, 1, "User 1" ); dataReader.AddRow( places, "Place 1", "Location" ); var result = dataReader.DataReaderToList<WhenMultipleDictionaryJoins>( typeof( WhenMultipleDictionaryJoinsConfiguration ) ); }
public void DataReaderToList_WhenUsingConfiguration_ReturnsCorrectResult() { var dataReader = new MockDataReader(); var rootTable = dataReader.AddTable( "Name", "Size", "DueDate" ); var products = dataReader.AddTable( "Id", "Name", "Price", "Available" ); var stock = dataReader.AddTable( "ProductId", "Id", "Quantity" ); var ratings = dataReader.AddTable( "ProductId", "Rating" ); dataReader.AddRow( rootTable, "The Shop", 12, DateTime.Now ); dataReader.AddRow( products, 1, "Drink", 1.99m, true ); dataReader.AddRow( products, 2, "Snack", 0.78m, false ); dataReader.AddRow( stock, 1, 1, 20 ); dataReader.AddRow( stock, 1, 2, 5 ); dataReader.AddRow( stock, 2, 3, 0 ); dataReader.AddRow( ratings, 2, (double)2 ); var result = dataReader.DataReaderToList<RootTable>( typeof( ShopConfiguration ) ); Assert.AreEqual( "The Shop", result[ 0 ].Name ); Assert.AreEqual( 24, result[ 0 ].Size ); Assert.AreEqual( 2, result[ 0 ].Products.Count ); Assert.AreEqual( 1, result[ 0 ].Products[ 0 ].Id ); Assert.AreEqual( "Drink", result[ 0 ].Products[ 0 ].Name ); Assert.AreEqual( 1.99M, result[ 0 ].Products[ 0 ].Price ); Assert.AreEqual( true, result[ 0 ].Products[ 0 ].Available ); Assert.AreEqual( 2, result[ 0 ].Products[ 1 ].Id ); Assert.AreEqual( "Snack", result[ 0 ].Products[ 1 ].Name ); Assert.AreEqual( 0.78M, result[ 0 ].Products[ 1 ].Price ); Assert.AreEqual( false, result[ 0 ].Products[ 1 ].Available ); Assert.AreEqual( 2, result[ 0 ].Products[ 0 ].Stock.Count ); Assert.AreEqual( 20, result[ 0 ].Products[ 0 ].Stock[ 1 ] ); Assert.AreEqual( 5, result[ 0 ].Products[ 0 ].Stock[ 2 ] ); Assert.AreEqual( 1, result[ 0 ].Products[ 1 ].Stock.Count ); Assert.AreEqual( 0, result[ 0 ].Products[ 1 ].Stock[ 3 ] ); Assert.AreEqual( 0, result[ 0 ].Products[ 0 ].ProductRatings.Count ); Assert.AreEqual( 1, result[ 0 ].Products[ 1 ].ProductRatings.Count ); Assert.AreEqual( 2, result[ 0 ].Products[ 1 ].ProductRatings[ 0 ].Rating ); }
public void DataReaderToList_WithTwoTableJoinsForSameTable_JoinsTables() { var dataReader = new MockDataReader(); var rootTable = dataReader.AddTable( "HomeTeamId", "HomeTeamId1", "AwayTeamId" ); dataReader.AddRow( rootTable, DBNull.Value, 2, 1 ); var teamTable = dataReader.AddTable( "Id", "Name" ); dataReader.AddRow( teamTable, 1, "Team A" ); dataReader.AddRow( teamTable, 2, "Team B" ); var result = dataReader.DataReaderToList<Score>( typeof( ScoreConfiguration ) ); Assert.AreEqual( "Team A", result[ 0 ].AwayTeam.Name ); Assert.AreEqual( "Team B", result[ 0 ].HomeTeam.Name ); }
public void DataReaderToList_WithNullablePropertyThatHasAValueOnTheFirstRowAndNullOnTheSecondRow_SetsTheSecondObjectsPropertyToNull() { var dataReader = new MockDataReader(); var rootTable = dataReader.AddTable( "Name", "Score" ); dataReader.AddRow( rootTable, "Team A", (int?)12 ); dataReader.AddRow( rootTable, "Team B", DBNull.Value ); var result = dataReader.DataReaderToList<NullableTest>(); Assert.AreEqual( 12, result[ 0 ].Score ); Assert.IsNull( result[ 1 ].Score ); }