private async Task <Mock <RequestContext <DacFxResult> > > ValidateExportCancellation() { var result = GetLiveAutoCompleteTestObjects(); var requestContext = new Mock <RequestContext <DacFxResult> >(); requestContext.Setup(x => x.SendResult(It.IsAny <DacFxResult>())).Returns(Task.FromResult(new object())); SqlTestDb testdb = await SqlTestDb.CreateNewAsync(TestServerType.OnPrem, false, null, null, "DacFxExportTest"); string folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "DacFxTest"); Directory.CreateDirectory(folderPath); var exportParams = new ExportParams { DatabaseName = testdb.DatabaseName, PackageFilePath = Path.Combine(folderPath, string.Format("{0}.bacpac", testdb.DatabaseName)) }; SqlConnection sqlConn = ConnectionService.OpenSqlConnection(result.ConnectionInfo, "Export"); DacFxService service = new DacFxService(); ExportOperation operation = new ExportOperation(exportParams, sqlConn); // set cancellation token to cancel operation.Cancel(); OperationCanceledException expectedException = null; try { service.PerformOperation(operation); } catch (OperationCanceledException canceledException) { expectedException = canceledException; } Assert.NotNull(expectedException); // cleanup testdb.Cleanup(); return(requestContext); }
public async void ExportBacpacCancellationTest() { var result = GetLiveAutoCompleteTestObjects(); SqlTestDb testdb = await SqlTestDb.CreateNewAsync(TestServerType.OnPrem, false, null, null, "DacFxExportTest"); string folderPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "DacFxTest"); Directory.CreateDirectory(folderPath); try { var exportParams = new ExportParams { DatabaseName = testdb.DatabaseName, PackageFilePath = Path.Combine(folderPath, string.Format("{0}.bacpac", testdb.DatabaseName)) }; DacFxService service = new DacFxService(); ExportOperation operation = new ExportOperation(exportParams, result.ConnectionInfo); // set cancellation token to cancel operation.Cancel(); OperationCanceledException expectedException = null; try { service.PerformOperation(operation, TaskExecutionMode.Execute); } catch (OperationCanceledException canceledException) { expectedException = canceledException; } Assert.NotNull(expectedException); } finally { testdb.Cleanup(); } }