public void Parse_ShouldNotFail_WhenRedundantParametersGiven() { var connectionString = @";Redundant1=random; ;Data Source=ApplicationData;Some ;Redundant=test value;Database=test"; var result = SQLiteConnectionStringParser.Parse(connectionString); var expected = GetResultConnectionString(Path.Combine(GetSpecialFolderFullPath("ApplicationData"), "test.db")); Assert.Equal(expected, result); }
public void Parse_ShouldReturnSystemPath_WhenSpecialFolderAsDataSourceGiven(string specialFolder) { var connectionString = $"Data Source={specialFolder};Database=test"; var result = SQLiteConnectionStringParser.Parse(connectionString); var expected = GetResultConnectionString(Path.Combine(GetSpecialFolderFullPath(specialFolder), "test.db")); Assert.Equal(expected, result); }
public void Parse_ShouldReturnAbsolutePath_WhenDataSourceIsRootedPath() { var connectionString = @"Data Source=c:\TestFolder\SubFolder;Database=test"; var result = SQLiteConnectionStringParser.Parse(connectionString); var expected = GetResultConnectionString(Path.Combine(@"c:\TestFolder\SubFolder", ApplicationFolderName, "test.db")); Assert.Equal(expected, result); }
public void Parse_ShouldReturnRelativePath_WhenDataSourceIsNotSpecialFolderAndNotRootedPath() { var connectionString = @"Data Source=TestFolder\SubFolder;Database=test"; var result = SQLiteConnectionStringParser.Parse(connectionString); var expected = GetResultConnectionString(Path.Combine(Environment.CurrentDirectory, @"TestFolder\SubFolder", ApplicationFolderName, "test.db")); Assert.Equal(expected, result); }
public void Parse_ShouldReturnLocalPath_WhenNoDataSourceGiven() { var connectionString = "Database=test"; var result = SQLiteConnectionStringParser.Parse(connectionString); var expected = GetResultConnectionString(Path.Combine(Environment.CurrentDirectory, "test.db")); Assert.Equal(expected, result); }
private static void DropAndCreateDatabase(IConfiguration configuration) { var connectionString = SQLiteConnectionStringParser.Parse(configuration.GetConnectionString("DefaultConnection")); var connectionFactory = new DefaultConnectionFactory(connectionString); var connectionValues = connectionString.ToNameValueCollection(); var dbFilePath = connectionValues.Get(SQLiteConnectionStringKeys.DataSource); File.Delete(dbFilePath); DatabaseMigrator.Migrate(connectionFactory); }
/// <summary> /// Configures application dependencies. /// </summary> /// <param name="builder">Autofac builder.</param> /// <param name="configuration">Application configuration.</param> public static ContainerBuilder Configure(ContainerBuilder builder, IConfiguration configuration) { var currentAssembly = Assembly.GetExecutingAssembly(); var assemblies = currentAssembly .GetReferencedAssemblies() .Select(an => Assembly.Load(an)) .ToArray(); builder.RegisterAssemblyTypes(currentAssembly).PublicOnly(); AmbientDbContextStorageProvider.SetStorage(new LogicalCallContextStorage()); var connectionString = SQLiteConnectionStringParser.Parse(configuration.GetConnectionString("DefaultConnection")); builder.RegisterInstance(new DefaultConnectionFactory(connectionString)).As <IDbConnectionFactory>().SingleInstance(); builder.RegisterType <AmbientDbContextFactory>().As <IAmbientDbContextFactory>().SingleInstance(); builder.RegisterType <AmbientDbContextLocator>().As <IAmbientDbContextLocator>(); builder.RegisterType <DapperRepository>().As <IRepository>(); builder.RegisterInstance(configuration.GetConfiguration <WindowSettings>()); builder.RegisterType <ApplicationState>().As <IApplicationState>().SingleInstance(); builder.RegisterType <InteractionService>().As <IInteractionService>().SingleInstance(); builder.RegisterType <BackgroundTask>().As <IBackgroundTask>().SingleInstance(); builder.RegisterType <AutofacHandlerFactory>().As <IHandlerFactory>().SingleInstance(); builder.RegisterType <DefaultMessageBus>().As <IMessageBus>().SingleInstance(); builder.RegisterType <DefaultNotificationStrategy>().As <INotificationStrategy>().AsSelf().InstancePerLifetimeScope(); builder.RegisterType <FireAndForgetNotificationStrategy>().As <INotificationStrategy>().AsSelf().InstancePerLifetimeScope(); builder.RegisterType <AutofacNotificationStrategyFactory>().As <INotificationStrategyFactory>().SingleInstance(); foreach (var assembly in assemblies) { builder.RegisterAssemblyTypes(assembly).AsClosedTypesOf(typeof(IRequestHandler <,>)); builder.RegisterAssemblyTypes(assembly) .Where(t => !t.Name.EndsWith("Decorator")) .AsClosedTypesOf(typeof(INotificationHandler <>)) .InstancePerLifetimeScope(); } builder.RegisterAssemblyModules(assemblies); return(builder); }
public void Parse_ShouldThrowArgumentNullException_WhenNoConnectionStringGiven() { var connectionString = " "; Assert.Throws <ArgumentNullException>(() => SQLiteConnectionStringParser.Parse(connectionString)); }
public void Parse_ShouldThrowArgumentNullException_WhenNoDatabaseGiven() { var connectionString = @"Data Source=Test;"; Assert.Throws <ArgumentNullException>(() => SQLiteConnectionStringParser.Parse(connectionString)); }