コード例 #1
0
        public void VerifyOptionsCreatedSuccessfullyIsResponse()
        {
            GeneralRequestDetails          optionValues = CreateOptionsTestData();
            IRestoreDatabaseTaskDataObject restoreDatabaseTaskDataObject = CreateRestoreDatabaseTaskDataObject(optionValues);

            Dictionary <string, RestorePlanDetailInfo> result = RestoreOptionsHelper.CreateRestorePlanOptions(restoreDatabaseTaskDataObject);

            Assert.NotNull(result);
            VerifyOptions(result, optionValues);
        }
コード例 #2
0
        public void KeepReplicationShouldBeReadOnlyGivenRecoveryStateWithNoRecovery()
        {
            GeneralRequestDetails optionValues = CreateOptionsTestData();

            optionValues.Options[RestoreOptionsHelper.RecoveryState] = DatabaseRecoveryState.WithNoRecovery;
            IRestoreDatabaseTaskDataObject restoreDatabaseTaskDataObject = CreateRestoreDatabaseTaskDataObject(optionValues);

            Dictionary <string, RestorePlanDetailInfo> result = RestoreOptionsHelper.CreateRestorePlanOptions(restoreDatabaseTaskDataObject);

            Assert.NotNull(result);
            Assert.True(result[RestoreOptionsHelper.KeepReplication].IsReadOnly);
        }
コード例 #3
0
        public void CloseExistingConnectionsShouldBeReadOnlyGivenCanDropExistingConnectionsSetToFalse()
        {
            GeneralRequestDetails optionValues = CreateOptionsTestData();

            optionValues.Options["CanDropExistingConnections"] = false;
            IRestoreDatabaseTaskDataObject restoreDatabaseTaskDataObject = CreateRestoreDatabaseTaskDataObject(optionValues);

            Dictionary <string, RestorePlanDetailInfo> result = RestoreOptionsHelper.CreateRestorePlanOptions(restoreDatabaseTaskDataObject);

            Assert.NotNull(result);
            Assert.True(result[RestoreOptionsHelper.CloseExistingConnections].IsReadOnly);
        }
コード例 #4
0
        public void StandbyFileShouldNotBeReadOnlyGivenRecoveryStateWithStandBy()
        {
            GeneralRequestDetails optionValues = CreateOptionsTestData();

            optionValues.Options[RestoreOptionsHelper.RecoveryState] = DatabaseRecoveryState.WithStandBy;
            IRestoreDatabaseTaskDataObject restoreDatabaseTaskDataObject = CreateRestoreDatabaseTaskDataObject(optionValues);

            Dictionary <string, RestorePlanDetailInfo> result = RestoreOptionsHelper.CreateRestorePlanOptions(restoreDatabaseTaskDataObject);

            Assert.NotNull(result);
            Assert.False(result[RestoreOptionsHelper.StandbyFile].IsReadOnly);
        }
コード例 #5
0
        public void TailLogWithNoRecoveryShouldBeReadOnlyTailLogBackupWithNoRecoveryNotPossible()
        {
            GeneralRequestDetails optionValues = CreateOptionsTestData();

            optionValues.Options["IsTailLogBackupWithNoRecoveryPossible"] = false;
            IRestoreDatabaseTaskDataObject restoreDatabaseTaskDataObject = CreateRestoreDatabaseTaskDataObject(optionValues);

            Dictionary <string, RestorePlanDetailInfo> result = RestoreOptionsHelper.CreateRestorePlanOptions(restoreDatabaseTaskDataObject);

            Assert.NotNull(result);
            Assert.True(result[RestoreOptionsHelper.TailLogWithNoRecovery].IsReadOnly);
        }
コード例 #6
0
        public void RelocateAllFilesShouldBeReadOnlyGivenNoDbFiles()
        {
            GeneralRequestDetails optionValues = CreateOptionsTestData();

            optionValues.Options["DbFiles"] = new List <DbFile>();
            optionValues.Options[RestoreOptionsHelper.RelocateDbFiles] = true;
            IRestoreDatabaseTaskDataObject restoreDatabaseTaskDataObject = CreateRestoreDatabaseTaskDataObject(optionValues);

            Dictionary <string, RestorePlanDetailInfo> result = RestoreOptionsHelper.CreateRestorePlanOptions(restoreDatabaseTaskDataObject);

            Assert.NotNull(result);
            Assert.True(result[RestoreOptionsHelper.RelocateDbFiles].IsReadOnly);
        }
