Files
Dapper/Dapper.Tests/TransactionTests.cs
T
Nick Craver bdebedea41 Tests: xUnit cleanup
This change:
- Removes the Assert shim
- Uses recommended xUnit methods (improving fail errors)
- Cleans up exception tests
- General test formatting fixes
- Removes the netcoerapp1.0 only testing (oops commit)
2017-08-20 23:00:08 -04:00

81 lines
2.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xunit;
namespace Dapper.Tests
{
public class TransactionTests : TestBase
{
[Fact]
public void TestTransactionCommit()
{
try
{
connection.Execute("create table #TransactionTest ([ID] int, [Value] varchar(32));");
using (var transaction = connection.BeginTransaction())
{
connection.Execute("insert into #TransactionTest ([ID], [Value]) values (1, 'ABC');", transaction: transaction);
transaction.Commit();
}
Assert.Equal(1, connection.Query<int>("select count(*) from #TransactionTest;").Single());
}
finally
{
connection.Execute("drop table #TransactionTest;");
}
}
[Fact]
public void TestTransactionRollback()
{
connection.Execute("create table #TransactionTest ([ID] int, [Value] varchar(32));");
try
{
using (var transaction = connection.BeginTransaction())
{
connection.Execute("insert into #TransactionTest ([ID], [Value]) values (1, 'ABC');", transaction: transaction);
transaction.Rollback();
}
Assert.Equal(0, connection.Query<int>("select count(*) from #TransactionTest;").Single());
}
finally
{
connection.Execute("drop table #TransactionTest;");
}
}
[Fact]
public void TestCommandWithInheritedTransaction()
{
connection.Execute("create table #TransactionTest ([ID] int, [Value] varchar(32));");
try
{
using (var transaction = connection.BeginTransaction())
{
var transactedConnection = new TransactedConnection(connection, transaction);
transactedConnection.Execute("insert into #TransactionTest ([ID], [Value]) values (1, 'ABC');");
transaction.Rollback();
}
Assert.Equal(0, connection.Query<int>("select count(*) from #TransactionTest;").Single());
}
finally
{
connection.Execute("drop table #TransactionTest;");
}
}
}
}