Пример #1
0
        public void CanUseGit()
        {
            GitHelper.Init(dir);
            File.WriteAllText(file, "select 1 print '1 selected'");
            GitHelper.CommitAll(dir);
            //   Console.WriteLine(GitHelper.GetLastCommit(file).Hash);
            var t = new ScriptFileDbUpdateTask(file)
            {
                Database = DbName
            };

            t.Execute();
            Assert.AreEqual(TaskState.Success, t.State);
            //  Console.WriteLine(t.GetLastLog());
            File.WriteAllText(file, "select 2 print '2 selected'");
            t = new ScriptFileDbUpdateTask(file)
            {
                Database = DbName
            };
            t.Execute();
            Assert.AreEqual(TaskState.SuccessNotRun, t.State);
            GitHelper.CommitAll(dir);
            //   Console.WriteLine(GitHelper.GetLastCommit(file).Hash);
            t = new ScriptFileDbUpdateTask(file)
            {
                Database = DbName
            };
            t.Execute();
            Assert.AreEqual(TaskState.Success, t.State);
        }
Пример #2
0
        public void CanUseHeader()
        {
            File.WriteAllText(file, @"
/*!
options runonce=1
*/
select 1 print '1 selected'
");
            var t = new ScriptFileDbUpdateTask(file)
            {
                Database = DbName
            };

            t.Execute();
            Assert.AreEqual(TaskState.Success, t.State);
            File.WriteAllText(file, @"
--!options runonce=1
select 2 print '2 selected'
");
            t = new ScriptFileDbUpdateTask(file)
            {
                Database = DbName
            };
            t.Execute();
            Assert.AreEqual(TaskState.SuccessOnce, t.State);
        }
Пример #3
0
        public void InstallLibraryFromLegacyScript()
        {
            var path = EnvironmentInfo.ResolvePath("@repos@/qorpent.sys/Qorpent.Data/Old.Comdiv.Sql.Functions.sql");
            var task = new ScriptFileDbUpdateTask(path);

            task.Database = "AssemblyInstallTest";
            task.Execute();
            if (null != task.Error)
            {
                Console.WriteLine(task.Error.ToString());
            }
            Assert.AreEqual(TaskState.Success, task.State);
        }
Пример #4
0
        public void CanExecuteWithInterpolationsAndParameters()
        {
            File.WriteAllText(file, "select @x ${command}");
            var t = new ScriptFileDbUpdateTask(file)
            {
                Database = DbName
            };

            t["x"]       = 1;
            t["command"] = "print '1 executed'";
            t.Execute();
            if (null != t.Error)
            {
                Console.WriteLine(t.Error);
            }
            Assert.AreEqual(TaskState.Success, t.State);
        }
Пример #5
0
        public void WillNotApplySameVersion()
        {
            File.WriteAllText(file, "select 1 print '1 selected'");
            var t = new ScriptFileDbUpdateTask(file)
            {
                Database = DbName
            };

            t.Execute();
            Assert.AreEqual(TaskState.Success, t.State);
            t = new ScriptFileDbUpdateTask(file)
            {
                Database = DbName
            };
            t.Execute();
            Assert.AreEqual(TaskState.SuccessNotRun, t.State);
        }
Пример #6
0
        public void CanExecute()
        {
            File.WriteAllText(file, "select 1 print '1 selected'");
            var t = new ScriptFileDbUpdateTask(file)
            {
                Database = DbName
            };

            t.Execute();
            if (null != t.Error)
            {
                Console.WriteLine(t.Error);
            }
            Assert.AreEqual(TaskState.Success, t.State);
            t.Refresh();
            Assert.AreEqual(t.Target.Hash, t.Source.Hash);
            var diff = Math.Floor((t.Target.Version - t.Source.Version).TotalSeconds);

            Assert.LessOrEqual(diff, 1);
        }