コード例 #7
0
        public void DataFileFolderShouldBeReadOnlyGivenRelocateAllFilesSetToFalse()
        {
            GeneralRequestDetails optionValues = CreateOptionsTestData();

            optionValues.Options["DbFiles"] = new List <DbFile>()
            {
                new DbFile("", '1', "")
            };
            optionValues.Options[RestoreOptionsHelper.RelocateDbFiles] = false;
            IRestoreDatabaseTaskDataObject restoreDatabaseTaskDataObject = CreateRestoreDatabaseTaskDataObject(optionValues);

            Dictionary <string, RestorePlanDetailInfo> result = RestoreOptionsHelper.CreateRestorePlanOptions(restoreDatabaseTaskDataObject);

            Assert.NotNull(result);
            Assert.True(result[RestoreOptionsHelper.DataFileFolder].IsReadOnly);
            Assert.True(result[RestoreOptionsHelper.LogFileFolder].IsReadOnly);
        }
コード例 #8
0
        private IRestoreDatabaseTaskDataObject CreateRestoreDatabaseTaskDataObject(GeneralRequestDetails optionValues)
        {
            var restoreDataObject = new RestoreDatabaseTaskDataObjectStub();

            restoreDataObject.CloseExistingConnections = optionValues.GetOptionValue <bool>(RestoreOptionsHelper.CloseExistingConnections);
            restoreDataObject.DataFilesFolder          = optionValues.GetOptionValue <string>(RestoreOptionsHelper.DataFileFolder);
            restoreDataObject.DbFiles = optionValues.GetOptionValue <List <DbFile> >("DbFiles");
            restoreDataObject.DefaultDataFileFolder   = optionValues.GetOptionValue <string>("DefaultDataFileFolder");
            restoreDataObject.DefaultLogFileFolder    = optionValues.GetOptionValue <string>("DefaultLogFileFolder");
            restoreDataObject.DefaultBackupFolder     = optionValues.GetOptionValue <string>("DefaultBackupFolder");
            restoreDataObject.IsTailLogBackupPossible = optionValues.GetOptionValue <bool>("IsTailLogBackupPossible");
            restoreDataObject.IsTailLogBackupWithNoRecoveryPossible = optionValues.GetOptionValue <bool>("IsTailLogBackupWithNoRecoveryPossible");
            restoreDataObject.DefaultStandbyFile         = optionValues.GetOptionValue <string>("GetDefaultStandbyFile");
            restoreDataObject.DefaultTailLogbackupFile   = optionValues.GetOptionValue <string>("GetDefaultTailLogbackupFile");
            restoreDataObject.LogFilesFolder             = optionValues.GetOptionValue <string>(RestoreOptionsHelper.LogFileFolder);
            restoreDataObject.RelocateAllFiles           = optionValues.GetOptionValue <bool>(RestoreOptionsHelper.RelocateDbFiles);
            restoreDataObject.TailLogBackupFile          = optionValues.GetOptionValue <string>("TailLogBackupFile");
            restoreDataObject.SourceDatabaseName         = optionValues.GetOptionValue <string>(RestoreOptionsHelper.SourceDatabaseName);
            restoreDataObject.TargetDatabaseName         = optionValues.GetOptionValue <string>(RestoreOptionsHelper.TargetDatabaseName);
            restoreDataObject.TailLogWithNoRecovery      = optionValues.GetOptionValue <bool>("TailLogWithNoRecovery");
            restoreDataObject.OverwriteTargetDatabase    = optionValues.GetOptionValue <bool>("CanChangeTargetDatabase");
            restoreDataObject.DefaultSourceDbName        = optionValues.GetOptionValue <string>("DefaultSourceDbName");
            restoreDataObject.SourceDbNames              = optionValues.GetOptionValue <List <string> >("SourceDbNames");
            restoreDataObject.DefaultTargetDbName        = optionValues.GetOptionValue <string>("DefaultTargetDbName");
            restoreDataObject.BackupTailLog              = optionValues.GetOptionValue <bool>(RestoreOptionsHelper.BackupTailLog);
            restoreDataObject.CanDropExistingConnections = optionValues.GetOptionValue <bool>("CanDropExistingConnections");
            restoreDataObject.RestoreParams              = optionValues as RestoreParams;
            restoreDataObject.RestorePlan = null;
            RestoreOptions restoreOptions = new RestoreOptions();

            restoreOptions.KeepReplication   = optionValues.GetOptionValue <bool>(RestoreOptionsHelper.KeepReplication);
            restoreOptions.ReplaceDatabase   = optionValues.GetOptionValue <bool>(RestoreOptionsHelper.ReplaceDatabase);
            restoreOptions.SetRestrictedUser = optionValues.GetOptionValue <bool>(RestoreOptionsHelper.SetRestrictedUser);
            restoreOptions.StandByFile       = optionValues.GetOptionValue <string>(RestoreOptionsHelper.StandbyFile);
            restoreOptions.RecoveryState     = optionValues.GetOptionValue <DatabaseRecoveryState>(RestoreOptionsHelper.RecoveryState);
            restoreDataObject.RestoreOptions = restoreOptions;


            return(restoreDataObject);
        }
