public void StoredProcedure_WithSqlTransactionCommitted_DoesWriteRecords() { // ARRANGE const int expectedIntermediateCount = 5; int originalCount; int intermediateCount; int finalCount; string connectionName = Settings.Default.ExampleDatabaseConnection; var companiesToAdd = new List<CompaniesAdd.CompanyTableType> { new CompaniesAdd.CompanyTableType { CompanyName = "Company 1", IsActive = true, TenantId = 2 }, new CompaniesAdd.CompanyTableType { CompanyName = "Company 2", IsActive = false, TenantId = 2 }, new CompaniesAdd.CompanyTableType { CompanyName = "Company 3", IsActive = true, TenantId = 2 } }; var companiesAddParameters = new CompaniesAdd.CompaniesAddParameters { Companies = companiesToAdd }; var companyAddProcedure = new CompaniesAdd(companiesAddParameters); var companyCountProcedure = new CompanyCountAll(); var companyDeleteParameters = new TenantIdParameters { TenantId = 2 }; var companyDeleteProcedure = new CompanyDeleteForTenantId(companyDeleteParameters); // ACT using (var connection = new SqlConnection(connectionName)) { connection.Open(); using (var transaction = connection.BeginTransaction()) { using (var context = new ApplicationDbContext(connection, false)) { originalCount = context.ExecuteStoredProcedure(companyCountProcedure, transaction: transaction).First().CountOfCompanies; context.ExecuteStoredProcedure(companyAddProcedure, transaction: transaction); transaction.Commit(); } } } using (var context = new ApplicationDbContext(connectionName)) { intermediateCount = context.ExecuteStoredProcedure(companyCountProcedure).First().CountOfCompanies; context.ExecuteStoredProcedure(companyDeleteProcedure); finalCount = context.ExecuteStoredProcedure(companyCountProcedure).First().CountOfCompanies; } // ASSERT Assert.AreEqual(originalCount, finalCount); Assert.AreEqual(expectedIntermediateCount, intermediateCount); }
public void CompanyGetAllForTenantId() { // ARRANGE var parameters = new TenantIdParameters { TenantId = 1 }; var procedure = new CompanyDeleteForTenantId(parameters); // ACT Context.ExecuteStoredProcedure(procedure); // ASSERT // Nothing to assert }
public void StoredProcedure_WithTransactionScopeCompleted_DoesWriteRecords() { // ARRANGE const int expectedIntermediateCount = 5; int originalCount; int intermediateCount; int finalCount; string connectionString = Settings.Default.ExampleDatabaseConnection; var companiesToAdd = new List<CompaniesAdd.CompanyTableType> { new CompaniesAdd.CompanyTableType { CompanyName = "Company 1", IsActive = true, TenantId = 2 }, new CompaniesAdd.CompanyTableType { CompanyName = "Company 2", IsActive = false, TenantId = 2 }, new CompaniesAdd.CompanyTableType { CompanyName = "Company 3", IsActive = true, TenantId = 2 } }; var companiesAddParameters = new CompaniesAdd.CompaniesAddParameters { Companies = companiesToAdd }; var companyAddProcedure = new CompaniesAdd(companiesAddParameters); var companyCountProcedure = new CompanyCountAll(); var companyDeleteParameters = new TenantIdParameters { TenantId = 2 }; var companyDeleteProcedure = new CompanyDeleteForTenantId(companyDeleteParameters); // ACT using (var transactionScope = new TransactionScope(TransactionScopeOption.RequiresNew)) { using (var connection = new SqlConnection(connectionString)) { connection.Open(); originalCount = connection.ExecuteStoredProcedure(companyCountProcedure).First().CountOfCompanies; connection.ExecuteStoredProcedure(companyAddProcedure); transactionScope.Complete(); } } using (var connection = new SqlConnection(connectionString)) { connection.Open(); intermediateCount = connection.ExecuteStoredProcedure(companyCountProcedure).First().CountOfCompanies; connection.ExecuteStoredProcedure(companyDeleteProcedure); finalCount = connection.ExecuteStoredProcedure(companyCountProcedure).First().CountOfCompanies; connection.Close(); } // ASSERT Assert.AreEqual(originalCount, finalCount); Assert.AreEqual(expectedIntermediateCount, intermediateCount); }