Commit d0331a03 authored by Marc Gravell's avatar Marc Gravell

Merge pull request #36 from jkonecki/2b04c22f

Replicated a bug 'Dapper MultiMap doesn't work with splitOn with NULL value'
parents e79dcff3 2b04c22f
...@@ -48,5 +48,12 @@ public static void IsNull(this object obj) ...@@ -48,5 +48,12 @@ public static void IsNull(this object obj)
} }
} }
public static void IsNotNull(this object obj)
{
if (obj == null)
{
throw new ApplicationException("Expected not null");
}
}
} }
} }
...@@ -771,6 +771,7 @@ class Category ...@@ -771,6 +771,7 @@ class Category
{ {
public int Id { get; set; } public int Id { get; set; }
public string Name { get; set; } public string Name { get; set; }
public string Description { get; set; }
} }
public void TestMultiMapWithSplit() // http://stackoverflow.com/q/6056778/23354 public void TestMultiMapWithSplit() // http://stackoverflow.com/q/6056778/23354
{ {
...@@ -786,6 +787,22 @@ class Category ...@@ -786,6 +787,22 @@ class Category
product.Category.Id.IsEqualTo(2); product.Category.Id.IsEqualTo(2);
product.Category.Name.IsEqualTo("def"); product.Category.Name.IsEqualTo("def");
} }
public void TestMultiMapWithSplitWithNullValue() // http://stackoverflow.com/q/10744728/449906
{
var sql = @"select 1 as id, 'abc' as name, NULL as description, 'def' as name";
var product = connection.Query<Product, Category, Product>(sql, (prod, cat) =>
{
prod.Category = cat;
return prod;
}, splitOn: "description").First();
// assertions
product.Id.IsEqualTo(1);
product.Name.IsEqualTo("abc");
product.Category.IsNotNull();
product.Category.Id.IsEqualTo(0);
product.Category.Name.IsEqualTo("def");
product.Category.Description.IsNull();
}
public void TestFieldsAndPrivates() public void TestFieldsAndPrivates()
{ {
var data = connection.Query<TestFieldCaseAndPrivatesEntity>( var data = connection.Query<TestFieldCaseAndPrivatesEntity>(
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment