mirror of
https://github.com/ckaczor/sqltoolsservice.git
synced 2026-02-16 02:48:36 -05:00
3278 Kusto Unit Tests - Part 1 (#1057)
* 3278 Added unit tests in MetadataFactoryTests and Microsoft.Kusto.ServiceLayer.UnitTests project * 3278 Removed todo and changed unit test to validate megabytes * 3278 Added file and unit tests in AutoCompleteHelperTests.cs * 3278 Removed unused functions from Kusto > ScriptAsScriptingOperation * 3278 Added unit tests for DataSourceFactory * 3278 Refactored AdminService to pass in ConnectionService rather than through instance variable. Added unit test for AdminServiceTests * 3278 Refactored DataSourceFactory to not have static functions for future unit tests * 3278 Re-added properties that were flagged as unused but are being used by ADS in ReliableDataSourceConnection.cs * 3278 Re-added properties that were flagged as unused but are being used by ADS in ReliableDataSourceConnection.cs * adding pipeline to execute tests (#1062) * 3278 Converted GetDefaultAutoComplete and GetDefaultSemanticMarkers to static functions in DataSourceFactory. Removed unused constructor in ScriptFile. Added positive unit tests for both functions * undoing release version bump * adding additional configs * adressing feedback * Correcting path in csproj Co-authored-by: Jorge Berumen <52225468+joberume@users.noreply.github.com> Co-authored-by: joberume <jberumen3@miners.utep.edu>
This commit is contained in:
@@ -21,50 +21,28 @@ namespace Microsoft.Kusto.ServiceLayer.Admin
|
||||
/// </summary>
|
||||
public class AdminService
|
||||
{
|
||||
private static readonly Lazy<AdminService> instance = new Lazy<AdminService>(() => new AdminService());
|
||||
private static readonly Lazy<AdminService> _instance = new Lazy<AdminService>(() => new AdminService());
|
||||
|
||||
private static ConnectionService connectionService = null;
|
||||
|
||||
/// <summary>
|
||||
/// Internal for testing purposes only
|
||||
/// </summary>
|
||||
internal static ConnectionService ConnectionServiceInstance
|
||||
{
|
||||
get
|
||||
{
|
||||
if (AdminService.connectionService == null)
|
||||
{
|
||||
AdminService.connectionService = ConnectionService.Instance;
|
||||
}
|
||||
return AdminService.connectionService;
|
||||
}
|
||||
|
||||
set
|
||||
{
|
||||
AdminService.connectionService = value;
|
||||
}
|
||||
}
|
||||
private static ConnectionService _connectionService;
|
||||
|
||||
/// <summary>
|
||||
/// Gets the singleton instance object
|
||||
/// </summary>
|
||||
public static AdminService Instance
|
||||
{
|
||||
get { return instance.Value; }
|
||||
}
|
||||
public static AdminService Instance => _instance.Value;
|
||||
|
||||
/// <summary>
|
||||
/// Initializes the service instance
|
||||
/// </summary>
|
||||
public void InitializeService(ServiceHost serviceHost)
|
||||
public void InitializeService(ServiceHost serviceHost, ConnectionService connectionService)
|
||||
{
|
||||
serviceHost.SetRequestHandler(GetDatabaseInfoRequest.Type, HandleGetDatabaseInfoRequest);
|
||||
_connectionService = connectionService;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Handle get database info request
|
||||
/// </summary>
|
||||
internal async Task HandleGetDatabaseInfoRequest(
|
||||
private async Task HandleGetDatabaseInfoRequest(
|
||||
GetDatabaseInfoParams databaseParams,
|
||||
RequestContext<GetDatabaseInfoResponse> requestContext)
|
||||
{
|
||||
@@ -72,10 +50,7 @@ namespace Microsoft.Kusto.ServiceLayer.Admin
|
||||
{
|
||||
Func<Task> requestHandler = async () =>
|
||||
{
|
||||
ConnectionInfo connInfo;
|
||||
AdminService.ConnectionServiceInstance.TryFindConnection(
|
||||
databaseParams.OwnerUri,
|
||||
out connInfo);
|
||||
_connectionService.TryFindConnection(databaseParams.OwnerUri, out var connInfo);
|
||||
DatabaseInfo info = null;
|
||||
|
||||
if (connInfo != null)
|
||||
@@ -100,29 +75,31 @@ namespace Microsoft.Kusto.ServiceLayer.Admin
|
||||
await requestContext.SendError(ex.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Return database info for a specific database
|
||||
/// </summary>
|
||||
/// <param name="connInfo"></param>
|
||||
/// <returns></returns>
|
||||
internal DatabaseInfo GetDatabaseInfo(ConnectionInfo connInfo)
|
||||
public DatabaseInfo GetDatabaseInfo(ConnectionInfo connInfo)
|
||||
{
|
||||
if(!string.IsNullOrEmpty(connInfo.ConnectionDetails.DatabaseName)){
|
||||
ReliableDataSourceConnection connection;
|
||||
connInfo.TryGetConnection("Default", out connection);
|
||||
IDataSource dataSource = connection.GetUnderlyingConnection();
|
||||
DataSourceObjectMetadata objectMetadata = MetadataFactory.CreateClusterMetadata(connInfo.ConnectionDetails.ServerName);
|
||||
|
||||
List<DataSourceObjectMetadata> metadata = dataSource.GetChildObjects(objectMetadata, true).ToList();
|
||||
var databaseMetadata = metadata.Where(o => o.Name == connInfo.ConnectionDetails.DatabaseName);
|
||||
|
||||
List<DatabaseInfo> databaseInfo = MetadataFactory.ConvertToDatabaseInfo(databaseMetadata);
|
||||
|
||||
return databaseInfo.ElementAtOrDefault(0);
|
||||
if (string.IsNullOrEmpty(connInfo.ConnectionDetails.DatabaseName))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
ReliableDataSourceConnection connection;
|
||||
connInfo.TryGetConnection("Default", out connection);
|
||||
IDataSource dataSource = connection.GetUnderlyingConnection();
|
||||
DataSourceObjectMetadata objectMetadata =
|
||||
MetadataFactory.CreateClusterMetadata(connInfo.ConnectionDetails.ServerName);
|
||||
|
||||
return null;
|
||||
List<DataSourceObjectMetadata> metadata = dataSource.GetChildObjects(objectMetadata, true).ToList();
|
||||
var databaseMetadata = metadata.Where(o => o.Name == connInfo.ConnectionDetails.DatabaseName);
|
||||
|
||||
List<DatabaseInfo> databaseInfo = MetadataFactory.ConvertToDatabaseInfo(databaseMetadata);
|
||||
|
||||
return databaseInfo.ElementAtOrDefault(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user