コード例 #9
0
        public void DataFileFolderShouldBeCurrentValueGivenRelocateAllFilesSetToTrue()
        {
            string dataFile = "data files";
            string logFile  = "log files";
            GeneralRequestDetails optionValues = CreateOptionsTestData();

            optionValues.Options["DbFiles"] = new List <DbFile>()
            {
                new DbFile("", '1', "")
            };
            optionValues.Options[RestoreOptionsHelper.RelocateDbFiles] = true;
            optionValues.Options[RestoreOptionsHelper.DataFileFolder]  = dataFile;
            optionValues.Options[RestoreOptionsHelper.LogFileFolder]   = logFile;
            IRestoreDatabaseTaskDataObject restoreDatabaseTaskDataObject = CreateRestoreDatabaseTaskDataObject(optionValues);

            Dictionary <string, RestorePlanDetailInfo> result = RestoreOptionsHelper.CreateRestorePlanOptions(restoreDatabaseTaskDataObject);

            Assert.NotNull(result);
            Assert.False(result[RestoreOptionsHelper.DataFileFolder].IsReadOnly);
            Assert.False(result[RestoreOptionsHelper.LogFileFolder].IsReadOnly);
            Assert.Equal(result[RestoreOptionsHelper.DataFileFolder].CurrentValue, dataFile);
            Assert.Equal(result[RestoreOptionsHelper.LogFileFolder].CurrentValue, logFile);
        }
コード例 #10
0
 internal T GetValueAs <T>(object value)
 {
     return(GeneralRequestDetails.GetValueAs <T>(value));
 }
