Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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();
        }
Beispiel #6
0
        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);
            }
        }
Beispiel #7
0
        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);
            }
        }