public AesEncryptedMongoDBFixture() { var rng = new Random(); DatabaseName = $"AesEncryptedMongoDBFixture_{rng.Next(int.MaxValue):X}"; // docker run -it --rm --name mongodb -p 27027:27017 mongo:3.6.0-jessie ConnectionStringSettings = new ConnectionStringSettings { Name = DatabaseName, ConnectionString = $"mongodb://localhost:27027/{DatabaseName}?maxpoolsize=1000" }; #if NET452 var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); config.ConnectionStrings.ConnectionStrings.Remove(ConnectionStringSettings.Name); config.ConnectionStrings.ConnectionStrings.Add(ConnectionStringSettings); config.Save(); ConfigurationManager.RefreshSection("connectionStrings"); #endif #if NETCOREAPP2_0 ConfigurationManager.ConnectionStrings[ConnectionStringSettings.Name] = ConnectionStringSettings; #endif Database = MongoDBHelper.Connect(ConnectionStringSettings, DatabaseName); var encryptionServiceOptions = new AesMessageEncryptionOptions(KeyGenerator.GenerateAesKey()); var messageQueueingOptions = new MongoDBMessageQueueingOptions(Database) { DiagnosticService = DiagnosticService, MessageEncryptionService = new AesMessageEncryptionService(encryptionServiceOptions) }; MessageQueueingService = new MongoDBMessageQueueingService(messageQueueingOptions); }
public MongoDBFixture() { var rng = new Random(); DatabaseName = $"MongoDBFixture_{rng.Next(int.MaxValue):X}"; // docker run -it --rm --name mongodb -p 27027:27017 mongo:3.6.0-jessie ConnectionStringSettings = new ConnectionStringSettings { Name = DatabaseName, ConnectionString = $"mongodb://localhost:27027/{DatabaseName}?maxpoolsize=1000" }; #if NET452 var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var configMap = new ExeConfigurationFileMap() { ExeConfigFilename = config.FilePath }; config = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None); config.ConnectionStrings.ConnectionStrings.Remove(ConnectionStringSettings.Name); config.ConnectionStrings.ConnectionStrings.Add(ConnectionStringSettings); config.Save(ConfigurationSaveMode.Full, true); ConfigurationManager.RefreshSection(config.ConnectionStrings.SectionInformation.SectionName); #endif #if NETCOREAPP2_0 ConfigurationManager.ConnectionStrings[ConnectionStringSettings.Name] = ConnectionStringSettings; #endif Database = WaitForMongoDB(ConnectionStringSettings, DatabaseName); var subscriptionTrackingOptions = new MongoDBSubscriptionTrackingOptions(Database) { DiagnosticService = DiagnosticService }; SubscriptionTrackingService = new MongoDBSubscriptionTrackingService(subscriptionTrackingOptions); var messageQueueingOptions = new MongoDBMessageQueueingOptions(Database) { DiagnosticService = DiagnosticService }; MessageQueueingService = new MongoDBMessageQueueingService(messageQueueingOptions); var journalOptions = new MongoDBMessageJournalOptions(Database) { DiagnosticService = DiagnosticService }; MessageJournal = new MongoDBMessageJournal(journalOptions); }