コード例 #11
0
        private void VerifyOptions(Dictionary <string, RestorePlanDetailInfo> optionInResponse, GeneralRequestDetails optionValues)
        {
            RestorePlanDetailInfo planDetailInfo = optionInResponse[RestoreOptionsHelper.DataFileFolder];

            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.DataFileFolder);
            Assert.Equal(planDetailInfo.IsReadOnly, !optionValues.GetOptionValue <bool>(RestoreOptionsHelper.RelocateDbFiles));
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <string>(RestoreOptionsHelper.DataFileFolder));
            Assert.Equal(planDetailInfo.DefaultValue, optionValues.GetOptionValue <string>("DefaultDataFileFolder"));
            Assert.Equal(planDetailInfo.IsVisiable, true);

            planDetailInfo = optionInResponse[RestoreOptionsHelper.LogFileFolder];
            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.LogFileFolder);
            Assert.Equal(planDetailInfo.IsReadOnly, !optionValues.GetOptionValue <bool>(RestoreOptionsHelper.RelocateDbFiles));
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <string>(RestoreOptionsHelper.LogFileFolder));
            Assert.Equal(planDetailInfo.DefaultValue, optionValues.GetOptionValue <string>("DefaultLogFileFolder"));
            Assert.Equal(planDetailInfo.IsVisiable, true);

            planDetailInfo = optionInResponse[RestoreOptionsHelper.RelocateDbFiles];
            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.RelocateDbFiles);
            Assert.Equal(planDetailInfo.IsReadOnly, (optionValues.GetOptionValue <List <DbFile> >("DbFiles").Count == 0));
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <bool>(RestoreOptionsHelper.RelocateDbFiles));
            Assert.Equal(planDetailInfo.DefaultValue, false);
            Assert.Equal(planDetailInfo.IsVisiable, true);

            planDetailInfo = optionInResponse[RestoreOptionsHelper.ReplaceDatabase];
            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.ReplaceDatabase);
            Assert.Equal(planDetailInfo.IsReadOnly, false);
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <bool>(RestoreOptionsHelper.ReplaceDatabase));
            Assert.Equal(planDetailInfo.DefaultValue, false);
            Assert.Equal(planDetailInfo.IsVisiable, true);

            planDetailInfo = optionInResponse[RestoreOptionsHelper.KeepReplication];
            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.KeepReplication);
            Assert.Equal(planDetailInfo.IsReadOnly, optionValues.GetOptionValue <DatabaseRecoveryState>(RestoreOptionsHelper.RecoveryState) == DatabaseRecoveryState.WithNoRecovery);
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <bool>(RestoreOptionsHelper.KeepReplication));
            Assert.Equal(planDetailInfo.DefaultValue, false);
            Assert.Equal(planDetailInfo.IsVisiable, true);

            planDetailInfo = optionInResponse[RestoreOptionsHelper.SetRestrictedUser];
            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.SetRestrictedUser);
            Assert.Equal(planDetailInfo.IsReadOnly, false);
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <bool>(RestoreOptionsHelper.SetRestrictedUser));
            Assert.Equal(planDetailInfo.DefaultValue, false);
            Assert.Equal(planDetailInfo.IsVisiable, true);

            planDetailInfo = optionInResponse[RestoreOptionsHelper.RecoveryState];
            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.RecoveryState);
            Assert.Equal(planDetailInfo.IsReadOnly, false);
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <DatabaseRecoveryState>(RestoreOptionsHelper.RecoveryState).ToString());
            Assert.Equal(planDetailInfo.DefaultValue, DatabaseRecoveryState.WithRecovery.ToString());
            Assert.Equal(planDetailInfo.IsVisiable, true);

            planDetailInfo = optionInResponse[RestoreOptionsHelper.StandbyFile];
            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.StandbyFile);
            Assert.Equal(planDetailInfo.IsReadOnly, optionValues.GetOptionValue <DatabaseRecoveryState>(RestoreOptionsHelper.RecoveryState) != DatabaseRecoveryState.WithStandBy);
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <string>(RestoreOptionsHelper.StandbyFile));
            Assert.Equal(planDetailInfo.DefaultValue, optionValues.GetOptionValue <string>("GetDefaultStandbyFile"));
            Assert.Equal(planDetailInfo.IsVisiable, true);

            planDetailInfo = optionInResponse[RestoreOptionsHelper.BackupTailLog];
            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.BackupTailLog);
            Assert.Equal(planDetailInfo.IsReadOnly, !optionValues.GetOptionValue <bool>("IsTailLogBackupPossible"));
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <bool>(RestoreOptionsHelper.BackupTailLog));
            Assert.Equal(planDetailInfo.DefaultValue, optionValues.GetOptionValue <bool>("IsTailLogBackupPossible"));
            Assert.Equal(planDetailInfo.IsVisiable, true);

            planDetailInfo = optionInResponse[RestoreOptionsHelper.TailLogBackupFile];
            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.TailLogBackupFile);
            Assert.Equal(planDetailInfo.IsReadOnly, !optionValues.GetOptionValue <bool>("IsTailLogBackupPossible")
                         | !optionValues.GetOptionValue <bool>(RestoreOptionsHelper.BackupTailLog));
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <string>("TailLogBackupFile"));
            Assert.Equal(planDetailInfo.DefaultValue, optionValues.GetOptionValue <string>("GetDefaultTailLogbackupFile"));
            Assert.Equal(planDetailInfo.IsVisiable, true);

            planDetailInfo = optionInResponse[RestoreOptionsHelper.TailLogWithNoRecovery];
            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.TailLogWithNoRecovery);
            Assert.Equal(planDetailInfo.IsReadOnly, !optionValues.GetOptionValue <bool>("IsTailLogBackupWithNoRecoveryPossible")
                         | !optionValues.GetOptionValue <bool>(RestoreOptionsHelper.BackupTailLog));
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <bool>("TailLogWithNoRecovery"));
            Assert.Equal(planDetailInfo.DefaultValue, optionValues.GetOptionValue <bool>("IsTailLogBackupWithNoRecoveryPossible"));
            Assert.Equal(planDetailInfo.IsVisiable, true);

            planDetailInfo = optionInResponse[RestoreOptionsHelper.CloseExistingConnections];
            Assert.Equal(planDetailInfo.Name, RestoreOptionsHelper.CloseExistingConnections);
            Assert.Equal(planDetailInfo.IsReadOnly, false);
            Assert.Equal(planDetailInfo.CurrentValue, optionValues.GetOptionValue <bool>(RestoreOptionsHelper.CloseExistingConnections));
            Assert.Equal(planDetailInfo.DefaultValue, false);
            Assert.Equal(planDetailInfo.IsVisiable, true);
        }