Skip to content

Commit b625dbd

Browse files
committed
0.9.5.3
1 parent b353463 commit b625dbd

9 files changed

Lines changed: 98 additions & 12 deletions

File tree

CommonAssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,6 @@
1919
// COM, set the ComVisible attribute to true on that type.
2020
[assembly: ComVisible(false)]
2121

22-
[assembly: AssemblyVersion("0.9.5.2")]
23-
[assembly: AssemblyFileVersion("0.9.5.2")]
22+
[assembly: AssemblyVersion("0.9.5.3")]
23+
[assembly: AssemblyFileVersion("0.9.5.3")]
2424

Simple.Data.Ado/Simple.Data.Ado.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
33
<metadata>
44
<id>Simple.Data.Ado</id>
5-
<version>0.9.5.1</version>
5+
<version>0.9.5.3</version>
66
<authors>Mark Rendle</authors>
77
<owners>Mark Rendle</owners>
88
<description>ADO Adapter for the Simple.Data data access library.</description>
@@ -12,7 +12,7 @@
1212
<tags>sqlserver database data ado .net40</tags>
1313
<language>en-us</language>
1414
<dependencies>
15-
<dependency id="Simple.Data.Core" version="0.9.5.1" />
15+
<dependency id="Simple.Data.Core" version="0.9.5.3" />
1616
</dependencies>
1717
</metadata>
1818
</package>

Simple.Data.Mocking/Simple.Data.Mocking.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
33
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
44
<id>Simple.Data.Mocking</id>
5-
<version>0.9.5.1</version>
5+
<version>0.9.5.3</version>
66
<authors>Mark Rendle</authors>
77
<owners>Mark Rendle</owners>
88
<description>XML-based Mocking adapter for the Simple.Data data access library.</description>
@@ -12,7 +12,7 @@
1212
<tags>database data .net40</tags>
1313
<language>en-us</language>
1414
<dependencies>
15-
<dependency id="Simple.Data.Ado" version="0.9.5.1" />
15+
<dependency id="Simple.Data.Ado" version="0.9.5.3" />
1616
</dependencies>
1717
</metadata>
1818
</package>

Simple.Data.SqlCe40/Simple.Data.SqlCe40.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
33
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
44
<id>Simple.Data.SqlCompact40</id>
5-
<version>0.9.5.1</version>
5+
<version>0.9.5.3</version>
66
<authors>Mark Rendle</authors>
77
<owners>Mark Rendle</owners>
88
<description>SQL Server Compact 4.0 ADO provider for the Simple.Data data access library.</description>
@@ -12,7 +12,7 @@
1212
<tags>sqlserver compact sqlce database data ado .net40</tags>
1313
<language>en-us</language>
1414
<dependencies>
15-
<dependency id="Simple.Data.Ado" version="0.9.5.1" />
15+
<dependency id="Simple.Data.Ado" version="0.9.5.3" />
1616
</dependencies>
1717
</metadata>
1818
</package>

