public void SqlLocalDbProvider_CreateInstance_Creates_Instance() { // Arrange Helpers.EnsureLocalDBInstalled(); SqlLocalDbProvider target = new SqlLocalDbProvider(); // Act SqlLocalDbInstance result = target.CreateInstance(); // Assert Assert.IsNotNull(result, "CreateInstance() returned null."); Assert.IsNotNull(result.Name, "SqlLocalDbInstance.Name is null."); try { ISqlLocalDbInstanceInfo info = result.GetInstanceInfo(); Assert.IsNotNull(info, "GetInstanceInfo() returned null."); Assert.IsTrue(info.Exists, "ISqlLocalDbInstanceInfo.Exists is incorrect."); Assert.IsFalse(info.IsRunning, "ISqlLocalDbInstanceInfo.IsRunning is incorrect."); Assert.AreEqual( new Version(target.Version).Major, info.LocalDbVersion.Major, "ISqlLocalDbInstanceInfo.LocalDbVersion is incorrect."); Assert.IsTrue(Guid.TryParse(result.Name, out Guid unused), "SqlLocalDbInstance.Name is not a valid GUID."); } finally { SqlLocalDbInstance.Delete(result); } }
public void SqlLocalDbProvider_CreateInstance_Creates_Instance_With_Specified_Name() { // Arrange Helpers.EnsureLocalDBInstalled(); SqlLocalDbProvider target = new SqlLocalDbProvider(); string instanceName = Guid.NewGuid().ToString(); // Act SqlLocalDbInstance result = target.CreateInstance(instanceName); // Assert Assert.IsNotNull(result, "CreateInstance() returned null."); Assert.AreEqual(instanceName, result.Name, "SqlLocalDbInstance.Name is incorrect."); try { ISqlLocalDbInstanceInfo info = result.GetInstanceInfo(); Assert.IsNotNull(info, "GetInstanceInfo() returned null."); Assert.IsTrue(info.Exists, "ISqlLocalDbInstanceInfo.Exists is incorrect."); Assert.IsFalse(info.IsRunning, "ISqlLocalDbInstanceInfo.IsRunning is incorrect."); Assert.AreEqual( new Version(target.Version).Major, info.LocalDbVersion.Major, "ISqlLocalDbInstanceInfo.LocalDbVersion is incorrect."); } finally { SqlLocalDbInstance.Delete(result); } }
public void SqlLocalDbProvider_As_ISqlLocalDbFactory_CreateInstance_Creates_Instance() { // Arrange Helpers.EnsureLocalDBInstalled(); ISqlLocalDbProvider target = new SqlLocalDbProvider(); string instanceName = Guid.NewGuid().ToString(); // Act ISqlLocalDbInstance result = target.CreateInstance(instanceName); // Assert Assert.IsNotNull(result, "CreateInstance() returned null."); Assert.AreEqual(instanceName, result.Name, "SqlLocalDbInstance.Name is incorrect."); try { ISqlLocalDbInstanceInfo info = result.GetInstanceInfo(); Assert.IsTrue(info.Exists, "ISqlLocalDbInstanceInfo.Exists is incorrect."); Assert.IsFalse(info.IsRunning, "ISqlLocalDbInstanceInfo.IsRunning is incorrect."); Assert.IsTrue(Guid.TryParse(result.Name, out Guid unused), "SqlLocalDbInstance.Name is not a valid GUID."); } finally { SqlLocalDbInstance.Delete(result); } }
public void SqlLocalDbProvider_CreateInstance_Specifies_No_Version_If_Default_Instance_Name_Specified_2014_2016() { // Arrange string instanceName = "MSSQLLocalDB"; string version = "1.2.3.4"; Mock <ISqlLocalDbInstanceInfo> mockInfo = new Mock <ISqlLocalDbInstanceInfo>(); mockInfo .SetupSequence((p) => p.Exists) .Returns(false) .Returns(true); Mock <ISqlLocalDbApi> mock = new Mock <ISqlLocalDbApi>(); mock.Setup((p) => p.CreateInstance(instanceName, string.Empty)) .Verifiable(); mock.Setup((p) => p.GetInstanceInfo(instanceName)) .Returns(mockInfo.Object) .Verifiable(); ISqlLocalDbApi localDB = mock.Object; SqlLocalDbProvider target = new SqlLocalDbProvider(localDB) { Version = version, }; // Act target.CreateInstance(instanceName); // Assert mock.Verify(); }
public void SqlLocalDbProvider_As_ISqlLocalDbFactory_CreateInstance_Creates_Instance() { // Arrange Helpers.EnsureLocalDBInstalled(); ISqlLocalDbProvider target = new SqlLocalDbProvider(); string instanceName = Guid.NewGuid().ToString(); // Act ISqlLocalDbInstance result = target.CreateInstance(instanceName); // Assert Assert.IsNotNull(result, "CreateInstance() returned null."); Assert.AreEqual(instanceName, result.Name, "SqlLocalDbInstance.Name is incorrect."); try { ISqlLocalDbInstanceInfo info = result.GetInstanceInfo(); Assert.IsTrue(info.Exists, "ISqlLocalDbInstanceInfo.Exists is incorrect."); Assert.IsFalse(info.IsRunning, "ISqlLocalDbInstanceInfo.IsRunning is incorrect."); Guid guid; Assert.IsTrue(Guid.TryParse(result.Name, out guid), "SqlLocalDbInstance.Name is not a valid GUID."); } finally { SqlLocalDbInstance.Delete(result); } }
public void SqlLocalDbProvider_CreateInstance_Throws_If_No_Instance_Info_From_Api() { // Arrange ISqlLocalDbApi localDB = Mock.Of <ISqlLocalDbApi>(); SqlLocalDbProvider target = new SqlLocalDbProvider(localDB); string instanceName = Guid.NewGuid().ToString(); // Act and Assert throw ErrorAssert.Throws <InvalidOperationException>( () => target.CreateInstance(instanceName)); }
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."); }
public void SqlLocalDbProvider_CreateInstance_Throws_If_Instance_Already_Exists() { // Arrange Helpers.EnsureLocalDBInstalled(); SqlLocalDbProvider target = new SqlLocalDbProvider(); string instanceName = Guid.NewGuid().ToString(); SqlLocalDbApi.CreateInstance(instanceName); try { // Act and Assert throw ErrorAssert.Throws <InvalidOperationException>( () => target.CreateInstance(instanceName)); } finally { SqlLocalDbApi.DeleteInstance(instanceName); } }
public void SqlLocalDbProvider_CreateInstance_Uses_Specified_Version_If_Overridden() { // Arrange string instanceName = Guid.NewGuid().ToString(); string latestVersion = "2.3.4.5"; string version = "1.2.3.4"; Mock <ISqlLocalDbInstanceInfo> mockInfo = new Mock <ISqlLocalDbInstanceInfo>(); mockInfo .SetupSequence((p) => p.Exists) .Returns(false) .Returns(true); Mock <ISqlLocalDbApi> mock = new Mock <ISqlLocalDbApi>(); mock.Setup((p) => p.LatestVersion) .Returns(latestVersion); mock.Setup((p) => p.CreateInstance(instanceName, version)) .Verifiable(); mock.Setup((p) => p.GetInstanceInfo(instanceName)) .Returns(mockInfo.Object) .Verifiable(); ISqlLocalDbApi localDB = mock.Object; SqlLocalDbProvider target = new SqlLocalDbProvider(localDB) { Version = version, }; // Act target.CreateInstance(instanceName); // Assert mock.Verify(); }
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_CreateInstance_Creates_Instance_With_Specified_Name() { // Arrange Helpers.EnsureLocalDBInstalled(); SqlLocalDbProvider target = new SqlLocalDbProvider(); string instanceName = Guid.NewGuid().ToString(); // Act SqlLocalDbInstance result = target.CreateInstance(instanceName); // Assert Assert.IsNotNull(result, "CreateInstance() returned null."); Assert.AreEqual(instanceName, result.Name, "SqlLocalDbInstance.Name is incorrect."); try { ISqlLocalDbInstanceInfo info = result.GetInstanceInfo(); Assert.IsNotNull(info, "GetInstanceInfo() returned null."); Assert.IsTrue(info.Exists, "ISqlLocalDbInstanceInfo.Exists is incorrect."); Assert.IsFalse(info.IsRunning, "ISqlLocalDbInstanceInfo.IsRunning is incorrect."); Assert.AreEqual( new Version(target.Version), new Version(info.LocalDbVersion.Major, info.LocalDbVersion.Minor), "ISqlLocalDbInstanceInfo.LocalDbVersion is incorrect."); } finally { SqlLocalDbInstance.Delete(result); } }
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(); }
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."); }
public void SqlLocalDbProvider_CreateInstance_Uses_Specified_Version_If_Overridden() { // Arrange string instanceName = Guid.NewGuid().ToString(); string latestVersion = "2.3.4.5"; string version = "1.2.3.4"; Mock<ISqlLocalDbInstanceInfo> mockInfo = new Mock<ISqlLocalDbInstanceInfo>(); mockInfo .SetupSequence((p) => p.Exists) .Returns(false) .Returns(true); Mock<ISqlLocalDbApi> mock = new Mock<ISqlLocalDbApi>(); mock.Setup((p) => p.LatestVersion) .Returns(latestVersion); mock.Setup((p) => p.CreateInstance(instanceName, version)) .Verifiable(); mock.Setup((p) => p.GetInstanceInfo(instanceName)) .Returns(mockInfo.Object) .Verifiable(); ISqlLocalDbApi localDB = mock.Object; SqlLocalDbProvider target = new SqlLocalDbProvider(localDB); target.Version = version; // Act target.CreateInstance(instanceName); // Assert mock.Verify(); }
public void SqlLocalDbProvider_CreateInstance_Throws_If_No_Instance_Info_From_Api() { // Arrange ISqlLocalDbApi localDB = Mock.Of<ISqlLocalDbApi>(); SqlLocalDbProvider target = new SqlLocalDbProvider(localDB); string instanceName = Guid.NewGuid().ToString(); // Act and Assert throw ErrorAssert.Throws<InvalidOperationException>( () => target.CreateInstance(instanceName)); }
public void SqlLocalDbProvider_CreateInstance_Throws_If_Instance_Already_Exists() { // Arrange Helpers.EnsureLocalDBInstalled(); SqlLocalDbProvider target = new SqlLocalDbProvider(); string instanceName = Guid.NewGuid().ToString(); SqlLocalDbApi.CreateInstance(instanceName); try { // Act and Assert throw ErrorAssert.Throws<InvalidOperationException>( () => target.CreateInstance(instanceName)); } finally { SqlLocalDbApi.DeleteInstance(instanceName); } }
public void SqlLocalDbProvider_CreateInstance_Specifies_No_Version_If_Default_Instance_Name_Specified_2014() { // Arrange string instanceName = "MSSQLLocalDB"; string version = "1.2.3.4"; Mock<ISqlLocalDbInstanceInfo> mockInfo = new Mock<ISqlLocalDbInstanceInfo>(); mockInfo .SetupSequence((p) => p.Exists) .Returns(false) .Returns(true); Mock<ISqlLocalDbApi> mock = new Mock<ISqlLocalDbApi>(); mock.Setup((p) => p.CreateInstance(instanceName, string.Empty)) .Verifiable(); mock.Setup((p) => p.GetInstanceInfo(instanceName)) .Returns(mockInfo.Object) .Verifiable(); ISqlLocalDbApi localDB = mock.Object; SqlLocalDbProvider target = new SqlLocalDbProvider(localDB); target.Version = version; // Act target.CreateInstance(instanceName); // Assert mock.Verify(); }
private void SetupLocalDbDatabase() { var localDbProvider = new SqlLocalDbProvider(); var localInstance = localDbProvider.CreateInstance(DatabaseName); // instance name = db name, the api will always use the latest version localInstance.Start(); this.SetupMsSqlDatabase(localInstance.CreateConnectionStringBuilder().ConnectionString); }
public void SqlLocalDbProvider_CreateInstance_Creates_Instance() { // Arrange Helpers.EnsureLocalDBInstalled(); SqlLocalDbProvider target = new SqlLocalDbProvider(); // Act SqlLocalDbInstance result = target.CreateInstance(); // Assert Assert.IsNotNull(result, "CreateInstance() returned null."); Assert.IsNotNull(result.Name, "SqlLocalDbInstance.Name is null."); try { ISqlLocalDbInstanceInfo info = result.GetInstanceInfo(); Assert.IsNotNull(info, "GetInstanceInfo() returned null."); Assert.IsTrue(info.Exists, "ISqlLocalDbInstanceInfo.Exists is incorrect."); Assert.IsFalse(info.IsRunning, "ISqlLocalDbInstanceInfo.IsRunning is incorrect."); Assert.AreEqual( new Version(target.Version), new Version(info.LocalDbVersion.Major, info.LocalDbVersion.Minor), "ISqlLocalDbInstanceInfo.LocalDbVersion is incorrect."); Guid guid; Assert.IsTrue(Guid.TryParse(result.Name, out guid), "SqlLocalDbInstance.Name is not a valid GUID."); } finally { SqlLocalDbInstance.Delete(result); } }