using Strata.SqlTools.SqlBreakdown.Classes; namespace Strata.SqlTools.SqlBreakdown.Tests.SqlBreakdownCollectionTests; /// /// Unit tests for SqlBreakdownCollection with transaction statements. /// [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")); } }