public void RestoreDB(DBConnectionInfo dbConnectionInfo, DBBackupFileType dbBackupFileType) { using (var dbConnection = _dbCommandsFactory.CreateDBConnection(dbConnectionInfo)) { using (var dbBackupRestoreCommands = _dbCommandsFactory.CreateDBBackupRestoreCommands(dbConnectionInfo)) { string dbTestsBaseLocation = Path.Combine(FileSystemPathUtils.CommonApplicationData, "AutoVersionsDB.IntegrationTests", "TestsDBs"); if (!Directory.Exists(dbTestsBaseLocation)) { Directory.CreateDirectory(dbTestsBaseLocation); } string filename = _dbBackupFilesProvider.GetDBBackupFilePath(dbBackupFileType, dbConnectionInfo.DBType); dbBackupRestoreCommands.RestoreDBFromBackup(filename, dbConnection.DataBaseName, dbTestsBaseLocation); } } }
public virtual string GetDBBackupFilePath(DBBackupFileType dbBackupFileType, string dbType) { string filePath = dbBackupFileType switch { DBBackupFileType.EmptyDB => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_EmptyDB).Replace("[DBType]", dbType), DBBackupFileType.EmptyDBWithSystemTables => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_ExceptSystemTables).Replace("[DBType]", dbType), DBBackupFileType.AfterRunInitStateScript => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_AfterRunInitStateScript).Replace("[DBType]", dbType), DBBackupFileType.MiddleState => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_MiddleState).Replace("[DBType]", dbType), DBBackupFileType.FinalState_DevEnv => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_FinalState_DevEnv).Replace("[DBType]", dbType), DBBackupFileType.FinalState_DeliveryEnv => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_FinalState_DeliveryEnv).Replace("[DBType]", dbType), DBBackupFileType.FinalState_MissingSystemTables => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_FinalState_MissingSystemTables).Replace("[DBType]", dbType), DBBackupFileType.AddDataAfterFinalState => FileSystemPathUtils.ParsePathVaribles(IntegrationTestsConsts.DBBackup_AddDataAfterFinalState).Replace("[DBType]", dbType), _ => throw new Exception($"Invalid DBBackupFileType: '{dbBackupFileType}'"), }; return(filePath); }
public ITestContext Arrange(TestArgs testArgs, bool devEnvironment, DBBackupFileType dbBackupFileType, ScriptFilesStateType scriptFilesStateType) { ITestContext testContext = new ProcessTestContext(testArgs as ProjectConfigTestArgs, dbBackupFileType, scriptFilesStateType); testContext.ProjectConfig.DevEnvironment = devEnvironment; ProjectConfigItem projectConfig = testContext.ProjectConfig; _projectConfigsFactory.SetFoldersPathByDBType(ref projectConfig, testContext.ScriptFilesStateType); _projectConfigsStorageHelper.PrepareTestProject(testContext.ProjectConfig); if (testContext.DBBackupFileType != DBBackupFileType.None) { _dbHandler.RestoreDB(testContext.ProjectConfig.DBConnectionInfo, dbBackupFileType); testContext.NumOfConnectionsBefore = _dbHandler.GetNumOfOpenConnection(testContext.ProjectConfig.DBConnectionInfo); } _foldersUtils.RemoveArtifactTempFolder(testContext.ProjectConfig); return(testContext); }
public ProcessTestContext(ProjectConfigTestArgs projectConfigTestArgs, DBBackupFileType dbBackupFileType, ScriptFilesStateType scriptFilesStateType) : this(projectConfigTestArgs) { DBBackupFileType = dbBackupFileType; ScriptFilesStateType = scriptFilesStateType; }