private void ValidatePeekTest(string databaseName, string objectName, string objectType, string schemaName, bool shouldReturnValidResult) { // Get live connectionInfo and serverConnection ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(databaseName); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); PeekDefinition.ScriptGetter sqlScriptGetter = null; switch (objectType) { case SynonymTypeName: sqlScriptGetter = peekDefinition.GetSynonymScripts; break; case ScalarValuedFunctionTypeName: sqlScriptGetter = peekDefinition.GetScalarValuedFunctionScripts; objectType = "Function"; break; case TableValuedFunctionTypeName: sqlScriptGetter = peekDefinition.GetTableValuedFunctionScripts; objectType = "Function"; break; case TableTypeName: sqlScriptGetter = peekDefinition.GetTableScripts; break; case ViewTypeName: sqlScriptGetter = peekDefinition.GetViewScripts; break; case StoredProcedureTypeName: sqlScriptGetter = peekDefinition.GetStoredProcedureScripts; break; case UserDefinedDataTypeTypeName: sqlScriptGetter = peekDefinition.GetUserDefinedDataTypeScripts; objectType = "Type"; break; case UserDefinedTableTypeTypeName: sqlScriptGetter = peekDefinition.GetUserDefinedTableTypeScripts; objectType = "Type"; break; } Location[] locations = peekDefinition.GetSqlObjectDefinition(sqlScriptGetter, objectName, schemaName, objectType); if (shouldReturnValidResult) { Assert.NotNull(locations); Cleanup(locations); } else { Assert.Null(locations); } }
public void DeletePeekDefinitionScriptsTest() { PeekDefinition peekDefinition = new PeekDefinition(null, null); var languageService = LanguageService.Instance; Assert.True(Directory.Exists(FileUtilities.PeekDefinitionTempFolder)); languageService.DeletePeekDefinitionScripts(); Assert.False(Directory.Exists(FileUtilities.PeekDefinitionTempFolder)); }
public void GetDefinitionUsingDeclarationItemWithoutConnectionTest() { PeekDefinition peekDefinition = new PeekDefinition(null, null); string objectName = "tableName"; string fullObjectName = "master.dbo.tableName"; DefinitionResult result = peekDefinition.GetDefinitionUsingDeclarationType(DeclarationType.Table, fullObjectName, objectName, null); Assert.NotNull(result); Assert.True(result.IsErrorResult); }
public void GetDefinitionUsingQuickInfoWithoutConnectionTest() { PeekDefinition peekDefinition = new PeekDefinition(null, null); string objectName = "tableName"; string quickInfoText = "table master.dbo.tableName"; DefinitionResult result = peekDefinition.GetDefinitionUsingQuickInfoText(quickInfoText, objectName, null); Assert.NotNull(result); Assert.True(result.IsErrorResult); }
public void GetTokenTypeFromQuickInfoWithIncorrectObjectNameTest() { PeekDefinition peekDefinition = new PeekDefinition(null, null); string objectName = "test"; string quickInfoText = "table master.dbo.tableName"; string result = peekDefinition.GetTokenTypeFromQuickInfo(quickInfoText, objectName, StringComparison.Ordinal); string expected = null; Assert.Equal(expected, result); }
public void GetTokenTypeFromQuickInfoWithValidStringsandIgnoreCaseTest() { PeekDefinition peekDefinition = new PeekDefinition(null, null); string objectName = "tablename"; string quickInfoText = "table master.dbo.tableName"; string result = peekDefinition.GetTokenTypeFromQuickInfo(quickInfoText, objectName, StringComparison.OrdinalIgnoreCase); string expected = "table"; Assert.Equal(expected, result); }
public void GetFullObjectNameFromQuickInfoWithValidStringsTest() { PeekDefinition peekDefinition = new PeekDefinition(null, null); string objectName = "testTable"; string quickInfoText = "table master.dbo.testTable"; string result = peekDefinition.GetFullObjectNameFromQuickInfo(quickInfoText, objectName, StringComparison.Ordinal); string expected = "master.dbo.testTable"; Assert.Equal(expected, result); }
public void DeletePeekDefinitionScriptsWhenFolderDoesNotExistTest() { var languageService = LanguageService.Instance; PeekDefinition peekDefinition = new PeekDefinition(null, null); FileUtilities.SafeDirectoryDelete(FileUtilities.PeekDefinitionTempFolder, true); Assert.False(Directory.Exists(FileUtilities.PeekDefinitionTempFolder)); // Expected not to throw any exception languageService.DeletePeekDefinitionScripts(); }
public void GetSchemaFromDatabaseQualifiedNameWithInvalidNameTest() { PeekDefinition peekDefinition = new PeekDefinition(null, null); string validDatabaseQualifiedName = "x.y.z"; string objectName = "test_table"; string expectedSchemaName = "dbo"; string actualSchemaName = peekDefinition.GetSchemaFromDatabaseQualifiedName(validDatabaseQualifiedName, objectName); Assert.Equal(actualSchemaName, expectedSchemaName); }
public void GetLocationFromFileForValidFilePathTest() { String filePath = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "C:\\test\\script.sql" : "/test/script.sql"; PeekDefinition peekDefinition = new PeekDefinition(null, null); Location[] locations = peekDefinition.GetLocationFromFile(filePath, 0); String expectedFilePath = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? "file:///C:/test/script.sql" : "file:/test/script.sql"; Assert.Equal(locations[0].Uri, expectedFilePath); }
public void GetDefinitionUsingDeclarationTypeWithNonexistentObjectTest() { ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); string objectName = "doesNotExist"; string schemaName = "sys"; DefinitionResult result = peekDefinition.GetDefinitionUsingDeclarationType(DeclarationType.View, "master.sys.objects", objectName, schemaName); Assert.NotNull(result); Assert.True(result.IsErrorResult); }
public void GetStoredProcedureDefinitionFailureTest() { // Get live connectionInfo and serverConnection ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); string objectName = "SP2"; string schemaName = "dbo"; string objectType = "PROCEDURE"; Location[] locations = peekDefinition.GetSqlObjectDefinition(peekDefinition.GetStoredProcedureScripts, objectName, schemaName, objectType); Assert.Null(locations); }
public void GetViewDefinitionInvalidObjectTest() { // Get live connectionInfo and serverConnection ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); string objectName = "objects"; string schemaName = null; string objectType = "VIEW"; Location[] locations = peekDefinition.GetSqlObjectDefinition(peekDefinition.GetViewScripts, objectName, schemaName, objectType); Assert.Null(locations); }
public void GetValidViewDefinitionTest() { ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); string objectName = "objects"; string schemaName = "sys"; string objectType = "VIEW"; Location[] locations = peekDefinition.GetSqlObjectDefinition(peekDefinition.GetViewScripts, objectName, schemaName, objectType); Assert.NotNull(locations); Cleanup(locations); }
public void GetDatabaseWithNoQueryConnectionTest() { ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); DbConnection connection; //Check if query connection is present Assert.False(connInfo.TryGetConnection(ConnectionType.Query, out connection)); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); //Check if database name is the default server connection database name Assert.Equal(peekDefinition.Database.Name, "master"); }
public void GetTableDefinitionInvalidObjectTest() { // Get live connectionInfo and serverConnection ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); string objectName = "test_invalid"; string schemaName = null; string objectType = "TABLE"; // Get locations for invalid table object Location[] locations = peekDefinition.GetSqlObjectDefinition(peekDefinition.GetTableScripts, objectName, schemaName, objectType); Assert.Null(locations); }
public void GetDefinitionWithNoResultsFoundError() { ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); string objectName = "from"; List <Declaration> declarations = new List <Declaration>(); DefinitionResult result = peekDefinition.GetScript(declarations, objectName, null); Assert.NotNull(result); Assert.True(result.IsErrorResult); Assert.Equal(SR.PeekDefinitionNoResultsError, result.Message); }
public void GetStoredProcedureDefinitionWithoutSchemaTest() { // Get live connectionInfo and serverConnection ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); string objectName = "sp_MSrepl_startup"; string schemaName = null; string objectType = "PROCEDURE"; Location[] locations = peekDefinition.GetSqlObjectDefinition(peekDefinition.GetStoredProcedureScripts, objectName, schemaName, objectType); Assert.NotNull(locations); Cleanup(locations); }
public async Task GetUnsupportedDefinitionErrorTest() { ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); string objectName = "objects"; string schemaName = "sys"; // When I try to get definition for 'Collation' DefinitionResult result = peekDefinition.GetDefinitionUsingDeclarationType(DeclarationType.Collation, "master.sys.objects", objectName, schemaName); // Then I expect non null result with error flag set Assert.NotNull(result); Assert.True(result.IsErrorResult); }
public void GetDefinitionUsingQuickInfoTextWithValidObjectTest() { ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); string objectName = "objects"; string schemaName = "sys"; string quickInfoText = "view master.sys.objects"; DefinitionResult result = peekDefinition.GetDefinitionUsingQuickInfoText(quickInfoText, objectName, schemaName); Assert.NotNull(result); Assert.NotNull(result.Locations); Assert.False(result.IsErrorResult); Cleanup(result.Locations); }
public void GetTableDefinitionWithSchemaTest() { // Get live connectionInfo and serverConnection ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); string objectName = "spt_monitor"; string schemaName = "dbo"; string objectType = "TABLE"; // Get locations for valid table object with schema name Location[] locations = peekDefinition.GetSqlObjectDefinition(peekDefinition.GetTableScripts, objectName, schemaName, objectType); Assert.NotNull(locations); Cleanup(locations); }
public void GetDefinitionWithNoResultsFoundError() { ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); string objectName = "from"; Position position = new Position() { Line = 1, Character = 14 }; ScriptParseInfo scriptParseInfo = new ScriptParseInfo() { IsConnected = true }; Mock <IBindingContext> bindingContextMock = new Mock <IBindingContext>(); DefinitionResult result = peekDefinition.GetScript(scriptParseInfo.ParseResult, position, bindingContextMock.Object.MetadataDisplayInfoProvider, objectName, null); Assert.NotNull(result); Assert.True(result.IsErrorResult); Assert.Equal(SR.PeekDefinitionNoResultsError, result.Message); }
public void GetDatabaseWithQueryConnectionTest() { ConnectionInfo connInfo = TestObjects.InitLiveConnectionInfoForDefinition(); ServerConnection serverConnection = TestObjects.InitLiveServerConnectionForDefinition(connInfo); //Mock a query connection object var mockQueryConnection = new Mock <DbConnection> { CallBase = true }; mockQueryConnection.SetupGet(x => x.Database).Returns("testdb"); connInfo.ConnectionTypeToConnectionMap[ConnectionType.Query] = mockQueryConnection.Object; DbConnection connection; //Check if query connection is present Assert.True(connInfo.TryGetConnection(ConnectionType.Query, out connection)); PeekDefinition peekDefinition = new PeekDefinition(serverConnection, connInfo); //Check if database name is the database name in the query connection Assert.Equal(peekDefinition.Database.Name, "testdb"); // remove mock from ConnectionInfo Assert.True(connInfo.ConnectionTypeToConnectionMap.TryRemove(ConnectionType.Query, out connection)); }