Files
sqltoolsservice/test/Microsoft.SqlTools.ServiceLayer.UnitTests/TaskServices/DatabaseOperationStub.cs
Leila Lali 05775a6089 Feature/restore db (#403)
* Added service handlers for restore database operations
2017-07-10 17:28:57 -07:00

67 lines
1.8 KiB
C#

//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.SqlTools.ServiceLayer.TaskServices;
namespace Microsoft.SqlTools.ServiceLayer.UnitTests.TaskServices
{
public class DatabaseOperationStub
{
private CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
public void Stop()
{
IsStopped = true;
}
public void FailTheOperation()
{
Failed = true;
}
public TaskResult TaskResult { get; set; }
public bool IsStopped { get; set; }
public bool Failed { get; set; }
public async Task<TaskResult> FunctionToRun(SqlTask sqlTask)
{
return await Task.Factory.StartNew(() =>
{
while (!IsStopped)
{
//Just keep running
if (sqlTask.TaskStatus == SqlTaskStatus.Canceled)
{
break;
}
if (Failed)
{
throw new InvalidOperationException();
}
sqlTask.AddMessage("still running", SqlTaskStatus.InProgress, true);
}
sqlTask.AddMessage("done!", SqlTaskStatus.Succeeded);
return TaskResult;
});
}
public async Task<TaskResult> FunctionToCancel(SqlTask sqlTask)
{
return await Task.Factory.StartNew(() =>
{
return new TaskResult
{
TaskStatus = SqlTaskStatus.Canceled
};
});
}
}
}