Add typed insert/update/delete builders and typed join variants
This commit is contained in:
@@ -47,6 +47,21 @@ namespace DynamORM.Tests.Modify
|
||||
cmd.CommandText());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTypedUpdateBuilderSetAndWhere()
|
||||
{
|
||||
var cmd = Database.Update<Users>()
|
||||
.Set(u => u.Code, "778")
|
||||
.Where(u => u.Id == 1 && u.Code == "1");
|
||||
|
||||
Assert.AreEqual(
|
||||
string.Format("UPDATE \"sample_users\" SET \"code\" = [${0}] WHERE (\"id\" = [${1}]) AND (\"code\" = [${2}])",
|
||||
cmd.Parameters.Keys.ElementAt(0),
|
||||
cmd.Parameters.Keys.ElementAt(1),
|
||||
cmd.Parameters.Keys.ElementAt(2)),
|
||||
cmd.CommandText());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTypedDeleteWhere()
|
||||
{
|
||||
@@ -58,6 +73,17 @@ namespace DynamORM.Tests.Modify
|
||||
cmd.CommandText());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTypedDeleteBuilderWhere()
|
||||
{
|
||||
var cmd = Database.Delete<Users>()
|
||||
.Where(u => u.Id == 3);
|
||||
|
||||
Assert.AreEqual(
|
||||
string.Format("DELETE FROM \"sample_users\" WHERE (\"id\" = [${0}])", cmd.Parameters.Keys.First()),
|
||||
cmd.CommandText());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTypedInsertColumns()
|
||||
{
|
||||
@@ -71,5 +97,19 @@ namespace DynamORM.Tests.Modify
|
||||
cmd.Parameters.Keys.ElementAt(1)),
|
||||
cmd.CommandText());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTypedInsertBuilderColumns()
|
||||
{
|
||||
var cmd = Database.Insert<Users>()
|
||||
.Insert(u => u.Code, "901")
|
||||
.Insert(u => u.First, "TypedB");
|
||||
|
||||
Assert.AreEqual(
|
||||
string.Format("INSERT INTO \"sample_users\" (\"code\", \"first\") VALUES ([${0}], [${1}])",
|
||||
cmd.Parameters.Keys.ElementAt(0),
|
||||
cmd.Parameters.Keys.ElementAt(1)),
|
||||
cmd.CommandText());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,11 +100,44 @@ namespace DynamORM.Tests.Select
|
||||
public void TestTypedJoin()
|
||||
{
|
||||
var cmd = Database.From<TypedFluentUser>("u")
|
||||
.JoinTyped<TypedFluentUser, TypedFluentUser>("x", (l, r) => l.Id == r.Id)
|
||||
.Join<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
|
||||
.SelectTyped(u => u.Id);
|
||||
|
||||
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u INNER JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
|
||||
cmd.CommandText());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTypedLeftJoin()
|
||||
{
|
||||
var cmd = Database.From<TypedFluentUser>("u")
|
||||
.LeftJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
|
||||
.SelectTyped(u => u.Id);
|
||||
|
||||
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u LEFT JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
|
||||
cmd.CommandText());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTypedRightJoin()
|
||||
{
|
||||
var cmd = Database.From<TypedFluentUser>("u")
|
||||
.RightJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
|
||||
.SelectTyped(u => u.Id);
|
||||
|
||||
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u RIGHT JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
|
||||
cmd.CommandText());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTypedFullJoin()
|
||||
{
|
||||
var cmd = Database.From<TypedFluentUser>("u")
|
||||
.FullJoin<TypedFluentUser>((l, r) => l.Id == r.Id, "x")
|
||||
.SelectTyped(u => u.Id);
|
||||
|
||||
Assert.AreEqual("SELECT u.\"id_user\" FROM \"sample_users\" AS u FULL JOIN \"sample_users\" AS x ON (u.\"id_user\" = x.\"id_user\")",
|
||||
cmd.CommandText());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user