public void Can_Create_SqlLocalDB_Instances_With_Different_Versions() { // Arrange using (var actual = new SqlLocalDbApi(_loggerFactory)) { foreach (string version in actual.Versions) { // Act ISqlLocalDbVersionInfo versionInfo = actual.GetVersionInfo(version); // Assert versionInfo.ShouldNotBeNull(); versionInfo.Name.ShouldStartWith(version.Split('.').First()); versionInfo.Exists.ShouldBeTrue(); versionInfo.Version.ShouldNotBeNull(); versionInfo.Version.ShouldNotBe(new Version()); string instanceName = Guid.NewGuid().ToString(); // Act ISqlLocalDbInstanceInfo instanceInfo = actual.CreateInstance(instanceName, version); // Assert instanceInfo.ShouldNotBeNull(); instanceInfo.Name.ShouldBe(instanceName); instanceInfo.Exists.ShouldBeTrue(); instanceInfo.IsRunning.ShouldBeFalse(); instanceInfo.LocalDbVersion.ShouldBe(versionInfo.Version); // Act (no Assert) actual.DeleteInstance(instanceName); actual.DeleteInstanceFiles(instanceName); } } }
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 GetDefaultInstance_Returns_The_Default_Instance() { // Arrange using var api = new SqlLocalDbApi(_loggerFactory); // Act ISqlLocalDbInstanceInfo actual = api.GetDefaultInstance(); // Assert actual.ShouldNotBeNull(); actual.IsAutomatic.ShouldBeTrue(); actual.Name.ShouldBe(api.DefaultInstanceName); }
public void GetOrCreateInstance_Returns_The_Default_Instance_If_It_Exists(string instanceName) { // Arrange var mock = new Mock <ISqlLocalDbApi>(); mock.Setup((p) => p.DefaultInstanceName) .Returns("Blah"); mock.Setup((p) => p.GetInstanceInfo(instanceName)) .Returns(CreateInstanceInfo(exists: true)); ISqlLocalDbApi api = mock.Object; // Act ISqlLocalDbInstanceInfo actual = api.GetOrCreateInstance(instanceName); // Assert actual.ShouldNotBeNull(); actual.Exists.ShouldBeTrue(); }
public void GetOrCreateInstance_Returns_An_Instance_If_It_Does_Not_Exist() { // Arrange string instanceName = "MyInstance"; var mock = new Mock <ISqlLocalDbApi>(); mock.Setup((p) => p.DefaultInstanceName) .Returns("Blah"); mock.Setup((p) => p.LatestVersion) .Returns("v99.0"); mock.Setup((p) => p.CreateInstance(instanceName, "v99.0")) .Returns(CreateInstanceInfo(exists: false)); ISqlLocalDbApi api = mock.Object; // Act ISqlLocalDbInstanceInfo actual = api.GetOrCreateInstance(instanceName); // Assert actual.ShouldNotBeNull(); }
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); } }