mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-01-15 01:25:40 -05:00
* 3490 Injected OwnerUri into KustClient to store for token refreshing. Removed UpdateAzureToken from IDataSource, DataSourceBase, and KustoDataSource. Removed logic for retrying queries related to Unauthorized datasource in Batch and Query. Changed ScriptingService, ScriptingScriptOperation, and ScriptAsScriptingOperation to take DataSource in the constructor instead of datasourcefactory. Changed ScriptingService to inject ConnectionService through InitializeService function. * 3490 Removed Catch block for DataSourceUnauthorizedException in ExecuteControlCommandAsync * 3490 Removed OwnerUri from KustoClient and used azureAccountToken to refresh token in ConnectionService. * 3490 Reverted unneeded changes. * 3490 Split ExecuteQuery in KustoClient to execute first query then remaining queries after * 3490 Passed OwnerUri down into KustoClient to refresh token. * 3490 Removed DataSourceUnauthorizedException. Refactored ExecuteQuery to catch aggregate exception. Added RefreshAzureToken logic to ExecuteControlCommand * 3490 Added logic to update ReliableDataSourceConnection azure token within ConnectionInfo. * 3490 Add retry logic to ExecuteQuery and ExecuteControlCommand in KustoClient
89 lines
4.1 KiB
C#
89 lines
4.1 KiB
C#
using System;
|
|
using Microsoft.Kusto.ServiceLayer.Connection;
|
|
using Microsoft.Kusto.ServiceLayer.Connection.Contracts;
|
|
using Microsoft.Kusto.ServiceLayer.DataSource;
|
|
using Microsoft.SqlTools.ServiceLayer.Connection.ReliableConnection;
|
|
using Moq;
|
|
using NUnit.Framework;
|
|
|
|
namespace Microsoft.Kusto.ServiceLayer.UnitTests.Connection
|
|
{
|
|
public class ConnectionInfoTests
|
|
{
|
|
[TestCase("")]
|
|
[TestCase(null)]
|
|
public void AddConnection_Throws_Exception_For_Invalid_ConnectionType(string connectionType)
|
|
{
|
|
var datasourceFactoryMock = new Mock<IDataSourceConnectionFactory>();
|
|
var connectionInfo = new ConnectionInfo(datasourceFactoryMock.Object, "", new ConnectionDetails());
|
|
Assert.Throws<ArgumentException>(() => connectionInfo.AddConnection(connectionType, null));
|
|
}
|
|
|
|
[TestCase("")]
|
|
[TestCase(null)]
|
|
public void GetConnection_Throws_Exception_For_Invalid_ConnectionType(string connectionType)
|
|
{
|
|
var datasourceFactoryMock = new Mock<IDataSourceConnectionFactory>();
|
|
var connectionInfo = new ConnectionInfo(datasourceFactoryMock.Object, "", new ConnectionDetails());
|
|
Assert.Throws<ArgumentException>(() => connectionInfo.TryGetConnection(connectionType, out var connection));
|
|
}
|
|
|
|
[Test]
|
|
public void AddConnection_And_GetConnection_AddAndGet()
|
|
{
|
|
var connectionFactoryMock = new Mock<IDataSourceConnectionFactory>();
|
|
var connectionInfo = new ConnectionInfo(connectionFactoryMock.Object, "", new ConnectionDetails());
|
|
|
|
var dataSourceFactoryMock = new Mock<IDataSourceFactory>();
|
|
var reliableDataSource = new ReliableDataSourceConnection("", RetryPolicyFactory.NoRetryPolicy,
|
|
RetryPolicyFactory.NoRetryPolicy, "", dataSourceFactoryMock.Object, "");
|
|
connectionInfo.AddConnection("ConnectionType", reliableDataSource);
|
|
|
|
connectionInfo.TryGetConnection("ConnectionType", out var connection);
|
|
Assert.AreEqual(reliableDataSource, connection);
|
|
}
|
|
|
|
[TestCase("")]
|
|
[TestCase(null)]
|
|
public void RemoveConnection_Throws_Exception_For_Invalid_ConnectionType(string connectionType)
|
|
{
|
|
var datasourceFactoryMock = new Mock<IDataSourceConnectionFactory>();
|
|
var connectionInfo = new ConnectionInfo(datasourceFactoryMock.Object, "", new ConnectionDetails());
|
|
Assert.Throws<ArgumentException>(() => connectionInfo.RemoveConnection(connectionType));
|
|
}
|
|
|
|
[Test]
|
|
public void RemoveConnection_Removes_Connection()
|
|
{
|
|
var connectionFactoryMock = new Mock<IDataSourceConnectionFactory>();
|
|
var connectionInfo = new ConnectionInfo(connectionFactoryMock.Object, "", new ConnectionDetails());
|
|
|
|
var dataSourceFactoryMock = new Mock<IDataSourceFactory>();
|
|
var reliableDataSource = new ReliableDataSourceConnection("", RetryPolicyFactory.NoRetryPolicy,
|
|
RetryPolicyFactory.NoRetryPolicy, "", dataSourceFactoryMock.Object, "");
|
|
connectionInfo.AddConnection("ConnectionType", reliableDataSource);
|
|
|
|
connectionInfo.RemoveConnection("ConnectionType");
|
|
|
|
connectionInfo.TryGetConnection("ConnectionType", out var connection);
|
|
Assert.IsNull(connection);
|
|
}
|
|
|
|
[Test]
|
|
public void RemoveAllConnections_RemovesAllConnections()
|
|
{
|
|
var connectionFactoryMock = new Mock<IDataSourceConnectionFactory>();
|
|
var connectionInfo = new ConnectionInfo(connectionFactoryMock.Object, "", new ConnectionDetails());
|
|
|
|
var dataSourceFactoryMock = new Mock<IDataSourceFactory>();
|
|
var reliableDataSource = new ReliableDataSourceConnection("", RetryPolicyFactory.NoRetryPolicy,
|
|
RetryPolicyFactory.NoRetryPolicy, "", dataSourceFactoryMock.Object, "");
|
|
connectionInfo.AddConnection("ConnectionType", reliableDataSource);
|
|
|
|
connectionInfo.RemoveAllConnections();
|
|
|
|
connectionInfo.TryGetConnection("ConnectionType", out var connection);
|
|
Assert.IsNull(connection);
|
|
}
|
|
}
|
|
} |