Register backup to task service for execution (#381)

* Create backup task for execution

* Register backup to task service

* Fix backup task service

* Fix async methods

* Add backup unit test

* Add cancellation token to task service and fix other PR comments

* Add SR and fix other pr comments

* Add comments to methods

* Fixed backup cancel test and casing

* Change sleep time in test
This commit is contained in:
Kate Shin
2017-06-16 14:01:09 -07:00
committed by GitHub
parent 0c7533b5b9
commit a646d627c6
22 changed files with 14122 additions and 7482 deletions

View File

@@ -3,14 +3,61 @@
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.SqlTools.ServiceLayer.DisasterRecovery;
using Microsoft.SqlTools.ServiceLayer.TaskServices;
using Moq;
using System.Threading.Tasks;
using Xunit;
namespace Microsoft.SqlTools.ServiceLayer.UnitTests.DisasterRecovery
{
public class BackupTests
{
private TaskMetadata taskMetaData = new TaskMetadata
{
ServerName = "server name",
DatabaseName = "database name",
Name = "Backup Database",
IsCancelable = true
};
[Fact]
public async Task VerifyCreateAndRunningBackupTask()
{
using (SqlTaskManager manager = new SqlTaskManager())
{
var mockUtility = new Mock<IBackupUtilities>();
DisasterRecoveryService service = new DisasterRecoveryService(mockUtility.Object);
SqlTask sqlTask = manager.CreateTask(this.taskMetaData, service.BackupTask);
Assert.NotNull(sqlTask);
Task taskToVerify = sqlTask.RunAsync().ContinueWith(Task =>
{
Assert.Equal(SqlTaskStatus.Succeeded, sqlTask.TaskStatus);
});
await taskToVerify;
}
}
[Fact]
public async Task CancelBackupTask()
{
using (SqlTaskManager manager = new SqlTaskManager())
{
IBackupUtilities backupUtility = new BackupUtilitiesStub();
DisasterRecoveryService service = new DisasterRecoveryService(backupUtility);
SqlTask sqlTask = manager.CreateTask(this.taskMetaData, service.BackupTask);
Assert.NotNull(sqlTask);
Task taskToVerify = sqlTask.RunAsync().ContinueWith(Task =>
{
Assert.Equal(SqlTaskStatus.Canceled, sqlTask.TaskStatus);
Assert.Equal(sqlTask.IsCancelRequested, true);
manager.Reset();
});
manager.CancelTask(sqlTask.TaskId);
await taskToVerify;
}
}
}
}