public void RestoreMultipleDatabase_AllOptionsToggled_DoesNotThrow()
        {
            var newDatabaseName = "RestoredFromTest.Cake";

            try
            {
                //Arrange
                var pathList             = GetMultipleBackupFilePaths();
                var differentialPathList = GetMultipleBackupFilePaths("differentialMultiFilesBackup*.bak");
                var settings             = new RestoreSqlBackupSettings()
                {
                    NewDatabaseName           = newDatabaseName,
                    NewStorageFolder          = new DirectoryPath(System.IO.Path.GetTempPath()),
                    WithReplace               = true,
                    SwitchToSingleUserMode    = false,
                    BackupSetFile             = 1,
                    DifferentialBackupSetFile = 1
                };

                // Act
                RestoreSqlBackupImpl.RestoreSqlBackup(_context, ConnectionString, settings, pathList, differentialBackupFiles: differentialPathList);

                // Assert
                SqlHelpers.DbExists(ConnectionString, newDatabaseName);
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, newDatabaseName);
            }
        }
        public void RestoreDatabase_NoSingleUserModeInformation_DoesNotThrow()
        {
            var originalDbName = "CakeRestoreTest";

            try
            {
                //Arrange
                var path     = GetBackupFilePath();
                var settings = new RestoreSqlBackupSettings()
                {
                    SwitchToSingleUserMode = false
                };

                // Act
                RestoreSqlBackupImpl.RestoreSqlBackup(_context, ConnectionString, settings, new List <FilePath> {
                    new FilePath(path)
                });

                // Assert
                SqlHelpers.DbExists(ConnectionString, originalDbName);
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, originalDbName);
            }
        }
        public void RestoreDatabase_WithReplace_DoesNotThrow()
        {
            var originalDbName = "CakeRestoreTest";

            try
            {
                //Arrange
                var path = GetBackupFilePath();

                // Act
                RestoreSqlBackupImpl.RestoreSqlBackup(_context, ConnectionString, new RestoreSqlBackupSettings()
                {
                    WithReplace = true
                }, new List <FilePath> {
                    new FilePath(path)
                });

                // Assert
                SqlHelpers.DbExists(ConnectionString, originalDbName);
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, originalDbName);
            }
        }
        public void RestoreDatabase_AllOptionsToggled_DoesNotThrow()
        {
            var newDatabaseName = "RestoredFromTest.Cake";

            try
            {
                //Arrange
                var path     = GetBackupFilePath();
                var settings = new RestoreSqlBackupSettings()
                {
                    NewDatabaseName        = newDatabaseName,
                    NewStorageFolder       = new DirectoryPath(System.IO.Path.GetTempPath()),
                    WithReplace            = true,
                    SwitchToSingleUserMode = false,
                };

                // Act
                RestoreSqlBackupImpl.RestoreSqlBackup(_context, ConnectionString, settings, new List <FilePath> {
                    new FilePath(path)
                });

                // Assert
                SqlHelpers.DbExists(ConnectionString, newDatabaseName);
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, newDatabaseName);
            }
        }
        public void RestoreMultipleDatabase_WithReplace_DoesNotThrow()
        {
            var originalDbName = "CakeRestoreTest";

            try
            {
                //Arrange
                var pathList             = GetMultipleBackupFilePaths();
                var differentialPathList = GetMultipleBackupFilePaths("differentialMultiFilesBackup*.bak");

                // Act
                RestoreSqlBackupImpl.RestoreSqlBackup(_context, ConnectionString, new RestoreSqlBackupSettings()
                {
                    WithReplace = true
                }, pathList, differentialBackupFiles: differentialPathList);

                // Assert
                SqlHelpers.DbExists(ConnectionString, originalDbName);
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, originalDbName);
            }
        }
        public void RestoreDatabase_MoveLocation_DoesNotThrow()
        {
            var newDatabaseName = "RestoredFromTest.Cake";

            try
            {
                //Arrange
                var path     = GetBackupFilePath();
                var settings = new RestoreSqlBackupSettings()
                {
                    NewDatabaseName = newDatabaseName, NewStorageFolder = new DirectoryPath(System.IO.Path.GetTempPath())
                };

                // Act
                RestoreSqlBackupImpl.RestoreSqlBackup(_context, ConnectionString, settings, new List <FilePath> {
                    new FilePath(path)
                });

                // Assert
                SqlHelpers.DbExists(ConnectionString, newDatabaseName);
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, newDatabaseName);
            }
        }
        public void RestoreMultipleDatabase_MoveLocation_DoesNotThrow()
        {
            var newDatabaseName = "RestoredFromTest.Cake";

            try
            {
                //Arrange
                var pathList             = GetMultipleBackupFilePaths();
                var differentialPathList = GetMultipleBackupFilePaths("differentialMultiFilesBackup*.bak");
                var settings             = new RestoreSqlBackupSettings()
                {
                    NewDatabaseName = newDatabaseName, NewStorageFolder = new DirectoryPath(System.IO.Path.GetTempPath())
                };

                // Act
                RestoreSqlBackupImpl.RestoreSqlBackup(_context, ConnectionString, settings, pathList, differentialBackupFiles: differentialPathList);

                // Assert
                SqlHelpers.DbExists(ConnectionString, newDatabaseName);
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, newDatabaseName);
            }
        }
        public void RestoreDatabase_DatabaseRename_DoesNotThrow()
        {
            var databaseName = "NewRandomDatabase";

            try
            {
                //Arrange
                var path = GetBackupFilePath();

                RestoreSqlBackupImpl.RestoreSqlBackup(_context, ConnectionString, new RestoreSqlBackupSettings()
                {
                    NewDatabaseName = databaseName
                }, new List <FilePath> {
                    new FilePath(path)
                });

                // Assert
                SqlHelpers.DbExists(ConnectionString, databaseName);
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, databaseName);
            }
        }
        public void RestoreMultipleDatabase_NoSingleUserModeInformation_DoesNotThrow()
        {
            var originalDbName = "CakeRestoreTest";

            try
            {
                //Arrange
                var pathList             = GetMultipleBackupFilePaths();
                var differentialPathList = GetMultipleBackupFilePaths("differentialMultiFilesBackup*.bak");
                var settings             = new RestoreSqlBackupSettings()
                {
                    SwitchToSingleUserMode = false
                };

                // Act
                RestoreSqlBackupImpl.RestoreSqlBackup(_context, ConnectionString, settings, pathList, differentialBackupFiles: differentialPathList);

                // Assert
                SqlHelpers.DbExists(ConnectionString, originalDbName);
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, originalDbName);
            }
        }
        public void Can_Read_DefaultDataPath()
        {
            using (var connection = SqlServerAliasesImpl.OpenSqlConnection(_context, ConnectionString))
            {
                // Act
                var path = RestoreSqlBackupImpl.GetDefaultDataPath(connection);

                // Assert
                path.Should().NotBeNullOrEmpty();
                Directory.Exists(path).Should().BeTrue();
            }
        }
        public void GetDatabaseName_Should_ReturnName()
        {
            using (var connection = SqlServerAliasesImpl.OpenSqlConnection(_context, ConnectionString))
            {
                //Arrange
                var path = GetBackupFilePath("multiFilesBackup1.bak");

                // Act
                var names = RestoreSqlBackupImpl.GetDatabaseName(path, connection);

                // Assert
                names.Should().Be("CakeRestoreTest");
            }
        }
        public void Can_Read_LogicalNames()
        {
            using (var connection = SqlServerAliasesImpl.OpenSqlConnection(_context, ConnectionString))
            {
                //Arrange
                var path = GetBackupFilePath("multiFilesBackup1.bak");

                // Act
                var names = RestoreSqlBackupImpl.GetLogicalNames(path, connection);

                // Assert
                names.Should().HaveCount(2);
            }
        }
        public void RestoreDatabase_MinimalInformation_DoesNotThrow()
        {
            var originalDbName = "CakeRestoreTest";

            try
            {
                //Arrange
                var path = GetBackupFilePath();

                // Act
                RestoreSqlBackupImpl.RestoreSqlBackup(context, ConnectionString, new FilePath(path), new RestoreSqlBackupSettings());

                // Assert
                SqlHelpers.DbExists(ConnectionString, originalDbName);
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, originalDbName);
            }
        }
