Skip to content

Commit 72142d9

Browse files
committed
add rollback test
1 parent fa9f365 commit 72142d9

16 files changed

Lines changed: 225 additions & 0 deletions

end2end/EndToEndScaffold/Config.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public enum KnownTestType
3131
SqliteDataTypesOverride,
3232
SqliteCopyFrom,
3333
SqliteTransaction,
34+
SqliteTransactionRollback,
3435

3536
// Postgres
3637
PostgresStringDataTypes,
@@ -42,6 +43,7 @@ public enum KnownTestType
4243

4344
PostgresStringCopyFrom,
4445
PostgresTransaction,
46+
PostgresTransactionRollback,
4547
PostgresIntegerCopyFrom,
4648
PostgresFloatingPointCopyFrom,
4749
PostgresDateTimeCopyFrom,
@@ -55,6 +57,7 @@ public enum KnownTestType
5557
MySqlStringDataTypes,
5658
MySqlIntegerDataTypes,
5759
MySqlTransaction,
60+
MySqlTransactionRollback,
5861
MySqlFloatingPointDataTypes,
5962
MySqlDateTimeDataTypes,
6063
MySqlBinaryDataTypes,
@@ -96,6 +99,7 @@ internal static class Config
9699
KnownTestType.MySqlStringDataTypes,
97100
KnownTestType.MySqlIntegerDataTypes,
98101
KnownTestType.MySqlTransaction,
102+
KnownTestType.MySqlTransactionRollback,
99103
KnownTestType.MySqlFloatingPointDataTypes,
100104
KnownTestType.MySqlDateTimeDataTypes,
101105
KnownTestType.MySqlBinaryDataTypes,
@@ -133,6 +137,7 @@ internal static class Config
133137
KnownTestType.MySqlStringDataTypes,
134138
KnownTestType.MySqlIntegerDataTypes,
135139
KnownTestType.MySqlTransaction,
140+
KnownTestType.MySqlTransactionRollback,
136141
KnownTestType.MySqlFloatingPointDataTypes,
137142
KnownTestType.MySqlDateTimeDataTypes,
138143
KnownTestType.MySqlBinaryDataTypes,
@@ -168,6 +173,7 @@ internal static class Config
168173
KnownTestType.NargNotNull,
169174

170175
KnownTestType.PostgresTransaction,
176+
KnownTestType.PostgresTransactionRollback,
171177
KnownTestType.PostgresStringDataTypes,
172178
KnownTestType.PostgresIntegerDataTypes,
173179
KnownTestType.PostgresFloatingPointDataTypes,
@@ -202,6 +208,7 @@ internal static class Config
202208
KnownTestType.NargNull,
203209
KnownTestType.NargNotNull,
204210
KnownTestType.PostgresTransaction,
211+
KnownTestType.PostgresTransactionRollback,
205212

206213
KnownTestType.PostgresStringDataTypes,
207214
KnownTestType.PostgresIntegerDataTypes,
@@ -237,6 +244,7 @@ internal static class Config
237244
KnownTestType.NargNull,
238245
KnownTestType.NargNotNull,
239246
KnownTestType.SqliteTransaction,
247+
KnownTestType.SqliteTransactionRollback,
240248
KnownTestType.SqliteDataTypes,
241249
KnownTestType.SqliteCopyFrom,
242250
KnownTestType.SqliteDataTypesOverride
@@ -261,6 +269,7 @@ internal static class Config
261269
KnownTestType.NargNull,
262270
KnownTestType.NargNotNull,
263271
KnownTestType.SqliteTransaction,
272+
KnownTestType.SqliteTransactionRollback,
264273
KnownTestType.SqliteDataTypes,
265274
KnownTestType.SqliteCopyFrom,
266275
KnownTestType.SqliteDataTypesOverride

