public void TestSqlLiteDefaultColValueWorks()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptionsWithLogTo <DiffConfigDbContext>(_output.WriteLine, null,
                                                                                      builder => builder.ReplaceService <IModelCacheKeyFactory, DynamicModelCacheKeyFactory>());

            using var context = new DiffConfigDbContext(options, DiffConfigs.SetDefaultCol);

            //ATTEMPT
            context.Database.EnsureCreated();

            //VERIFY
        }
        public void TestSqlLiteAddSequenceFAILS()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptionsWithLogTo <DiffConfigDbContext>(_output.WriteLine, null,
                                                                                      builder => builder.ReplaceService <IModelCacheKeyFactory, DynamicModelCacheKeyFactory>());

            using var context = new DiffConfigDbContext(options, DiffConfigs.AddSequence);

            //ATTEMPT
            var ex = Assert.Throws <NotSupportedException>(() => context.Database.EnsureCreated());

            //VERIFY
        }
        public void TestSqlLiteComputedColMightFAIL()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptionsWithLogTo <DiffConfigDbContext>(_output.WriteLine, null,
                                                                                      builder => builder.ReplaceService <IModelCacheKeyFactory, DynamicModelCacheKeyFactory>());

            using var context = new DiffConfigDbContext(options, DiffConfigs.SetComputedCol);

            //ATTEMPT
            var ex = Assert.Throws <SqliteException>(() => context.Database.EnsureCreated());

            //VERIFY
            ex.Message.ShouldEqual("SQLite Error 1: 'no such column: yyyy'.");
        }
        public void TestSqlLiteDefaultUserDefinedFunctionsFAILsOnRun()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptionsWithLogTo <DiffConfigDbContext>(_output.WriteLine, null,
                                                                                      builder => builder.ReplaceService <IModelCacheKeyFactory, DynamicModelCacheKeyFactory>());

            using var context = new DiffConfigDbContext(options, DiffConfigs.Nothing);
            context.Database.EnsureCreated();

            //ATTEMPT
            var filepath = TestData.GetFilePath("AddUserDefinedFunctions.sql");
            var ex       = Assert.Throws <SqliteException>(() => context.ExecuteScriptFileInTransaction(filepath));

            //VERIFY
            ex.Message.ShouldEqual("SQLite Error 1: 'near \"IF\": syntax error'.");
        }