示例#1
0
        public void ReadLastAbortedProcess()
        {
            //Arrange
            StartLoadProcessTask.Start("Test process 10");
            Task.Delay(10).Wait(); //Sql Server datetime is not that exact
            EndLoadProcessTask.End();
            Task.Delay(10).Wait();
            StartLoadProcessTask.Start("Test process 11");
            Task.Delay(10).Wait(); //Sql Server datetime is not that exact
            AbortLoadProcessTask.Abort();
            StartLoadProcessTask.Start("Test process 12");
            Task.Delay(10).Wait(); //Sql Server datetime is not that exact
            EndLoadProcessTask.End();

            //Act
            var lp = ReadLoadProcessTableTask.ReadWithOption(ReadOptions.ReadLastAborted);

            //Assert
            Assert.True(lp.IsFinished);
            Assert.True(lp.WasAborted);
            Assert.False(lp.WasSuccessful);
            Assert.Equal("Test process 11", lp.ProcessName);
            Assert.Equal(3, new RowCountTask("etl.LoadProcess", "IsFinished=1")
            {
                DisableLogging = true
            }.Count().Rows);
            Assert.Equal(2, new RowCountTask("etl.LoadProcess", "WasSuccessful=1")
            {
                DisableLogging = true
            }.Count().Rows);
            Assert.Equal(1, new RowCountTask("etl.LoadProcess", "WasAborted=1")
            {
                DisableLogging = true
            }.Count().Rows);
        }
示例#2
0
        public void AbortLoadProcess()
        {
            //Arrange
            StartLoadProcessTask.Start("Test process 3");
            Assert.True(ControlFlow.CurrentLoadProcess.IsRunning == true);
            DateTime beforeTask = DateTime.Now;

            Task.Delay(10).Wait(); //Sql Server datetime is not that exact

            //Act
            AbortLoadProcessTask.Abort(ControlFlow.CurrentLoadProcess.LoadProcessKey, "AbortMessage");

            //Assert
            DateTime afterTask = DateTime.Now;

            Assert.True(ControlFlow.CurrentLoadProcess.IsRunning == false);
            Assert.True(ControlFlow.CurrentLoadProcess.WasAborted == true);
            Assert.True(ControlFlow.CurrentLoadProcess.EndDate <= afterTask && ControlFlow.CurrentLoadProcess.EndDate >= beforeTask);
            Assert.True(ControlFlow.CurrentLoadProcess.AbortMessage == "AbortMessage");
            Assert.False(new RowCountTask("etl.Log")
            {
                DisableLogging = true
            }.Count().HasRows);
            Assert.Equal(1, new RowCountTask("etl.LoadProcess", "IsRunning=0 and WasSuccessful=0 and WasAborted=1")
            {
                DisableLogging = true
            }.Count().Rows);
        }
        public void ReadLastAbortedProcess()
        {
            //Arrange
            ControlFlow.DefaultDbConnection = SqlConnection;
            CreateLoadProcessTableTask.Create("test_lpkey_lastabort");
            StartLoadProcessTask.Start("Test process 10");
            Task.Delay(10).Wait(); //Sql Server datetime is not that exact
            EndLoadProcessTask.End();
            Task.Delay(10).Wait();
            StartLoadProcessTask.Start("Test process 11");
            Task.Delay(10).Wait(); //Sql Server datetime is not that exact
            AbortLoadProcessTask.Abort();
            StartLoadProcessTask.Start("Test process 12");
            Task.Delay(10).Wait(); //Sql Server datetime is not that exact
            EndLoadProcessTask.End();

            //Act
            var lp = ReadLoadProcessTableTask.ReadWithOption(ReadOptions.ReadLastAborted);

            //Assert
            Assert.True(lp.IsFinished);
            Assert.True(lp.WasAborted);
            Assert.False(lp.WasSuccessful);
            Assert.Equal("Test process 11", lp.ProcessName);

            //Cleanup
            DropTableTask.Drop(SqlConnection, "test_lpkey_lastabort");
        }
