private static async Task AwaitExecution(QueryExecutionService service, QueryExecuteParams qeParams, RequestContext <QueryExecuteResult> requestContext) { await service.HandleExecuteRequest(qeParams, requestContext); await service.ActiveQueries[qeParams.OwnerUri].ExecutionTask; }
public static async Task AwaitExecution(QueryExecutionService service, ExecuteDocumentSelectionParams qeParams, HostingProtocol.RequestContext <ExecuteRequestResult> requestContext) { await service.HandleExecuteRequest(qeParams, requestContext); if (service.ActiveQueries.ContainsKey(qeParams.OwnerUri) && service.ActiveQueries[qeParams.OwnerUri].ExecutionTask != null) { await service.ActiveQueries[qeParams.OwnerUri].ExecutionTask; } }
public static async Task AwaitExecution(QueryExecutionService service, QueryExecuteParams qeParams, RequestContext <QueryExecuteResult> requestContext) { await service.HandleExecuteRequest(qeParams, requestContext); if (service.ActiveQueries.ContainsKey(qeParams.OwnerUri) && service.ActiveQueries[qeParams.OwnerUri].ExecutionTask != null) { await service.ActiveQueries[qeParams.OwnerUri].ExecutionTask; } }
public async Task SaveResultAsCsvFailure() { // Given: // ... A working query and workspace service WorkspaceService <SqlToolsSettings> ws = Common.GetPrimedWorkspaceService(Common.StandardQuery); Dictionary <string, byte[]> storage; QueryExecutionService qes = Common.GetPrimedExecutionService(Common.ExecutionPlanTestDataSet, true, false, ws, out storage); // ... The query execution service has executed a query with results var executeParams = new ExecuteDocumentSelectionParams { QuerySelection = null, OwnerUri = Common.OwnerUri }; var executeRequest = RequestContextMocks.Create <ExecuteRequestResult>(null); await qes.HandleExecuteRequest(executeParams, executeRequest.Object); await qes.ActiveQueries[Common.OwnerUri].ExecutionTask; // If: I attempt to save a result set and get it to throw because of invalid column selection SaveResultsAsCsvRequestParams saveParams = new SaveResultsAsCsvRequestParams { BatchIndex = 0, FilePath = "qqq", OwnerUri = Common.OwnerUri, ResultSetIndex = 0, ColumnStartIndex = -1, ColumnEndIndex = 100, RowStartIndex = 0, RowEndIndex = 5 }; qes.CsvFileFactory = GetCsvStreamFactory(storage, saveParams); object error = null; var requestContext = RequestContextMocks.Create <SaveResultRequestResult>(null) .AddErrorHandling(e => error = e); await qes.HandleSaveResultsAsCsvRequest(saveParams, requestContext.Object); await qes.ActiveQueries[saveParams.OwnerUri] .Batches[saveParams.BatchIndex] .ResultSets[saveParams.ResultSetIndex] .SaveTasks[saveParams.FilePath]; // Then: // ... An error event should have been fired // ... No success event should have been fired VerifyResponseCalls(requestContext, false, true); Assert.IsType <SaveResultRequestError>(error); Assert.NotNull(error); Assert.NotNull(((SaveResultRequestError)error).message); }
public async Task SaveResultAsExcelFailure() { // Given: // ... A working query and workspace service WorkspaceService <SqlToolsSettings> ws = Common.GetPrimedWorkspaceService(Constants.StandardQuery); ConcurrentDictionary <string, byte[]> storage; QueryExecutionService qes = Common.GetPrimedExecutionService(Common.StandardTestDataSet, true, false, false, ws, out storage); // ... The query execution service has executed a query with results var executeParams = new ExecuteDocumentSelectionParams { QuerySelection = null, OwnerUri = Constants.OwnerUri }; var executeRequest = RequestContextMocks.Create <ExecuteRequestResult>(null); await qes.HandleExecuteRequest(executeParams, executeRequest.Object); await qes.WorkTask; await qes.ActiveQueries[Constants.OwnerUri].ExecutionTask; // If: I attempt to save a result set and get it to throw because of invalid column selection SaveResultsAsExcelRequestParams saveParams = new SaveResultsAsExcelRequestParams { BatchIndex = 0, FilePath = "qqq", OwnerUri = Constants.OwnerUri, ResultSetIndex = 0, ColumnStartIndex = -1, ColumnEndIndex = 100, RowStartIndex = 0, RowEndIndex = 5 }; qes.JsonFileFactory = GetExcelStreamFactory(storage, saveParams); var efv = new EventFlowValidator <SaveResultRequestResult>() .AddStandardErrorValidation() .Complete(); await qes.HandleSaveResultsAsExcelRequest(saveParams, efv.Object); await qes.ActiveQueries[saveParams.OwnerUri] .Batches[saveParams.BatchIndex] .ResultSets[saveParams.ResultSetIndex] .SaveTasks[saveParams.FilePath]; // Then: // ... An error event should have been fired // ... No success event should have been fired efv.Validate(); }
public async Task SaveResultsAsXmlSuccess() { // Given: // ... A working query and workspace service WorkspaceService <SqlToolsSettings> ws = Common.GetPrimedWorkspaceService(Constants.StandardQuery); ConcurrentDictionary <string, byte[]> storage; QueryExecutionService qes = Common.GetPrimedExecutionService(Common.StandardTestDataSet, true, false, false, ws, out storage); // ... The query execution service has executed a query with results var executeParams = new ExecuteDocumentSelectionParams { QuerySelection = null, OwnerUri = Constants.OwnerUri }; var executeRequest = RequestContextMocks.Create <ExecuteRequestResult>(null); await qes.HandleExecuteRequest(executeParams, executeRequest.Object); await qes.WorkTask; await qes.ActiveQueries[Constants.OwnerUri].ExecutionTask; // If: I attempt to save a result set from a query SaveResultsAsXmlRequestParams saveParams = new SaveResultsAsXmlRequestParams { OwnerUri = Constants.OwnerUri, FilePath = "qqq", BatchIndex = 0, ResultSetIndex = 0, Formatted = true }; qes.XmlFileFactory = GetXmlStreamFactory(storage, saveParams); var efv = new EventFlowValidator <SaveResultRequestResult>() .AddStandardResultValidator() .Complete(); await qes.HandleSaveResultsAsXmlRequest(saveParams, efv.Object); await qes.ActiveQueries[saveParams.OwnerUri] .Batches[saveParams.BatchIndex] .ResultSets[saveParams.ResultSetIndex] .SaveTasks[saveParams.FilePath]; // Then: // ... I should have a successful result // ... There should not have been an error efv.Validate(); }
public async Task SaveResultsAsJsonSuccess() { // Given: // ... A working query and workspace service WorkspaceService <SqlToolsSettings> ws = Common.GetPrimedWorkspaceService(Common.StandardQuery); Dictionary <string, byte[]> storage; QueryExecutionService qes = Common.GetPrimedExecutionService(Common.StandardTestDataSet, true, false, ws, out storage); // ... The query execution service has executed a query with results var executeParams = new ExecuteDocumentSelectionParams { QuerySelection = null, OwnerUri = Common.OwnerUri }; var executeRequest = RequestContextMocks.Create <ExecuteRequestResult>(null); await qes.HandleExecuteRequest(executeParams, executeRequest.Object); await qes.ActiveQueries[Common.OwnerUri].ExecutionTask; // If: I attempt to save a result set from a query SaveResultsAsJsonRequestParams saveParams = new SaveResultsAsJsonRequestParams { OwnerUri = Common.OwnerUri, FilePath = "qqq", BatchIndex = 0, ResultSetIndex = 0 }; qes.JsonFileFactory = GetJsonStreamFactory(storage, saveParams); SaveResultRequestResult result = null; var requestContext = RequestContextMocks.Create <SaveResultRequestResult>(r => result = r); await qes.HandleSaveResultsAsJsonRequest(saveParams, requestContext.Object); await qes.ActiveQueries[saveParams.OwnerUri] .Batches[saveParams.BatchIndex] .ResultSets[saveParams.ResultSetIndex] .SaveTasks[saveParams.FilePath]; // Then: // ... I should have a successful result // ... There should not have been an error VerifyResponseCalls(requestContext, true, false); Assert.NotNull(result); Assert.Null(result.Messages); }