Files
sql-utilities/tests/Strata.SqlTools.SqlBreakdown.Tests/SqlBreakdownCollectionTests/SqlBreakdownCollectionTransactionTests.cs
T
Thom Lamb 8b0368e810
SonarQube Analysis / sonarqube (push) Failing after 3m21s
test: fix SqlBreakdown tests project
2026-05-15 13:39:14 -05:00

38 lines
1.4 KiB
C#

using Strata.SqlTools.SqlBreakdown.Classes;
namespace Strata.SqlTools.SqlBreakdown.Tests.SqlBreakdownCollectionTests;
/// <summary>
/// Unit tests for SqlBreakdownCollection with transaction statements.
/// </summary>
[TestFixture]
public class SqlBreakdownCollectionTransactionTests : SqlBreakdownCollectionTestBase
{
[Test]
public void ParseBatch_WithTransactionStatements_ParsesSuccessfully()
{
// Arrange
var collection = new SqlBreakdownCollection();
var batchSql = @"
BEGIN TRANSACTION UpdatePrices
UPDATE Products SET Price = Price * 1.1 WHERE Category = 'Electronics'
UPDATE ProductPriceHistory SET NewPrice = Price FROM Products WHERE Products.Id = ProductPriceHistory.ProductId
COMMIT TRANSACTION UpdatePrices
GO
BEGIN TRANSACTION DeleteOldOrders
DELETE FROM OrderItems WHERE OrderId IN (SELECT OrderId FROM Orders WHERE OrderDate < '2018-01-01')
DELETE FROM Orders WHERE OrderDate < '2018-01-01'
COMMIT TRANSACTION DeleteOldOrders
";
// Act
collection.ParseBatch(batchSql);
// Assert
Assert.That(collection.Count, Is.GreaterThanOrEqualTo(1));
var statement = collection.GetRawStatementAt(0);
Assert.That(statement, Does.Contain("BEGIN TRANSACTION"));
Assert.That(statement, Does.Contain("COMMIT"));
}
}