end2end/EndToEndScaffold/Templates/MySqlTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,26 @@ public async Task TestMySqlTransaction()
552552
}
553553
"""
554554
},
555+
[KnownTestType.MySqlTransactionRollback] = new TestImpl
556+
{
557+
Impl = $$"""
558+
[Test]
559+
public async Task TestMySqlTransactionRollback()
560+
{
561+
var connection = new MySqlConnector.MySqlConnection(Environment.GetEnvironmentVariable(EndToEndCommon.MySqlConnectionStringEnv));
562+
await connection.OpenAsync();
563+
var transaction = connection.BeginTransaction();
564+
565+
var sqlQueryWithTx = QuerySql.WithTransaction(transaction);
566+
await sqlQueryWithTx.CreateAuthor(new QuerySql.CreateAuthorArgs { Id = 1111, Name = "Bojack Horseman", Bio = "Back in the 90s he was in a very famous TV show" });
567+
568+
await transaction.RollbackAsync();
569+
570+
var actual = await this.QuerySql.GetAuthor(new QuerySql.GetAuthorArgs { Name = "Bojack Horseman" });
571+
Assert.That(actual == null, "author should not exist after rollback");
572+
}
573+
"""
574+
},
555575
[KnownTestType.MySqlEnumCopyFrom] = new TestImpl
556576
{
557577
Impl = $$"""

end2end/EndToEndScaffold/Templates/PostgresTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,26 @@ public async Task TestPostgresTransaction()
514514
}
515515
"""
516516
},
517+
[KnownTestType.PostgresTransactionRollback] = new TestImpl
518+
{
519+
Impl = $$"""
520+
[Test]
521+
public async Task TestPostgresTransactionRollback()
522+
{
523+
var connection = new Npgsql.NpgsqlConnection(Environment.GetEnvironmentVariable(EndToEndCommon.PostgresConnectionStringEnv));
524+
await connection.OpenAsync();
525+
var transaction = connection.BeginTransaction();
526+
527+
var sqlQueryWithTx = QuerySql.WithTransaction(transaction);
528+
await sqlQueryWithTx.CreateAuthor(new QuerySql.CreateAuthorArgs { Id = 1111, Name = "Bojack Horseman", Bio = "Back in the 90s he was in a very famous TV show" });
529+
530+
await transaction.RollbackAsync();
531+
532+
var actual = await this.QuerySql.GetAuthor(new QuerySql.GetAuthorArgs { Name = "Bojack Horseman" });
533+
Assert.That(actual == null, "author should not exist after rollback");
534+
}
535+
"""
536+
},
517537
[KnownTestType.PostgresDataTypesOverride] = new TestImpl
518538
{
519539
Impl = $$"""

end2end/EndToEndScaffold/Templates/SqliteTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,26 @@ public async Task TestSqliteTransaction()
119119
}
120120
"""
121121
},
122+
[KnownTestType.SqliteTransactionRollback] = new TestImpl
123+
{
124+
Impl = $$"""
125+
[Test]
126+
public async Task TestSqliteTransactionRollback()
127+
{
128+
var connection = new Microsoft.Data.Sqlite.SqliteConnection(Environment.GetEnvironmentVariable(EndToEndCommon.SqliteConnectionStringEnv));
129+
await connection.OpenAsync();
130+
var transaction = connection.BeginTransaction();
131+
132+
var sqlQueryWithTx = QuerySql.WithTransaction(transaction);
133+
await sqlQueryWithTx.CreateAuthor(new QuerySql.CreateAuthorArgs { Id = 1111, Name = "Bojack Horseman", Bio = "Back in the 90s he was in a very famous TV show" });
134+
135+
transaction.Rollback();
136+
137+
var actual = await this.QuerySql.GetAuthor(new QuerySql.GetAuthorArgs { Name = "Bojack Horseman" });
138+
Assert.That(actual == null, "author should not exist after rollback");
139+
}
140+
"""
141+
},
122142
[KnownTestType.SqliteDataTypesOverride] = new TestImpl
123143
{
124144
Impl = $$"""

