public void Can_Test_Whether_Instances_Exist() { // Arrange using (var api = new SqlLocalDbApi(_loggerFactory)) { // Start the default instance to ensure it exists api.StartInstance(api.DefaultInstanceName); try { // Arrange string instanceName = api.DefaultInstanceName; // Act bool actual = api.InstanceExists(instanceName); // Assert actual.ShouldBeTrue(); // Arrange instanceName = Guid.NewGuid().ToString(); // Act actual = api.InstanceExists(instanceName); // Assert actual.ShouldBeFalse(); } finally { api.StopInstance(api.DefaultInstanceName); } } }
public void Can_Get_Instances_From_Names() { // Arrange using (var api = new SqlLocalDbApi(_loggerFactory)) { IReadOnlyList <string> names = api.GetInstanceNames(); foreach (string name in names) { // Act ISqlLocalDbInstanceInfo info = api.GetInstanceInfo(name); // Assert info.ShouldNotBeNull(); } // Arrange string instanceName = Guid.NewGuid().ToString(); // Act bool actual = api.InstanceExists(instanceName); // Assert actual.ShouldBeFalse(); } }
public void Throws_InvalidOperationException_If_SQL_LocalDB_Not_Installed() { // Arrange var options = new SqlLocalDbOptions(); var registry = Mock.Of <Interop.IRegistry>(); using (var actual = new SqlLocalDbApi(options, registry, _loggerFactory)) { // Act and Assert Assert.Throws <InvalidOperationException>(() => actual.CreateInstance("name")); Assert.Throws <InvalidOperationException>(() => actual.DeleteInstance("name")); Assert.Throws <InvalidOperationException>(() => actual.DeleteUserInstances()); Assert.Throws <InvalidOperationException>(() => actual.GetDefaultInstance()); Assert.Throws <InvalidOperationException>(() => actual.GetInstanceInfo("name")); Assert.Throws <InvalidOperationException>(() => actual.GetInstanceNames()); Assert.Throws <InvalidOperationException>(() => actual.GetInstances()); Assert.Throws <InvalidOperationException>(() => actual.GetOrCreateInstance("name")); Assert.Throws <InvalidOperationException>(() => actual.GetVersionInfo("name")); Assert.Throws <InvalidOperationException>(() => actual.InstanceExists("name")); Assert.Throws <InvalidOperationException>(() => actual.LatestVersion); Assert.Throws <InvalidOperationException>(() => actual.ShareInstance("name", "sharedName")); Assert.Throws <InvalidOperationException>(() => actual.StartInstance("name")); Assert.Throws <InvalidOperationException>(() => actual.StartTracing()); Assert.Throws <InvalidOperationException>(() => actual.StopInstance("name")); Assert.Throws <InvalidOperationException>(() => actual.StopTracing()); Assert.Throws <InvalidOperationException>(() => actual.UnshareInstance("name")); } }
public void Throws_PlatformNotSupportedException() { // Arrange using (var actual = new SqlLocalDbApi(_loggerFactory)) { // Act and Assert Assert.Throws <PlatformNotSupportedException>(() => actual.CreateInstance("name")); Assert.Throws <PlatformNotSupportedException>(() => actual.DeleteInstance("name")); Assert.Throws <PlatformNotSupportedException>(() => actual.DeleteUserInstances()); Assert.Throws <PlatformNotSupportedException>(() => actual.GetDefaultInstance()); Assert.Throws <PlatformNotSupportedException>(() => actual.GetInstanceInfo("name")); Assert.Throws <PlatformNotSupportedException>(() => actual.GetInstanceNames()); Assert.Throws <PlatformNotSupportedException>(() => actual.GetInstances()); Assert.Throws <PlatformNotSupportedException>(() => actual.GetOrCreateInstance("name")); Assert.Throws <PlatformNotSupportedException>(() => actual.GetVersionInfo("name")); Assert.Throws <PlatformNotSupportedException>(() => actual.InstanceExists("name")); Assert.Throws <PlatformNotSupportedException>(() => actual.LatestVersion); Assert.Throws <PlatformNotSupportedException>(() => actual.ShareInstance("name", "sharedName")); Assert.Throws <PlatformNotSupportedException>(() => actual.ShareInstance("sid", "name", "sharedName")); Assert.Throws <PlatformNotSupportedException>(() => actual.StartInstance("name")); Assert.Throws <PlatformNotSupportedException>(() => actual.StartTracing()); Assert.Throws <PlatformNotSupportedException>(() => actual.StopInstance("name")); Assert.Throws <PlatformNotSupportedException>(() => actual.StopTracing()); Assert.Throws <PlatformNotSupportedException>(() => actual.UnshareInstance("name")); } }
public void Can_Manage_SqlLocalDB_Instances() { // Arrange using (var actual = new SqlLocalDbApi(_loggerFactory)) { string instanceName = Guid.NewGuid().ToString(); // Act ISqlLocalDbInstanceInfo instance = actual.GetInstanceInfo(instanceName); // Assert instance.ShouldNotBeNull(); instance.Name.ShouldBe(instanceName); instance.Exists.ShouldBeFalse(); instance.IsRunning.ShouldBeFalse(); // Act and Assert actual.InstanceExists(instanceName).ShouldBeFalse(); // Act actual.CreateInstance(instanceName); // Assert instance = actual.GetInstanceInfo(instanceName); instance.ShouldNotBeNull(); instance.Name.ShouldBe(instanceName); instance.Exists.ShouldBeTrue(); instance.IsRunning.ShouldBeFalse(); // Act actual.StartInstance(instanceName); // Assert instance = actual.GetInstanceInfo(instanceName); instance.ShouldNotBeNull(); instance.Name.ShouldBe(instanceName); instance.Exists.ShouldBeTrue(); instance.IsRunning.ShouldBeTrue(); // Act and Assert actual.InstanceExists(instanceName).ShouldBeTrue(); // Act actual.StopInstance(instanceName); // Assert instance = actual.GetInstanceInfo(instanceName); instance.ShouldNotBeNull(); instance.Name.ShouldBe(instanceName); instance.Exists.ShouldBeTrue(); instance.IsRunning.ShouldBeFalse(); // Act actual.DeleteInstance(instanceName); // Assert instance = actual.GetInstanceInfo(instanceName); instance.ShouldNotBeNull(); instance.Name.ShouldBe(instanceName); instance.Exists.ShouldBeFalse(); instance.IsRunning.ShouldBeFalse(); // Act and Assert actual.InstanceExists(instanceName).ShouldBeFalse(); // Act (no Assert) actual.DeleteInstanceFiles(instanceName); } }
public async Task Can_Manage_SqlLocalDB_Instances() { // Arrange using (var actual = new SqlLocalDbApi(_loggerFactory)) { string instanceName = Guid.NewGuid().ToString(); // Act ISqlLocalDbInstanceInfo instance = actual.GetInstanceInfo(instanceName); // Assert instance.ShouldNotBeNull(); instance.Name.ShouldBe(instanceName); instance.Exists.ShouldBeFalse(); instance.IsRunning.ShouldBeFalse(); // Act and Assert actual.InstanceExists(instanceName).ShouldBeFalse(); // Act instance = actual.CreateInstance(instanceName); // Assert instance = actual.GetInstanceInfo(instanceName); instance.ShouldNotBeNull(); instance.Name.ShouldBe(instanceName); instance.Exists.ShouldBeTrue(); instance.IsRunning.ShouldBeFalse(); // Act string namedPipe = actual.StartInstance(instanceName); // Assert namedPipe.ShouldNotBeNullOrWhiteSpace(); var builder = new SqlConnectionStringBuilder() { DataSource = namedPipe }; using (var connection = new SqlConnection(builder.ConnectionString)) { await connection.OpenAsync(); } // Act instance = actual.GetInstanceInfo(instanceName); // Assert instance.ShouldNotBeNull(); instance.Name.ShouldBe(instanceName); instance.Exists.ShouldBeTrue(); instance.IsRunning.ShouldBeTrue(); // Act and Assert actual.InstanceExists(instanceName).ShouldBeTrue(); // Act actual.StopInstance(instanceName); // Assert instance = actual.GetInstanceInfo(instanceName); instance.ShouldNotBeNull(); instance.Name.ShouldBe(instanceName); instance.Exists.ShouldBeTrue(); instance.IsRunning.ShouldBeFalse(); // Act actual.DeleteInstance(instanceName); // Assert instance = actual.GetInstanceInfo(instanceName); instance.ShouldNotBeNull(); instance.Name.ShouldBe(instanceName); instance.Exists.ShouldBeFalse(); instance.IsRunning.ShouldBeFalse(); // Act and Assert actual.InstanceExists(instanceName).ShouldBeFalse(); // Act (no Assert) actual.DeleteInstanceFiles(instanceName); } }