private async Task <bool> ExpandDatabase(TestServiceDriverProvider testService, string sessionId, NodeInfo nodeInfo, TestTimer timer) { if (nodeInfo == null) { return(false); } bool foundNode = nodeInfo.NodePath.Contains("Database") || nodeInfo.NodeType == "Database"; var expandResult = await testService.CalculateRunTime(() => testService.RequestObjectExplorerExpand(new ObjectExplorer.Contracts.ExpandParams { SessionId = sessionId, NodePath = nodeInfo.NodePath }, 50000), foundNode?timer : null); Assert.NotNull(expandResult); Assert.NotNull(expandResult.Nodes); Assert.False(expandResult.Nodes == null, "Nodes are not valid"); if (!foundNode) { foreach (var node in expandResult.Nodes) { if (await ExpandDatabase(testService, sessionId, node, timer)) { return(true); } } return(false); } else { Console.WriteLine("Node Expanded " + nodeInfo.NodePath); return(true); } }
public async Task ConnectOnPremTest() { TestServerType serverType = TestServerType.OnPrem; using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) using (TestServiceDriverProvider testService = new TestServiceDriverProvider()) { const string query = Scripts.TestDbSimpleSelectQuery; testService.WriteToFile(queryTempFile.FilePath, query); DidOpenTextDocumentNotification openParams = new DidOpenTextDocumentNotification { TextDocument = new TextDocumentItem { Uri = queryTempFile.FilePath, LanguageId = "enu", Version = 1, Text = query } }; await testService.RequestOpenDocumentNotification(openParams); Thread.Sleep(500); var connected = await testService.CalculateRunTime(async() => { var connectParams = testService.GetConnectionParameters(serverType, Common.PerfTestDatabaseName); return(await testService.Connect(queryTempFile.FilePath, connectParams)); }, true); Assert.True(connected, "Connection was not successful"); } }
public async Task DisconnectTest() { TestServerType serverType = TestServerType.OnPrem; using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) using (TestServiceDriverProvider testService = new TestServiceDriverProvider()) { await testService.ConnectForQuery(serverType, Scripts.TestDbSimpleSelectQuery, queryTempFile.FilePath, Common.PerfTestDatabaseName); Thread.Sleep(1000); var connected = await testService.CalculateRunTime(() => testService.Disconnect(queryTempFile.FilePath), true); Assert.True(connected); } }
public async Task HoverTestOnPrem() { TestServerType serverType = TestServerType.OnPrem; using (TestServiceDriverProvider testService = new TestServiceDriverProvider()) using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) { const string query = Scripts.TestDbSimpleSelectQuery; await testService.ConnectForQuery(serverType, query, queryTempFile.FilePath, Common.PerfTestDatabaseName); Hover hover = await testService.CalculateRunTime(() => testService.RequestHover(queryTempFile.FilePath, query, 0, Scripts.TestDbComplexSelectQueries.Length + 1), true); Assert.NotNull(hover); await testService.Disconnect(queryTempFile.FilePath); } }
public async Task QueryResultSummaryOnPremTest() { TestServerType serverType = TestServerType.OnPrem; using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) using (TestServiceDriverProvider testService = new TestServiceDriverProvider()) { const string query = Scripts.MasterBasicQuery; await testService.ConnectForQuery(serverType, query, queryTempFile.FilePath, SqlTestDb.MasterDatabaseName); var queryResult = await testService.CalculateRunTime(() => testService.RunQueryAndWaitToComplete(queryTempFile.FilePath, query), true); Assert.NotNull(queryResult); Assert.True(queryResult.BatchSummaries.Any(x => x.ResultSetSummaries.Any(r => r.RowCount > 0))); await testService.Disconnect(queryTempFile.FilePath); } }
private async Task QueryResultSummaryOnPremTest(TestServerType serverType, string query, [CallerMemberName] string testName = "") { await TestServiceDriverProvider.RunTestIterations(async (timer) => { using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) using (TestServiceDriverProvider testService = new TestServiceDriverProvider()) { await testService.ConnectForQuery(serverType, query, queryTempFile.FilePath, SqlTestDb.MasterDatabaseName); testService.WriteToFile(queryTempFile.FilePath, query); var queryResult = await testService.CalculateRunTime( () => testService.RunQueryAndWaitToComplete(queryTempFile.FilePath, 50000), timer); Assert.NotNull(queryResult); Assert.True(queryResult.BatchSummaries.Any(x => x.ResultSetSummaries.Any(r => r.RowCount > 0))); await testService.Disconnect(queryTempFile.FilePath); } }, testName); }
public async Task TestSaveResultsToJsonTest() { TestServerType serverType = TestServerType.OnPrem; using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) using (SelfCleaningTempFile outputTempFile = new SelfCleaningTempFile()) using (TestServiceDriverProvider testService = new TestServiceDriverProvider()) { const string query = Scripts.MasterBasicQuery; // Execute a query await testService.ConnectForQuery(serverType, query, queryTempFile.FilePath, SqlTestDb.MasterDatabaseName); await testService.RunQueryAndWaitToComplete(queryTempFile.FilePath, query); await testService.CalculateRunTime(() => testService.SaveAsJson(queryTempFile.FilePath, outputTempFile.FilePath, 0, 0), true); await testService.Disconnect(queryTempFile.FilePath); } }
private async Task VerifyScriptTable(TestServerType serverType, [CallerMemberName] string testName = "") { await TestServiceDriverProvider.RunTestIterations(async (timer) => { using (TestServiceDriverProvider testService = new TestServiceDriverProvider()) using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) { await testService.ConnectForQuery(serverType, string.Empty, queryTempFile.FilePath, Common.PerfTestDatabaseName); List <ScriptingObject> scriptingObjects = new List <ScriptingObject>() { new ScriptingObject { Schema = "Person", Name = "Address", Type = "Table" } }; ScriptingParams scriptingParams = new ScriptingParams { OwnerUri = queryTempFile.FilePath, Operation = ScriptingOperationType.Create, FilePath = queryTempFile.FilePath, ScriptOptions = new ScriptOptions { ScriptCreateDrop = "ScriptCreate", }, ScriptDestination = "ToEditor", ScriptingObjects = scriptingObjects }; var result = await testService.CalculateRunTime(() => testService.RequestScript(scriptingParams), timer); Assert.NotNull(result); Assert.NotNull(result.Script); Assert.False(string.IsNullOrEmpty(result.Script), "Script result is invalid"); await testService.Disconnect(queryTempFile.FilePath); } }, testName); }
private async Task VerifyCreateSession(TestServerType serverType, [CallerMemberName] string testName = "") { await TestServiceDriverProvider.RunTestIterations(async (timer) => { ConnectParams connectParams = TestServiceProvider.Instance.ConnectionProfileService.GetConnectionParameters(serverType, SqlTestDb.MasterDatabaseName); using (TestServiceDriverProvider testService = new TestServiceDriverProvider()) using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) { var result = await testService.CalculateRunTime(() => testService.RequestObjectExplorerCreateSession(connectParams.Connection), timer); Assert.NotNull(result); Assert.True(result.Success); Assert.False(string.IsNullOrEmpty(result.SessionId), "Session id cannot be empty"); await testService.RequestObjectExplorerCloseSession(new ObjectExplorer.Contracts.CloseSessionParams { SessionId = result.SessionId }); await testService.Disconnect(queryTempFile.FilePath); } }, testName); }
public async Task QueryResultFirstOnPremTest() { TestServerType serverType = TestServerType.OnPrem; using (SelfCleaningTempFile queryTempFile = new SelfCleaningTempFile()) using (TestServiceDriverProvider testService = new TestServiceDriverProvider()) { const string query = Scripts.MasterBasicQuery; await testService.ConnectForQuery(serverType, query, queryTempFile.FilePath, SqlTestDb.MasterDatabaseName); var queryResult = await testService.CalculateRunTime(async() => { await testService.RunQueryAndWaitToComplete(queryTempFile.FilePath, query); return(await testService.ExecuteSubset(queryTempFile.FilePath, 0, 0, 0, 100)); }, true); Assert.NotNull(queryResult); Assert.NotNull(queryResult.ResultSubset); Assert.True(queryResult.ResultSubset.Rows.Any()); await testService.Disconnect(queryTempFile.FilePath); } }