示例#4
0
        public void TestReadLastAbortedProcess()
        {
            StartLoadProcessTask.Start("Test process 10");
            Task.Delay(10).Wait(); //Sql Server datetime is not that exact
            EndLoadProcessTask.End();
            Task.Delay(10).Wait();
            StartLoadProcessTask.Start("Test process 11");
            Task.Delay(10).Wait(); //Sql Server datetime is not that exact
            AbortLoadProcessTask.Abort();
            StartLoadProcessTask.Start("Test process 12");
            Task.Delay(10).Wait(); //Sql Server datetime is not that exact
            EndLoadProcessTask.End();

            var lp = ReadLoadProcessTableTask.ReadWithOption(ReadOptions.ReadLastAborted);

            Assert.IsTrue(lp.IsFinished);
            Assert.IsTrue(lp.WasAborted);
            Assert.IsFalse(lp.WasSuccessful);
            Assert.AreEqual("Test process 11", lp.ProcessName);
            Assert.AreEqual(3, new SqlTask("Check if finished processes exists", $"select count(*) from etl.LoadProcess where IsFinished=1")
            {
                DisableLogging = true
            }.ExecuteScalar <int>());
            Assert.AreEqual(2, new SqlTask("Check if successful processes exists", $"select count(*) from etl.LoadProcess where WasSuccessful=1")
            {
                DisableLogging = true
            }.ExecuteScalar <int>());
            Assert.AreEqual(1, new SqlTask("Check if aborted processes exists", $"select count(*) from etl.LoadProcess where WasAborted=1")
            {
                DisableLogging = true
            }.ExecuteScalar <int>());
        }
示例#5
0
        public void TestAbortLoadProcessTask()
        {
            StartLoadProcessTask.Start("Test process 3");
            Assert.IsTrue(ControlFlow.CurrentLoadProcess.IsRunning == true);
            DateTime beforeTask = DateTime.Now;

            Task.Delay(10).Wait(); //Sql Server datetime is not that exact

            AbortLoadProcessTask.Abort(ControlFlow.CurrentLoadProcess.LoadProcessKey, "AbortMessage");

            DateTime afterTask = DateTime.Now;

            Assert.IsTrue(ControlFlow.CurrentLoadProcess.IsRunning == false);
            Assert.IsTrue(ControlFlow.CurrentLoadProcess.WasAborted == true);
            Assert.IsTrue(ControlFlow.CurrentLoadProcess.EndDate <= afterTask && ControlFlow.CurrentLoadProcess.EndDate >= beforeTask);
            Assert.IsTrue(ControlFlow.CurrentLoadProcess.AbortMessage == "AbortMessage");
            Assert.IsFalse(new SqlTask("Check if logging was disabled for end process task", "select count(*) from etl.Log")
            {
                DisableLogging = true
            }.ExecuteScalarAsBool());
            Assert.AreEqual(1, new SqlTask("Check if load process entry is correct", $"select count(*) from etl.LoadProcess where IsRunning=0 and WasSuccessful=0 and WasAborted=1")
            {
                DisableLogging = true
            }.ExecuteScalar <int>());
        }
        public void AbortLoadProcess()
        {
            //Arrange
            CreateLoadProcessTableTask.Create(SqlConnection, "test_lp_abort");

            StartLoadProcessTask.Start(SqlConnection, "Test process 3");
            Assert.True(ControlFlow.CurrentLoadProcess.IsRunning == true);

            //Act
            AbortLoadProcessTask.Abort(SqlConnection, ControlFlow.CurrentLoadProcess.Id);

            //Assert
            Assert.True(ControlFlow.CurrentLoadProcess.IsRunning == false);
            Assert.True(ControlFlow.CurrentLoadProcess.WasAborted == true);
            Assert.True(ControlFlow.CurrentLoadProcess.AbortMessage == null);
            Assert.Equal(1, RowCountTask.Count(SqlConnection, "test_lp_abort"
                                               , "is_running=0 and was_successful=0 and was_aborted=1"));

            //Cleanup
            DropTableTask.Drop(SqlConnection, "test_lp_abort");
        }