/// <summary> /// Returns the database connection. /// </summary> /// <returns></returns> internal IClientDatabase GetDatabaseConnection() { if (Database != null) { return(Database); } else { base.WriteVerbose("Preparing Archivial Database Connection."); var coreSettings = GetCoreSettingsAccessor(); string dbConnectionString = null; try { dbConnectionString = coreSettings.GetDatabaseConnectionString(); } catch (ApplicationCoreSettingMissingException) { throw new ApplicationException("Cannot run the requested command. Archivial Cloud Backup installation is missing and the product must be installed first."); } base.WriteVerbose("Database connection string: " + dbConnectionString); var logger = new ConsoleLogger(false); var db = new SQLServerClientDatabase(dbConnectionString, logger, coreSettings); Database = db; return(db); } }
public void ProtectedDataStoreConstructorThrowsOnNoEntropy() { var db = new SQLServerClientDatabase(TestConnectionString, new MockLogger(), SharedMockedCoreSettings); var entropy = new byte[] { }; var scope = System.Security.Cryptography.DataProtectionScope.CurrentUser; ProtectedDataStore pds = new ProtectedDataStore(db, scope, entropy); }
public void RestoreEngineConstructorDoesNotThrowWhenValidArgumentsAreProvided() { var logger = new MockLogger(); var db = new SQLServerClientDatabase(TestConnectionString, new MockLogger(), SharedMockedCoreSettings); var engine = new RestoreEngine(db, logger, 0, SharedMockedCoreSettings); Assert.IsNotNull(engine); }
public async Task ProtectedDataStoreSetApplicationSecretThrowsWhenNoOptionValueIsProvided() { var db = new SQLServerClientDatabase(TestConnectionString, new MockLogger(), SharedMockedCoreSettings); var entropy = new byte[] { 123, 2, 15, 212, 174, 141, 233, 86 }; var scope = System.Security.Cryptography.DataProtectionScope.CurrentUser; ProtectedDataStore pds = new ProtectedDataStore(db, scope, entropy); await pds.SetApplicationSecretAsync(ArchivialLibrary.Constants.RuntimeSettingNames.AzureStorageAccountName, "").ConfigureAwait(false); }
public void RestoreEngineCanStartAndStop() { var logger = new MockLogger(); var db = new SQLServerClientDatabase(TestConnectionString, new MockLogger(), SharedMockedCoreSettings); var engine = new RestoreEngine(db, logger, 0, SharedMockedCoreSettings); engine.BeginStart(); engine.BeginStop(); }
/// <summary> /// Configures the database instance. /// </summary> /// <returns></returns> private async Task <bool> ConfigureDatabaseAsync() { try { ClientDatabase = new SQLServerClientDatabase(CoreSettings.GetDatabaseConnectionString(), CoreLog, CoreSettings); await ClientDatabase.PrepareDatabaseAsync().ConfigureAwait(false); return(true); } catch (Exception ex) { var message = "Failed to configure client database."; var context = CoreLog.GenerateFullContextStackTrace(); CoreLog.WriteSystemEvent(message, ex, context, ArchivialLibrary.Constants.EventIDs.FailedToPrepareClientDatabase, true); return(false); } }
public void RestoreEngineTriggersStoppedEventWhenEngineHasStopped() { var logger = new MockLogger(); var db = new SQLServerClientDatabase(TestConnectionString, new MockLogger(), SharedMockedCoreSettings); var engine = new RestoreEngine(db, logger, 0, SharedMockedCoreSettings); var signalStoppedEvent = new AutoResetEvent(false); engine.Stopped += (s, e) => { signalStoppedEvent.Set(); }; engine.BeginStart(); engine.BeginStop(); var engineStoppedSignaled = signalStoppedEvent.WaitOne(TimeSpan.FromSeconds(5)); Assert.IsTrue(engineStoppedSignaled); }
public void RestoreEngineConstructorThrowsExceptionWhenNoCoreSettingsProvided() { var db = new SQLServerClientDatabase(TestConnectionString, new MockLogger(), SharedMockedCoreSettings); var engine = new RestoreEngine(db, new MockLogger(), 0, null); }