74 lines
2.3 KiB
C#
74 lines
2.3 KiB
C#
/*
|
|
* DynamORM - Dynamic Object-Relational Mapping library.
|
|
* Copyright (c) 2012-2026, Grzegorz Russek (grzegorz.russek@gmail.com)
|
|
* All rights reserved.
|
|
*/
|
|
|
|
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 TestTypedUpdateBuilderSetAndWhere()
|
|
{
|
|
var cmd = Database.UpdateTyped<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 TestTypedDeleteBuilderWhere()
|
|
{
|
|
var cmd = Database.DeleteTyped<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 TestTypedInsertBuilderColumns()
|
|
{
|
|
var cmd = Database.InsertTyped<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());
|
|
}
|
|
}
|
|
}
|