mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-14 17:23:27 -05:00
Export headers in an empty result set (#1434)
* Minimal changes to make headers appear on empty result sets * Columns for everyone! * Updating tests - some don't pass yet * Adding some more tests to verify the changes for column/row selection * null default columns * Updates to comments as per PR comments
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
//
|
||||
//
|
||||
// Copyright (c) Microsoft. All rights reserved.
|
||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||
//
|
||||
@@ -159,7 +159,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
// Setup: Create a new result set with valid db data reader
|
||||
var fileStreamFactory = MemoryFileSystem.GetFileStreamFactory();
|
||||
ResultSet resultSet = new ResultSet(Common.Ordinal, Common.Ordinal, fileStreamFactory);
|
||||
Assert.That(() => testMethod(resultSet), Throws.InstanceOf<Exception>(), "I have a result set that has not been read. I attempt to call a method on it. It should throw an exception");
|
||||
Assert.Catch(() => testMethod(resultSet), "I have a result set that has not been read. I attempt to call a method on it. It should throw an exception");
|
||||
}
|
||||
|
||||
public static IEnumerable<object[]> CallMethodWithoutReadingData
|
||||
@@ -200,7 +200,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
$"Complete Check failed.\r\n\t\t resultSummariesFromUpdatedCallback:{string.Join("\r\n\t\t\t", resultSummariesFromUpdatedCallback)}");
|
||||
|
||||
|
||||
// ... The no of rows in the final updateResultSet/AvailableResultSet should be equal to that in the Complete Result Set.
|
||||
// ... The no of rows in the final updateResultSet/AvailableResultSet should be equal to that in the Complete Result Set.
|
||||
//
|
||||
Assert.True(resultSummaryFromCompleteCallback.RowCount == resultSummariesFromUpdatedCallback.Last().RowCount,
|
||||
$"The row counts of the complete Result Set and Final update result set do not match"
|
||||
@@ -310,7 +310,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
|
||||
// If:
|
||||
// ... I attempt to read back the results
|
||||
// Then:
|
||||
// Then:
|
||||
// ... I should only get one row
|
||||
//
|
||||
var task = resultSet.GetSubset(0, 10);
|
||||
@@ -320,7 +320,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
}
|
||||
|
||||
[Test, Sequential]
|
||||
public async Task GetSubsetInvalidParameters([Values(-1,20,0)] int startRow,
|
||||
public async Task GetSubsetInvalidParameters([Values(-1,20,0)] int startRow,
|
||||
[Values(0,0,-1)] int rowCount)
|
||||
{
|
||||
// If:
|
||||
@@ -338,7 +338,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task GetSubsetSuccess([Values(0,1)]int startRow,
|
||||
public async Task GetSubsetSuccess([Values(0,1)]int startRow,
|
||||
[Values(3,20)] int rowCount)
|
||||
{
|
||||
// If:
|
||||
@@ -376,7 +376,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
ResultSet resultSet = new ResultSet(Common.Ordinal, Common.Ordinal, fileStreamFactory);
|
||||
await resultSet.ReadResultToEnd(mockReader, CancellationToken.None);
|
||||
|
||||
Assert.That(() => actionToPerform(resultSet), Throws.InstanceOf<Exception>(), "Attempting to read an invalid row should fail");
|
||||
Assert.Catch<Exception>(() => actionToPerform(resultSet), "Attempting to read an invalid row should fail");
|
||||
}
|
||||
|
||||
public static IEnumerable<object[]> RowInvalidParameterData
|
||||
@@ -423,7 +423,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
[Test]
|
||||
public async Task AddRowNoRows()
|
||||
{
|
||||
// Setup:
|
||||
// Setup:
|
||||
// ... Create a standard result set with standard data
|
||||
var fileFactory = MemoryFileSystem.GetFileStreamFactory();
|
||||
var mockReader = GetReader(Common.StandardTestDataSet, false, Constants.StandardQuery);
|
||||
@@ -434,7 +434,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
var emptyReader = GetReader(new[] {new TestResultSet(5, 0)}, false, Constants.StandardQuery);
|
||||
|
||||
// If: I add a row with a reader that has no rows
|
||||
// Then:
|
||||
// Then:
|
||||
// ... I should get an exception
|
||||
Assert.ThrowsAsync<InvalidOperationException>(() => resultSet.AddRow(emptyReader));
|
||||
|
||||
@@ -454,17 +454,17 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
|
||||
// ... Create a mock reader that will throw on read
|
||||
var throwingReader = GetReader(new[] {new TestResultSet(5, 0)}, true, Constants.StandardQuery);
|
||||
|
||||
Assert.ThrowsAsync<TestDbException>(() => resultSet.AddRow(throwingReader), "I add a row with a reader that throws on read. I should get an exception");
|
||||
|
||||
// ... The row count should not have changed
|
||||
Assert.AreEqual(Common.StandardRows, resultSet.RowCount);
|
||||
|
||||
Assert.ThrowsAsync<TestDbException>(() => resultSet.AddRow(throwingReader), "I add a row with a reader that throws on read. I should get an exception");
|
||||
|
||||
// ... The row count should not have changed
|
||||
Assert.AreEqual(Common.StandardRows, resultSet.RowCount);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task AddRowSuccess()
|
||||
{
|
||||
// Setup:
|
||||
// Setup:
|
||||
// ... Create a standard result set with standard data
|
||||
var fileFactory = MemoryFileSystem.GetFileStreamFactory();
|
||||
var mockReader = GetReader(Common.StandardTestDataSet, false, Constants.StandardQuery);
|
||||
@@ -490,7 +490,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
[Test]
|
||||
public async Task UpdateRowNoRows()
|
||||
{
|
||||
// Setup:
|
||||
// Setup:
|
||||
// ... Create a standard result set with standard data
|
||||
var fileFactory = MemoryFileSystem.GetFileStreamFactory();
|
||||
var mockReader = GetReader(Common.StandardTestDataSet, false, Constants.StandardQuery);
|
||||
@@ -501,7 +501,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
var emptyReader = GetReader(new[] { new TestResultSet(5, 0) }, false, Constants.StandardQuery);
|
||||
|
||||
// If: I add a row with a reader that has no rows
|
||||
// Then:
|
||||
// Then:
|
||||
// ... I should get an exception
|
||||
Assert.ThrowsAsync<InvalidOperationException>(() => resultSet.UpdateRow(0, emptyReader));
|
||||
|
||||
@@ -512,7 +512,7 @@ namespace Microsoft.SqlTools.ServiceLayer.UnitTests.QueryExecution.Execution
|
||||
[Test]
|
||||
public async Task UpdateRowSuccess()
|
||||
{
|
||||
// Setup:
|
||||
// Setup:
|
||||
// ... Create a standard result set with standard data
|
||||
var fileFactory = MemoryFileSystem.GetFileStreamFactory();
|
||||
var mockReader = GetReader(Common.StandardTestDataSet, false, Constants.StandardQuery);
|
||||
|
||||
Reference in New Issue
Block a user