예제 #14
0
        public void RestoreMultipleDatabase_MinimalInformation_DoesNotThrow()
        {
            const string originalDbName = "CakeRestoreTest";

            try
            {
                // Arrange
                var pathList             = GetMultipleBackupFilePaths();
                var differentialPathList = GetMultipleBackupFilePaths("differentialMultiFilesBackup*.bak");

                // Act
                RestoreSqlBackupImpl.RestoreSqlBackup(_context, ConnectionString, new RestoreSqlBackupSettings(), pathList, differentialBackupFiles: differentialPathList);

                // Assert
                SqlHelpers.DbExists(ConnectionString, originalDbName).Should().BeTrue();
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, originalDbName);
            }
        }
예제 #15
0
        public void RestoreMultipleDatabase_DatabaseRename_DoesNotThrow()
        {
            const string databaseName = "NewRandomDatabase";

            try
            {
                // Arrange
                var pathList             = GetMultipleBackupFilePaths();
                var differentialPathList = GetMultipleBackupFilePaths("differentialMultiFilesBackup*.bak");

                RestoreSqlBackupImpl.RestoreSqlBackup(_context, ConnectionString, new RestoreSqlBackupSettings {
                    NewDatabaseName = databaseName
                }, pathList, differentialBackupFiles: differentialPathList);

                // Assert
                SqlHelpers.DbExists(ConnectionString, databaseName).Should().BeTrue();
            }
            finally
            {
                // Cleanup
                SqlHelpers.DropDatabase(ConnectionString, databaseName);
            }
        }