Commit 1797a3c0 authored by Marc Gravell's avatar Marc Gravell

Initial test setup for #461; note that this does not repro, due to running on...

Initial test setup for #461; note that this does not repro, due to running on SQL-Server - needs to be changed to SQLite to repro
parent 95d587f2
...@@ -135,6 +135,76 @@ public void TestNoDefaultConstructorBinary() ...@@ -135,6 +135,76 @@ public void TestNoDefaultConstructorBinary()
} }
#endif #endif
[Fact]
public void Issue461_TypeHandlerWorksInConstructor()
{
// SqlMapper.AddTypeHandler(new Issue461_DateTimeOffsetHandler());
connection.Execute(@"CREATE TABLE #Issue461 (
Id VARCHAR(50),
SomeValue VARCHAR(50),
SomeDateValue DATETIMEOFFSET
)");
var when = new DateTimeOffset(2016, 02, 15, 16, 0, 0, TimeSpan.FromHours(2));
connection.Execute(
"INSERT INTO #Issue461 (Id, SomeValue, SomeDateValue) VALUES (@Id, @SomeValue, @SomeDateValue)",
new
{
Id = "id",
SomeValue = "what up?",
SomeDateValue = when
});
var parameterlessWorks = connection.QuerySingle<Issue461_ParameterlessTypeConstructor>("SELECT * FROM #Issue461");
parameterlessWorks.Id.IsEqualTo("id");
parameterlessWorks.SomeValue.IsEqualTo("what up?");
parameterlessWorks.SomeDateValue.IsEqualTo(when);
//throws about not being able to find constructor (It expects the DateTime field to be a string still)
var parameterDoesNot = connection.QuerySingle<Issue461_ParameterisedTypeConstructor>("SELECT * FROM #Issue461");
parameterDoesNot.Id.IsEqualTo("id");
parameterDoesNot.SomeValue.IsEqualTo("what up?");
parameterDoesNot.SomeDateValue.IsEqualTo(when);
}
//class Issue461_DateTimeOffsetHandler : SqlMapper.TypeHandler<DateTimeOffset>
//{
// public override void SetValue(IDbDataParameter parameter, DateTimeOffset value)
// {
// parameter.Value = value.ToString();
// }
// public override DateTimeOffset Parse(object value)
// {
// return DateTimeOffset.Parse(value.ToString());
// }
//}
class Issue461_ParameterlessTypeConstructor
{
public string Id { get; set; }
public string SomeValue { get; set; }
public DateTimeOffset SomeDateValue { get; set; }
}
class Issue461_ParameterisedTypeConstructor
{
public Issue461_ParameterisedTypeConstructor(string id, string someValue, DateTimeOffset someDateValue)
{
Id = id;
SomeValue = someValue;
SomeDateValue = someDateValue;
}
public string Id { get; }
public string SomeValue { get; }
public DateTimeOffset SomeDateValue { get; }
}
public class AbstractInheritance public class AbstractInheritance
{ {
public abstract class Order public abstract class Order
......
...@@ -36,7 +36,8 @@ ...@@ -36,7 +36,8 @@
"MASSIVE", "MASSIVE",
"ORMLITE", "ORMLITE",
"SOMA", "SOMA",
"SIMPLEDATA" "SIMPLEDATA",
"SQLITE"
] ]
}, },
"frameworkAssemblies": { "frameworkAssemblies": {
...@@ -61,7 +62,8 @@ ...@@ -61,7 +62,8 @@
"Simple.Data.SqlServer": "1.0.0-rc3", "Simple.Data.SqlServer": "1.0.0-rc3",
"Soma": "1.8.0.7", "Soma": "1.8.0.7",
"Microsoft.SqlServer.Compact": "4.0.8876.1", "Microsoft.SqlServer.Compact": "4.0.8876.1",
"xunit": "1.9.2" "xunit": "1.9.2",
"System.Data.SQLite": "1.0.99"
} }
}, },
"net45": { "net45": {
...@@ -79,7 +81,8 @@ ...@@ -79,7 +81,8 @@
"ORMLITE", "ORMLITE",
"SOMA", "SOMA",
"SIMPLEDATA", "SIMPLEDATA",
"XUNIT2" "XUNIT2",
"SQLITE"
] ]
}, },
"frameworkAssemblies": { "frameworkAssemblies": {
...@@ -108,7 +111,8 @@ ...@@ -108,7 +111,8 @@
"Susanoo.Core": "1.2.4", "Susanoo.Core": "1.2.4",
"Susanoo.SqlServer": "1.2.4", "Susanoo.SqlServer": "1.2.4",
"Microsoft.SqlServer.Compact": "4.0.8876.1", "Microsoft.SqlServer.Compact": "4.0.8876.1",
"xunit": "2.1.0" "xunit": "2.1.0",
"System.Data.SQLite": "1.0.99"
} }
}, },
"dotnet5.4": { "dotnet5.4": {
......
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