public void Should_pass_and_read_various_datatypes_as_expected()
{
var actual = _target.Query("SELECT * FROM Tbl WHERE IntValue = @IntValue AND StringValue = @StringValue AND DateValue = @DateValue AND GuidValue = @GuidValue", new {
IntValue = 1, StringValue = "string 1", DateValue = new DateTime(2012, 6, 9, 18, 33, 0), GuidValue = new Guid("A71C8E84-B1A1-4CED-81B7-F551704A33E7")
}).Select(r => new {
IntValue = r["IntValue"], StringValue = r["StringValue"], DateValue = r["DateValue"], GuidValue = r["GuidValue"]
}).Single();
actual.IntValue.Should().Be.OfType<int>().And.Be.EqualTo(1);
actual.StringValue.Should().Be.OfType<string>().And.Be.EqualTo("string 1");
actual.DateValue.Should().Be.OfType<DateTime>().And.Be.EqualTo(new DateTime(2012, 6, 9, 18, 33, 0));
actual.GuidValue.Should().Be.OfType<Guid>().And.Be.EqualTo(new Guid("A71C8E84-B1A1-4CED-81B7-F551704A33E7"));
}