/* * 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 TestTypedUpdateBuilderSetAndWhere() { var cmd = Database.Update() .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.Delete() .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.Insert() .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()); } } }