Add typed modify and join fluent extensions
This commit is contained in:
75
DynamORM.Tests/Modify/TypedModifyExtensionsTests.cs
Normal file
75
DynamORM.Tests/Modify/TypedModifyExtensionsTests.cs
Normal file
@@ -0,0 +1,75 @@
|
||||
/*
|
||||
* DynamORM - Dynamic Object-Relational Mapping library.
|
||||
* Copyright (c) 2012-2026, Grzegorz Russek (grzegorz.russek@gmail.com)
|
||||
* All rights reserved.
|
||||
*/
|
||||
|
||||
using System.Linq;
|
||||
using DynamORM.Builders;
|
||||
using DynamORM.Tests.Helpers;
|
||||
using NUnit.Framework;
|
||||
|
||||
namespace DynamORM.Tests.Modify
|
||||
{
|
||||
[TestFixture]
|
||||
public class TypedModifyExtensionsTests : TestsBase
|
||||
{
|
||||
[SetUp]
|
||||
public void SetUp()
|
||||
{
|
||||
CreateTestDatabase();
|
||||
CreateDynamicDatabase(
|
||||
DynamicDatabaseOptions.SingleConnection |
|
||||
DynamicDatabaseOptions.SingleTransaction |
|
||||
DynamicDatabaseOptions.SupportLimitOffset |
|
||||
DynamicDatabaseOptions.SupportSchema);
|
||||
}
|
||||
|
||||
[TearDown]
|
||||
public void TearDown()
|
||||
{
|
||||
DestroyDynamicDatabase();
|
||||
DestroyTestDatabase();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTypedUpdateSetAndWhere()
|
||||
{
|
||||
var cmd = Database.Update<Users>()
|
||||
.SetTyped<Users, string>(u => u.Code, "777")
|
||||
.WhereTyped<Users>(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()
|
||||
{
|
||||
var cmd = Database.Delete<Users>()
|
||||
.WhereTyped<Users>(u => u.Id == 2);
|
||||
|
||||
Assert.AreEqual(
|
||||
string.Format("DELETE FROM \"sample_users\" WHERE (\"id\" = [${0}])", cmd.Parameters.Keys.First()),
|
||||
cmd.CommandText());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestTypedInsertColumns()
|
||||
{
|
||||
var cmd = Database.Insert<Users>()
|
||||
.InsertTyped<Users, string>(u => u.Code, "900")
|
||||
.InsertTyped<Users, string>(u => u.First, "Typed");
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user