Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #7
0
        /// <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);
        }
Beispiel #8
0
        public void Parse_ShouldThrowArgumentNullException_WhenNoConnectionStringGiven()
        {
            var connectionString = " ";

            Assert.Throws <ArgumentNullException>(() => SQLiteConnectionStringParser.Parse(connectionString));
        }
Beispiel #9
0
        public void Parse_ShouldThrowArgumentNullException_WhenNoDatabaseGiven()
        {
            var connectionString = @"Data Source=Test;";

            Assert.Throws <ArgumentNullException>(() => SQLiteConnectionStringParser.Parse(connectionString));
        }