end2end/EndToEndTests/MySqlConnectorDapperTester.generated.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,19 @@ public async Task TestMySqlTransaction()
382382
Assert.That(SingularEquals(expected, actual)); // Apply placeholder here
383383
}
384384

385+
[Test]
386+
public async Task TestMySqlTransactionRollback()
387+
{
388+
var connection = new MySqlConnector.MySqlConnection(Environment.GetEnvironmentVariable(EndToEndCommon.MySqlConnectionStringEnv));
389+
await connection.OpenAsync();
390+
var transaction = connection.BeginTransaction();
391+
var sqlQueryWithTx = QuerySql.WithTransaction(transaction);
392+
await sqlQueryWithTx.CreateAuthor(new QuerySql.CreateAuthorArgs { Id = 1111, Name = "Bojack Horseman", Bio = "Back in the 90s he was in a very famous TV show" });
393+
await transaction.RollbackAsync();
394+
var actual = await this.QuerySql.GetAuthor(new QuerySql.GetAuthorArgs { Name = "Bojack Horseman" });
395+
Assert.That(actual == null, "author should not exist after rollback");
396+
}
397+
385398
[Test]
386399
[TestCase(3.4f, -31.555666, 11.098643, 34.4424, 423.2445, 998.9994542, 21.214312452534)]
387400
[TestCase(null, null, null, null, null, null, null)]

end2end/EndToEndTests/MySqlConnectorTester.generated.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,19 @@ public async Task TestMySqlTransaction()
382382
Assert.That(SingularEquals(expected, actual.Value)); // Apply placeholder here
383383
}
384384

385+
[Test]
386+
public async Task TestMySqlTransactionRollback()
387+
{
388+
var connection = new MySqlConnector.MySqlConnection(Environment.GetEnvironmentVariable(EndToEndCommon.MySqlConnectionStringEnv));
389+
await connection.OpenAsync();
390+
var transaction = connection.BeginTransaction();
391+
var sqlQueryWithTx = QuerySql.WithTransaction(transaction);
392+
await sqlQueryWithTx.CreateAuthor(new QuerySql.CreateAuthorArgs { Id = 1111, Name = "Bojack Horseman", Bio = "Back in the 90s he was in a very famous TV show" });
393+
await transaction.RollbackAsync();
394+
var actual = await this.QuerySql.GetAuthor(new QuerySql.GetAuthorArgs { Name = "Bojack Horseman" });
395+
Assert.That(actual == null, "author should not exist after rollback");
396+
}
397+
385398
[Test]
386399
[TestCase(3.4f, -31.555666, 11.098643, 34.4424, 423.2445, 998.9994542, 21.214312452534)]
387400
[TestCase(null, null, null, null, null, null, null)]

end2end/EndToEndTests/NpgsqlDapperTester.generated.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,19 @@ public async Task TestPostgresTransaction()
457457
Assert.That(SingularEquals(expected, actual)); // Apply placeholder here
458458
}
459459

460+
[Test]
461+
public async Task TestPostgresTransactionRollback()
462+
{
463+
var connection = new Npgsql.NpgsqlConnection(Environment.GetEnvironmentVariable(EndToEndCommon.PostgresConnectionStringEnv));
464+
await connection.OpenAsync();
465+
var transaction = connection.BeginTransaction();
466+
var sqlQueryWithTx = QuerySql.WithTransaction(transaction);
467+
await sqlQueryWithTx.CreateAuthor(new QuerySql.CreateAuthorArgs { Id = 1111, Name = "Bojack Horseman", Bio = "Back in the 90s he was in a very famous TV show" });
468+
await transaction.RollbackAsync();
469+
var actual = await this.QuerySql.GetAuthor(new QuerySql.GetAuthorArgs { Name = "Bojack Horseman" });
470+
Assert.That(actual == null, "author should not exist after rollback");
471+
}
472+
460473
[Test]
461474
[TestCase(100, true, 3, 453, -1445214231L)]
462475
[TestCase(10, null, null, null, null)]

