示例#1
0
        public void TemporarySqlLocalDbInstance_Create_Creates_Temporary_Instance_With_Random_Name()
        {
            string instanceName;

            // Act
            using (TemporarySqlLocalDbInstance target = TemporarySqlLocalDbInstance.Create())
            {
                // Assert
                Assert.IsNotNull(target.Instance, "TemporarySqlLocalDbInstance.Instance is null.");

                instanceName = target.Instance.Name;

                Assert.IsTrue(Guid.TryParse(instanceName, out Guid unused), "The random instance name is not a valid GUID.");

                // Check the instance was created
                AssertExistence(instanceName, exists: true);

                // The instance is not running if there is no pipe open
                Assert.IsFalse(string.IsNullOrEmpty(target.Instance.NamedPipe), "The temporary SQL LocalDB instance has not been started.");

                Assert.IsFalse(target.DeleteFiles, "TemporarySqlLocalDbInstance.DeleteFiles is incorrect.");
                Assert.AreEqual(target.Instance.Name, target.Name, "TemporarySqlLocalDbInstance.Name is incorrect.");
                Assert.AreEqual(target.Instance.NamedPipe, target.NamedPipe, "TemporarySqlLocalDbInstance.NamedPipe is incorrect.");
            }

            // The instance should have been deleted
            AssertExistence(instanceName, exists: false);
            AssertFileExistence(instanceName, shouldFilesExist: true);

            // Verify that the same random name isn't used again
            using (TemporarySqlLocalDbInstance target = TemporarySqlLocalDbInstance.Create())
            {
                Assert.AreNotEqual(instanceName, target.Instance.Name, "The same random name was used to generate a temporary instance.");
            }
        }
        public void TemporarySqlLocalDbInstance_GetInstanceInfo_Returns_ISqlLocalDbInstanceInfo()
        {
            // Arrange
            using (TemporarySqlLocalDbInstance target = TemporarySqlLocalDbInstance.Create())
            {
                // Act
                ISqlLocalDbInstanceInfo result = target.GetInstanceInfo();

                // Assert
                Assert.IsNotNull(result, "GetInstanceInfo() returned null.");
            }
        }
        public void TemporarySqlLocalDbInstance_CreateConnectionStringBuilder_Creates_SqlConnectionStringBuilder()
        {
            // Arrange
            using (TemporarySqlLocalDbInstance target = TemporarySqlLocalDbInstance.Create())
            {
                // Act
                SqlConnectionStringBuilder result = target.CreateConnectionStringBuilder();

                // Assert
                Assert.IsNotNull(result, "CreateConnectionStringBuilder() returned null.");
            }
        }
 public void TemporarySqlLocalDbInstance_CreateConnection_Creates_Connection()
 {
     // Arrange
     using (TemporarySqlLocalDbInstance target = TemporarySqlLocalDbInstance.Create())
     {
         // Act
         using (SqlConnection result = target.CreateConnection())
         {
             // Assert
             Assert.IsNotNull(result, "CreateConnection() returned null.");
         }
     }
 }
        public void TemporarySqlLocalDbInstance_Create_Creates_Temporary_Instance_With_Random_Name_And_Deletes_If_SqlLocalDbApi_AutomaticallyDeleteInstanceFiles_Is_True()
        {
            // Arrange
            Helpers.InvokeInNewAppDomain(
                () =>
            {
                SqlLocalDbApi.AutomaticallyDeleteInstanceFiles = true;
                SqlLocalDbApi.StopOptions = StopInstanceOptions.NoWait;

                string instanceName;

                // Act
                using (TemporarySqlLocalDbInstance target = TemporarySqlLocalDbInstance.Create())
                {
                    // Assert
                    Assert.IsNotNull(target.Instance, "TemporarySqlLocalDbInstance.Instance is null.");

                    instanceName = target.Instance.Name;

                    Guid notUsed;
                    Assert.IsTrue(Guid.TryParse(instanceName, out notUsed), "The random instance name is not a valid GUID.");

                    // Check the instance was created
                    AssertExistence(instanceName, exists: true);

                    // The instance is not running if there is no pipe open
                    Assert.IsFalse(string.IsNullOrEmpty(target.Instance.NamedPipe), "The temporary SQL LocalDB instance has not been started.");

                    Assert.IsTrue(target.DeleteFiles, "TemporarySqlLocalDbInstance.DeleteFiles is incorrect.");
                    Assert.AreEqual(target.Instance.Name, target.Name, "TemporarySqlLocalDbInstance.Name is incorrect.");
                    Assert.AreEqual(target.Instance.NamedPipe, target.NamedPipe, "TemporarySqlLocalDbInstance.NamedPipe is incorrect.");
                }

                // The instance should have been deleted
                AssertExistence(instanceName, exists: false);
                AssertFileExistence(instanceName, shouldFilesExist: false);

                // Verify that the same random name isn't used again
                using (TemporarySqlLocalDbInstance target = TemporarySqlLocalDbInstance.Create())
                {
                    Assert.AreNotEqual(instanceName, target.Instance.Name, "The same random name was used to generate a temporary instance.");
                }
            });
        }
        public void TemporarySqlLocalDbInstance_Create_With_DeleteFiles_Parameter_Creates_Temporary_Instance_With_Random_Name_And_Deletes_Files_When_Disposed()
        {
            // Arrange
            Helpers.InvokeInNewAppDomain(
                () =>
            {
                // Set the property to false to ensure that the parameter is used to control deletion not the property
                SqlLocalDbApi.AutomaticallyDeleteInstanceFiles = false;
                SqlLocalDbApi.StopOptions = StopInstanceOptions.NoWait;

                string instanceName;
                bool deleteFiles = true;

                // Act
                using (TemporarySqlLocalDbInstance target = TemporarySqlLocalDbInstance.Create(deleteFiles))
                {
                    // Assert
                    Assert.IsNotNull(target.Instance, "TemporarySqlLocalDbInstance.Instance is null.");

                    instanceName = target.Instance.Name;

                    Guid notUsed;
                    Assert.IsTrue(Guid.TryParse(instanceName, out notUsed), "The random instance name is not a valid GUID.");

                    // Check the instance was created
                    AssertExistence(instanceName, exists: true);

                    // The instance is not running if there is no pipe open
                    Assert.IsFalse(string.IsNullOrEmpty(target.Instance.NamedPipe), "The temporary SQL LocalDB instance has not been started.");

                    Assert.IsTrue(target.DeleteFiles, "TemporarySqlLocalDbInstance.DeleteFiles is incorrect.");
                    Assert.AreEqual(target.Instance.Name, target.Name, "TemporarySqlLocalDbInstance.Name is incorrect.");
                    Assert.AreEqual(target.Instance.NamedPipe, target.NamedPipe, "TemporarySqlLocalDbInstance.NamedPipe is incorrect.");
                }

                // The instance should have been deleted
                AssertExistence(instanceName, exists: false);
                AssertFileExistence(instanceName, shouldFilesExist: false);
            });
        }