public void SqlLocalDbProvider_GetInstances_Returns_Installed_Instances() { // Arrange Helpers.EnsureLocalDBInstalled(); SqlLocalDbProvider target = new SqlLocalDbProvider(); // Act IList <ISqlLocalDbInstanceInfo> result = target.GetInstances(); int initialCount = result.Count; // Assert Assert.IsNotNull(result, "GetInstances() returned null."); Assert.IsTrue(result.Count > 0, "No instances were returned by GetInstances()."); CollectionAssert.AllItemsAreNotNull(result.ToList(), "GetInstances() returned a null instance."); string instanceName = Guid.NewGuid().ToString(); target.CreateInstance(instanceName); try { result = target.GetInstances(); // Assert Assert.IsNotNull(result, "GetInstances() returned null."); Assert.AreEqual(initialCount + 1, result.Count, "An incorrect number instances were returned by GetInstances()."); CollectionAssert.AllItemsAreNotNull(result.ToList(), "GetInstances() returned a null instance."); Assert.IsTrue(result.Where((p) => p.Name == instanceName).Any(), "The new instance was not returned in the created set of instances."); } finally { SqlLocalDbApi.DeleteInstance(instanceName); } result = target.GetInstances(); // Assert Assert.IsNotNull(result, "GetInstances() returned null."); Assert.AreEqual(initialCount, result.Count, "An incorrect number instances were returned by GetInstances()."); CollectionAssert.AllItemsAreNotNull(result.ToList(), "GetInstances() returned a null instance."); }
private void CleanupLocalDbDatabase() { SqlLocalDbApi.AutomaticallyDeleteInstanceFiles = true; SqlLocalDbApi.StopOptions=StopInstanceOptions.KillProcess; var localDbProvider = new SqlLocalDbProvider(); var localDbInstanceInfo = localDbProvider.GetInstances().FirstOrDefault(instance => instance.Name==DatabaseName); if (localDbInstanceInfo != null) { var localDbInstance = localDbProvider.GetInstance(DatabaseName); if (!localDbInstance.IsRunning) { localDbInstance.Start(); } this.CleanupMsSqlDatabase(localDbInstance.CreateConnectionStringBuilder().ConnectionString); SqlLocalDbApi.StopInstance(DatabaseName,TimeSpan.FromSeconds(20.0)); SqlLocalDbApi.DeleteInstance(DatabaseName); } }
internal static void Main(string[] args) { PrintBanner(); ISqlLocalDbApi localDB = new SqlLocalDbApiWrapper(); if (!localDB.IsLocalDBInstalled()) { Console.WriteLine(SR.SqlLocalDbApi_NotInstalledFormat, Environment.MachineName); return; } if (args != null && args.Length == 1 && string.Equals(args[0], "/deleteuserinstances", StringComparison.OrdinalIgnoreCase)) { SqlLocalDbApi.DeleteUserInstances(deleteFiles: true); } ISqlLocalDbProvider provider = new SqlLocalDbProvider(); IList<ISqlLocalDbVersionInfo> versions = provider.GetVersions(); Console.WriteLine(Strings.Program_VersionsListHeader); Console.WriteLine(); foreach (ISqlLocalDbVersionInfo version in versions) { Console.WriteLine(version.Name); } Console.WriteLine(); IList<ISqlLocalDbInstanceInfo> instances = provider.GetInstances(); Console.WriteLine(Strings.Program_InstancesListHeader); Console.WriteLine(); foreach (ISqlLocalDbInstanceInfo instanceInfo in instances) { Console.WriteLine(instanceInfo.Name); } Console.WriteLine(); string instanceName = Guid.NewGuid().ToString(); ISqlLocalDbInstance instance = provider.CreateInstance(instanceName); instance.Start(); try { if (IsCurrentUserAdmin()) { instance.Share(Guid.NewGuid().ToString()); } try { using (SqlConnection connection = instance.CreateConnection()) { connection.Open(); try { using (SqlCommand command = new SqlCommand("create database [MyDatabase]", connection)) { command.ExecuteNonQuery(); } using (SqlCommand command = new SqlCommand("drop database [MyDatabase]", connection)) { command.ExecuteNonQuery(); } } finally { connection.Close(); } } } finally { if (IsCurrentUserAdmin()) { instance.Unshare(); } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } finally { instance.Stop(); localDB.DeleteInstance(instance.Name); } Console.WriteLine(); Console.Write(Strings.Program_ExitPrompt); Console.ReadKey(); }
internal static void Main(string[] args) { PrintBanner(); ISqlLocalDbApi localDB = new SqlLocalDbApiWrapper(); if (!localDB.IsLocalDBInstalled()) { Console.WriteLine(SR.SqlLocalDbApi_NotInstalledFormat, Environment.MachineName); return; } if (args?.Length == 1 && string.Equals(args[0], "/deleteuserinstances", StringComparison.OrdinalIgnoreCase)) { SqlLocalDbApi.DeleteUserInstances(deleteFiles: true); } ISqlLocalDbProvider provider = new SqlLocalDbProvider(); IList <ISqlLocalDbVersionInfo> versions = provider.GetVersions(); Console.WriteLine(Strings.Program_VersionsListHeader); Console.WriteLine(); foreach (ISqlLocalDbVersionInfo version in versions) { Console.WriteLine(version.Name); } Console.WriteLine(); IList <ISqlLocalDbInstanceInfo> instances = provider.GetInstances(); Console.WriteLine(Strings.Program_InstancesListHeader); Console.WriteLine(); foreach (ISqlLocalDbInstanceInfo instanceInfo in instances) { Console.WriteLine(instanceInfo.Name); } Console.WriteLine(); string instanceName = Guid.NewGuid().ToString(); ISqlLocalDbInstance instance = provider.CreateInstance(instanceName); instance.Start(); try { if (IsCurrentUserAdmin()) { instance.Share(Guid.NewGuid().ToString()); } try { using (SqlConnection connection = instance.CreateConnection()) { connection.Open(); try { using (SqlCommand command = new SqlCommand("create database [MyDatabase]", connection)) { command.ExecuteNonQuery(); } using (SqlCommand command = new SqlCommand("drop database [MyDatabase]", connection)) { command.ExecuteNonQuery(); } } finally { connection.Close(); } } } finally { if (IsCurrentUserAdmin()) { instance.Unshare(); } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } finally { instance.Stop(); localDB.DeleteInstance(instance.Name); } Console.WriteLine(); Console.Write(Strings.Program_ExitPrompt); Console.ReadKey(); }
public void SqlLocalDbProvider_GetInstances_Returns_Installed_Instances() { // Arrange Helpers.EnsureLocalDBInstalled(); SqlLocalDbProvider target = new SqlLocalDbProvider(); // Act IList<ISqlLocalDbInstanceInfo> result = target.GetInstances(); int initialCount = result.Count; // Assert Assert.IsNotNull(result, "GetInstances() returned null."); Assert.IsTrue(result.Count > 0, "No instances were returned by GetInstances()."); CollectionAssert.AllItemsAreNotNull(result.ToList(), "GetInstances() returned a null instance."); string instanceName = Guid.NewGuid().ToString(); target.CreateInstance(instanceName); try { result = target.GetInstances(); // Assert Assert.IsNotNull(result, "GetInstances() returned null."); Assert.AreEqual(initialCount + 1, result.Count, "An incorrect number instances were returned by GetInstances()."); CollectionAssert.AllItemsAreNotNull(result.ToList(), "GetInstances() returned a null instance."); Assert.IsTrue(result.Where((p) => p.Name == instanceName).Any(), "The new instance was not returned in the created set of instances."); } finally { SqlLocalDbApi.DeleteInstance(instanceName); } result = target.GetInstances(); // Assert Assert.IsNotNull(result, "GetInstances() returned null."); Assert.AreEqual(initialCount, result.Count, "An incorrect number instances were returned by GetInstances()."); CollectionAssert.AllItemsAreNotNull(result.ToList(), "GetInstances() returned a null instance."); }