end2end/EndToEndTests/NpgsqlTester.generated.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,19 @@ public async Task TestPostgresTransaction()
457457
Assert.That(SingularEquals(expected, actual.Value)); // Apply placeholder here
458458
}
459459

460+
[Test]
461+
public async Task TestPostgresTransactionRollback()
462+
{
463+
var connection = new Npgsql.NpgsqlConnection(Environment.GetEnvironmentVariable(EndToEndCommon.PostgresConnectionStringEnv));
464+
await connection.OpenAsync();
465+
var transaction = connection.BeginTransaction();
466+
var sqlQueryWithTx = QuerySql.WithTransaction(transaction);
467+
await sqlQueryWithTx.CreateAuthor(new QuerySql.CreateAuthorArgs { Id = 1111, Name = "Bojack Horseman", Bio = "Back in the 90s he was in a very famous TV show" });
468+
await transaction.RollbackAsync();
469+
var actual = await this.QuerySql.GetAuthor(new QuerySql.GetAuthorArgs { Name = "Bojack Horseman" });
470+
Assert.That(actual == null, "author should not exist after rollback");
471+
}
472+
460473
[Test]
461474
[TestCase(100, true, 3, 453, -1445214231L)]
462475
[TestCase(10, null, null, null, null)]

end2end/EndToEndTests/SqliteDapperTester.generated.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,5 +402,18 @@ public async Task TestSqliteTransaction()
402402
var actual = await this.QuerySql.GetAuthor(new QuerySql.GetAuthorArgs { Name = "Bojack Horseman" });
403403
Assert.That(SingularEquals(expected, actual)); // Apply placeholder here
404404
}
405+
406+
[Test]
407+
public async Task TestSqliteTransactionRollback()
408+
{
409+
var connection = new Microsoft.Data.Sqlite.SqliteConnection(Environment.GetEnvironmentVariable(EndToEndCommon.SqliteConnectionStringEnv));
410+
await connection.OpenAsync();
411+
var transaction = connection.BeginTransaction();
412+
var sqlQueryWithTx = QuerySql.WithTransaction(transaction);
413+
await sqlQueryWithTx.CreateAuthor(new QuerySql.CreateAuthorArgs { Id = 1111, Name = "Bojack Horseman", Bio = "Back in the 90s he was in a very famous TV show" });
414+
transaction.Rollback();
415+
var actual = await this.QuerySql.GetAuthor(new QuerySql.GetAuthorArgs { Name = "Bojack Horseman" });
416+
Assert.That(actual == null, "author should not exist after rollback");
417+
}
405418
}
406419
}

end2end/EndToEndTests/SqliteTester.generated.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -402,5 +402,18 @@ public async Task TestSqliteTransaction()
402402
var actual = await this.QuerySql.GetAuthor(new QuerySql.GetAuthorArgs { Name = "Bojack Horseman" });
403403
Assert.That(SingularEquals(expected, actual.Value)); // Apply placeholder here
404404
}
405+
406+
[Test]
407+
public async Task TestSqliteTransactionRollback()
408+
{
409+
var connection = new Microsoft.Data.Sqlite.SqliteConnection(Environment.GetEnvironmentVariable(EndToEndCommon.SqliteConnectionStringEnv));
410+
await connection.OpenAsync();
411+
var transaction = connection.BeginTransaction();
412+
var sqlQueryWithTx = QuerySql.WithTransaction(transaction);
413+
await sqlQueryWithTx.CreateAuthor(new QuerySql.CreateAuthorArgs { Id = 1111, Name = "Bojack Horseman", Bio = "Back in the 90s he was in a very famous TV show" });
414+
transaction.Rollback();
415+
var actual = await this.QuerySql.GetAuthor(new QuerySql.GetAuthorArgs { Name = "Bojack Horseman" });
416+
Assert.That(actual == null, "author should not exist after rollback");
417+
}
405418
}
406419
}

0 commit comments

Comments
 (0)