Simple.Data.SqlServer/Simple.Data.SqlServer.nuspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
33
<metadata xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
44
<id>Simple.Data.SqlServer</id>
5-
<version>0.9.5.1</version>
5+
<version>0.9.5.3</version>
66
<authors>Mark Rendle</authors>
77
<owners>Mark Rendle</owners>
88
<description>SQL Server ADO provider for the Simple.Data data access library.</description>
@@ -12,7 +12,7 @@
1212
<tags>sqlserver database data ado .net40</tags>
1313
<language>en-us</language>
1414
<dependencies>
15-
<dependency id="Simple.Data.Ado" version="0.9.5.1" />
15+
<dependency id="Simple.Data.Ado" version="0.9.5.3" />
1616
</dependencies>
1717
</metadata>
1818
</package>
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
6+
namespace Simple.Data.UnitTest
7+
{
8+
using NUnit.Framework;
9+
10+
[TestFixture]
11+
public class ConcreteTypeCreatorTest
12+
{
13+
[Test]
14+
public void CanConvertDecimalToDouble()
15+
{
16+
var source = new Dictionary<string, object> { { "Value", 1.0m } };
17+
var target = ConcreteTypeCreator.Get(typeof (DecimalToDouble));
18+
object actual;
19+
Assert.IsTrue(target.TryCreate(source, out actual));
20+
Assert.IsInstanceOf<DecimalToDouble>(actual);
21+
Assert.AreEqual(1.0d, ((DecimalToDouble)actual).Value);
22+
}
23+
24+
[Test]
25+
public void CanConvertDateTimeToNullableDateTime()
26+
{
27+
var expected = new DateTime(2011,9,8);
28+
var source = new Dictionary<string, object> { { "Value", expected } };
29+
var target = ConcreteTypeCreator.Get(typeof(DateTimeToNullableDateTime));
30+
object actual;
31+
Assert.IsTrue(target.TryCreate(source, out actual));
32+
Assert.IsInstanceOf<DateTimeToNullableDateTime>(actual);
33+
Assert.IsTrue(((DateTimeToNullableDateTime)actual).Value.HasValue);
34+
Assert.AreEqual(expected, ((DateTimeToNullableDateTime)actual).Value.Value);
35+
}
36+
37+
[Test]
38+
public void CanConvertInt32ToEnum()
39+
{
40+
var expected = Int32ToEnum.Numbers.One;
41+
var source = new Dictionary<string, object> { { "Value", (int)expected } };
42+
var target = ConcreteTypeCreator.Get(typeof(Int32ToEnum));
43+
object actual;
44+
Assert.IsTrue(target.TryCreate(source, out actual));
45+
Assert.IsInstanceOf<Int32ToEnum>(actual);
46+
Assert.AreEqual(expected, ((Int32ToEnum)actual).Value);
47+
}
48+
49+
public class DecimalToDouble
50+
{
51+
public double Value { get; set; }
52+
}
53+
54+
public class DateTimeToNullableDateTime
55+
{
56+
public DateTime? Value { get; set; }
57+
}
58+
59+
public class Int32ToEnum
60+
{
61+
public enum Numbers
62+
{
63+
One = 1,
64+
Two = 2
65+
}
66+
67+
public Numbers Value { get; set; }
68+
}
69+
}
70+
}

Simple.Data.UnitTest/SimpleResultSetTest.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,16 @@ public void ToGenericListCreatesTypedList()
382382
Assert.AreEqual("0", converted[0].Data);
383383
}
384384

385+
[Test]
386+
public void CastToGenericCreatesTypedList()
387+
{
388+
dynamic list = new SimpleResultSet(Records(1));
389+
IEnumerable<TestType> converted = list.Cast<TestType>();
390+
391+
Assert.IsNotNull(converted);
392+
Assert.AreEqual(1, converted.Count());
393+
Assert.AreEqual("0", converted.First().Data);
394+
}
385395
}
386396

387397
class TestType

Simple.Data/ConcreteTypeCreator.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public bool TryCreate(IDictionary<string, object> data, out object result)
5252
continue;
5353
}
5454

55-
if (value != null && propertyInfo.PropertyType != value.GetType() && !propertyInfo.PropertyType.IsEnum)
55+
if (value != null && IsTypeConversionRequired(value.GetType(), propertyInfo.PropertyType))
5656
{
5757
value = Convert.ChangeType(value, propertyInfo.PropertyType);
5858
}
@@ -65,6 +65,12 @@ public bool TryCreate(IDictionary<string, object> data, out object result)
6565
return anyPropertiesSet;
6666
}
6767

68+
private static bool IsTypeConversionRequired(Type source, Type target)
69+
{
70+
if (target.IsEnum) return !target.GetEnumUnderlyingType().IsAssignableFrom(source);
71+
return !target.IsAssignableFrom(source);
72+
}
73+
6874
private static bool CanSetProperty(PropertyInfo propertyInfo, IDictionary<string, object> data)
6975
{
7076
return data.ContainsKey(propertyInfo.Name) &&

Simple.Data/Simple.Data.nuspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
33
<metadata>
44
<id>Simple.Data.Core</id>
5-
<version>0.9.5.1</version>
5+
<version>0.9.5.3</version>
66
<authors>Mark Rendle</authors>
77
<owners>Mark Rendle</owners>
88
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>

0 commit comments

Comments
 (0)