public async Task ToTaskInfoShouldReturnTaskInfo() { SqlTaskStatus expectedStatus = SqlTaskStatus.Succeeded; DatabaseOperationStub operation = new DatabaseOperationStub(); operation.TaskResult = new TaskResult { TaskStatus = expectedStatus }; SqlTask sqlTask = new SqlTask(new TaskMetadata { ServerName = "server name", DatabaseName = "database name" }, operation.FunctionToRun, operation.FunctionToCancel); Task taskToVerify = sqlTask.RunAsync().ContinueWith(task => { var taskInfo = sqlTask.ToTaskInfo(); Assert.Equal(taskInfo.TaskId, sqlTask.TaskId.ToString()); Assert.Equal(taskInfo.ServerName, "server name"); Assert.Equal(taskInfo.DatabaseName, "database name"); }); operation.Stop(); await taskToVerify; }
public async Task VerifyScriptTask() { using (SqlTaskManager manager = new SqlTaskManager()) { DatabaseOperationStub operation = new DatabaseOperationStub(); operation.TaskResult = new TaskResult { TaskStatus = SqlTaskStatus.Succeeded }; SqlTask sqlTask = manager.CreateTask(taskMetaData, operation.FunctionToScript); bool scriptAddedEventRaised = false; string script = null; sqlTask.ScriptAdded += (object sender, TaskEventArgs <TaskScript> e) => { scriptAddedEventRaised = true; script = e.TaskData.Script; }; Assert.NotNull(sqlTask); Task taskToVerify = sqlTask.RunAsync().ContinueWith(task => { Assert.True(scriptAddedEventRaised); Assert.True(!string.IsNullOrEmpty(script)); Assert.True(manager.HasCompletedTasks()); manager.RemoveCompletedTask(sqlTask); }); operation.Stop(); await taskToVerify; } }
public async Task VerifyCreateAndRunningTask() { using (SqlTaskManager manager = new SqlTaskManager()) { bool taskAddedEventRaised = false; manager.TaskAdded += (object sender, TaskEventArgs <SqlTask> e) => { taskAddedEventRaised = true; }; DatabaseOperationStub operation = new DatabaseOperationStub(); operation.TaskResult = new TaskResult { TaskStatus = SqlTaskStatus.Succeeded }; SqlTask sqlTask = manager.CreateTask(taskMetaData, operation.FunctionToRun); Assert.NotNull(sqlTask); Assert.True(taskAddedEventRaised); Assert.False(manager.HasCompletedTasks()); Task taskToVerify = sqlTask.RunAsync().ContinueWith(task => { Assert.True(manager.HasCompletedTasks()); manager.RemoveCompletedTask(sqlTask); }); operation.Stop(); await taskToVerify; } }
public void NewTaskShouldSendNotification() { serviceHostMock.AddEventHandling(TaskCreatedNotification.Type, null); serviceHostMock.AddEventHandling(TaskStatusChangedNotification.Type, null); DatabaseOperationStub operation = new DatabaseOperationStub(); SqlTask sqlTask = service.TaskManager.CreateTask(taskMetaData, operation.FunctionToRun); sqlTask.Run(); serviceHostMock.Verify(x => x.SendEvent(TaskCreatedNotification.Type, It.Is <TaskInfo>(t => t.TaskId == sqlTask.TaskId.ToString() && t.ProviderName == "MSSQL")), Times.Once()); operation.Stop(); Thread.Sleep(2000); serviceHostMock.Verify(x => x.SendEvent(TaskStatusChangedNotification.Type, It.Is <TaskProgressInfo>(t => t.TaskId == sqlTask.TaskId.ToString())), Times.AtLeastOnce()); }
public async Task TaskListTaskShouldReturnAllTasks() { serviceHostMock.AddEventHandling(TaskCreatedNotification.Type, null); serviceHostMock.AddEventHandling(TaskStatusChangedNotification.Type, null); DatabaseOperationStub operation = new DatabaseOperationStub(); SqlTask sqlTask = service.TaskManager.CreateTask(taskMetaData, operation.FunctionToRun); sqlTask.Run(); ListTasksParams listParams = new ListTasksParams { }; await RunAndVerify <ListTasksResponse>( test : (requestContext) => service.HandleListTasksRequest(listParams, requestContext), verify : ((result) => { Assert.True(result.Tasks.Any(x => x.TaskId == sqlTask.TaskId.ToString())); })); operation.Stop(); }
public async Task FailedOperationShouldReturnTheFailedResult() { SqlTaskStatus expectedStatus = SqlTaskStatus.Failed; DatabaseOperationStub operation = new DatabaseOperationStub(); operation.TaskResult = new TaskResult { TaskStatus = expectedStatus }; SqlTask sqlTask = new SqlTask(new TaskMetadata(), operation.FunctionToRun, operation.FunctionToCancel); Assert.Equal(sqlTask.TaskStatus, SqlTaskStatus.NotStarted); Task taskToVerify = sqlTask.RunAsync().ContinueWith(task => { Assert.Equal(sqlTask.TaskStatus, expectedStatus); Assert.Equal(sqlTask.IsCompleted, true); // Assert.True(sqlTask.Duration > 0); }); Assert.Equal(sqlTask.TaskStatus, SqlTaskStatus.InProgress); Thread.Sleep(1000); operation.Stop(); await taskToVerify; }