From ee27264a7242d2c0da8dbd8b3b645bda9d6a629a Mon Sep 17 00:00:00 2001 From: Shannon Date: Wed, 6 Jul 2016 09:37:52 +0200 Subject: [PATCH] Ensures all instances of SqlCeEngine are in a using claus so native objects are disposed properly --- src/SQLCE4Umbraco/SqlCEHelper.cs | 13 ++++--------- .../Migrations/Upgrades/SqlCeUpgradeTest.cs | 6 ++++-- .../Migrations/Upgrades/ValidateOlderSchemaTest.cs | 6 ++++-- .../Persistence/DatabaseContextTests.cs | 9 ++++++--- .../Persistence/SqlCeTableByTableTest.cs | 6 ++++-- .../TestHelpers/BaseDatabaseFactoryTest.cs | 6 ++++-- src/Umbraco.Tests/TestHelpers/BaseSeleniumTest.cs | 8 +++++--- 7 files changed, 31 insertions(+), 23 deletions(-) diff --git a/src/SQLCE4Umbraco/SqlCEHelper.cs b/src/SQLCE4Umbraco/SqlCEHelper.cs index 26a781360e..ab6f686c21 100644 --- a/src/SQLCE4Umbraco/SqlCEHelper.cs +++ b/src/SQLCE4Umbraco/SqlCEHelper.cs @@ -40,15 +40,10 @@ namespace SqlCE4Umbraco var localConnection = new SqlCeConnection(ConnectionString); if (!System.IO.File.Exists(ReplaceDataDirectory(localConnection.Database))) { - var sqlCeEngine = new SqlCeEngine(ConnectionString); - sqlCeEngine.CreateDatabase(); - - // SD: Pretty sure this should be in a using clause but i don't want to cause unknown side-effects here - // since it's been like this for quite some time - //using (var sqlCeEngine = new SqlCeEngine(ConnectionString)) - //{ - // sqlCeEngine.CreateDatabase(); - //} + using (var sqlCeEngine = new SqlCeEngine(ConnectionString)) + { + sqlCeEngine.CreateDatabase(); + } } } diff --git a/src/Umbraco.Tests/Migrations/Upgrades/SqlCeUpgradeTest.cs b/src/Umbraco.Tests/Migrations/Upgrades/SqlCeUpgradeTest.cs index 0f8e0543ad..33a0dd9ee2 100644 --- a/src/Umbraco.Tests/Migrations/Upgrades/SqlCeUpgradeTest.cs +++ b/src/Umbraco.Tests/Migrations/Upgrades/SqlCeUpgradeTest.cs @@ -42,8 +42,10 @@ namespace Umbraco.Tests.Migrations.Upgrades //Create the Sql CE database //Get the connectionstring settings from config var settings = ConfigurationManager.ConnectionStrings[Core.Configuration.GlobalSettings.UmbracoConnectionName]; - var engine = new SqlCeEngine(settings.ConnectionString); - engine.CreateDatabase(); + using (var engine = new SqlCeEngine(settings.ConnectionString)) + { + engine.CreateDatabase(); + } } else { diff --git a/src/Umbraco.Tests/Migrations/Upgrades/ValidateOlderSchemaTest.cs b/src/Umbraco.Tests/Migrations/Upgrades/ValidateOlderSchemaTest.cs index e735e2330c..f22f2413cc 100644 --- a/src/Umbraco.Tests/Migrations/Upgrades/ValidateOlderSchemaTest.cs +++ b/src/Umbraco.Tests/Migrations/Upgrades/ValidateOlderSchemaTest.cs @@ -70,8 +70,10 @@ namespace Umbraco.Tests.Migrations.Upgrades Resolution.Freeze(); //Create the Sql CE database - var engine = new SqlCeEngine(settings.ConnectionString); - engine.CreateDatabase(); + using (var engine = new SqlCeEngine(settings.ConnectionString)) + { + engine.CreateDatabase(); + } SqlSyntaxContext.SqlSyntaxProvider = new SqlCeSyntaxProvider(); } diff --git a/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs b/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs index 5883562f3b..866945857a 100644 --- a/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs +++ b/src/Umbraco.Tests/Persistence/DatabaseContextTests.cs @@ -81,10 +81,13 @@ namespace Umbraco.Tests.Persistence //by default the conn string is: Datasource=|DataDirectory|UmbracoPetaPocoTests.sdf;Flush Interval=1; //we'll just replace the sdf file with our custom one: //Create the Sql CE database - var engine = new SqlCeEngine(settings.ConnectionString.Replace("UmbracoPetaPocoTests", "DatabaseContextTests")); - engine.CreateDatabase(); + var connString = settings.ConnectionString.Replace("UmbracoPetaPocoTests", "DatabaseContextTests"); + using (var engine = new SqlCeEngine(connString)) + { + engine.CreateDatabase(); + } - var dbFactory = new DefaultDatabaseFactory(engine.LocalConnectionString, "System.Data.SqlServerCe.4.0", Mock.Of()); + var dbFactory = new DefaultDatabaseFactory(connString, "System.Data.SqlServerCe.4.0", Mock.Of()); //re-map the dbcontext to the new conn string _dbContext = new DatabaseContext( dbFactory, diff --git a/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs b/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs index d7115461db..07de6faba7 100644 --- a/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs +++ b/src/Umbraco.Tests/Persistence/SqlCeTableByTableTest.cs @@ -40,8 +40,10 @@ namespace Umbraco.Tests.Persistence } //Create the Sql CE database - var engine = new SqlCeEngine("Datasource=|DataDirectory|test.sdf;Flush Interval=1;"); - engine.CreateDatabase(); + using (var engine = new SqlCeEngine("Datasource=|DataDirectory|test.sdf;Flush Interval=1;")) + { + engine.CreateDatabase(); + } _database = new Database("Datasource=|DataDirectory|test.sdf;Flush Interval=1;", "System.Data.SqlServerCe.4.0"); diff --git a/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs b/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs index 996b7e2fff..43bfd6f83d 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseDatabaseFactoryTest.cs @@ -189,8 +189,10 @@ namespace Umbraco.Tests.TestHelpers } else { - var engine = new SqlCeEngine(settings.ConnectionString); - engine.CreateDatabase(); + using (var engine = new SqlCeEngine(settings.ConnectionString)) + { + engine.CreateDatabase(); + } } } diff --git a/src/Umbraco.Tests/TestHelpers/BaseSeleniumTest.cs b/src/Umbraco.Tests/TestHelpers/BaseSeleniumTest.cs index e31f962122..2e06998a6a 100644 --- a/src/Umbraco.Tests/TestHelpers/BaseSeleniumTest.cs +++ b/src/Umbraco.Tests/TestHelpers/BaseSeleniumTest.cs @@ -51,9 +51,11 @@ namespace Umbraco.Tests.TestHelpers var connectionString = string.Format(@"Data Source={0}", databaseDataPath); //Create the Sql CE database - var engine = new SqlCeEngine(connectionString); - if (File.Exists(databaseDataPath) == false) - engine.CreateDatabase(); + using (var engine = new SqlCeEngine(connectionString)) + { + if (File.Exists(databaseDataPath) == false) + engine.CreateDatabase(); + } var syntaxProvider = new SqlCeSyntaxProvider(); SqlSyntaxContext.SqlSyntaxProvider = syntaxProvider;