public void FindCorrectPathsForTableWithDatabaseRoot() { var paths = NodePathGenerator.FindNodePaths(databaseSession, "Table", "testSchema", "testTable", null); var expectedPaths = new List <string> { "testServer/testDatabase/Tables/testSchema.testTable", "testServer/testDatabase/Tables/System Tables/testSchema.testTable" }; Assert.Equal(expectedPaths.Count, paths.Count); foreach (var expectedPath in expectedPaths) { Assert.True(paths.Contains(expectedPath)); } }
public void FindCorrectPathsForDatabase() { var paths = NodePathGenerator.FindNodePaths(serverSession, "Database", null, databaseName, null); var expectedPaths = new List <string> { "testServer/Databases/testDatabase", "testServer/Databases/System Databases/testDatabase" }; Assert.Equal(expectedPaths.Count, paths.Count); foreach (var expectedPath in expectedPaths) { Assert.True(paths.Contains(expectedPath)); } }
/// <summary> /// Find all tree nodes matching the given node information /// </summary> /// <param name="sessionId">The ID of the object explorer session to find nodes for</param> /// <param name="typeName">The requested node type</param> /// <param name="schema">The schema for the requested object, or null if not applicable</param> /// <param name="name">The name of the requested object</param> /// <param name="databaseName">The name of the database containing the requested object, or null if not applicable</param> /// <param name="parentNames">The name of any other parent objects in the object explorer tree, from highest in the tree to lowest</param> /// <returns>A list of nodes matching the given information, or an empty list if no nodes match</returns> public List <TreeNode> FindNodes(string sessionId, string typeName, string schema, string name, string databaseName, List <string> parentNames = null) { var nodes = new List <TreeNode>(); var oeSession = sessionMap.GetValueOrDefault(sessionId); if (oeSession == null) { return(nodes); } var outputPaths = NodePathGenerator.FindNodePaths(oeSession, typeName, schema, name, databaseName, parentNames); foreach (var outputPath in outputPaths) { var treeNode = oeSession.Root.FindNodeByPath(outputPath, true); if (treeNode != null) { nodes.Add(treeNode); } } return(nodes); }
public void FindCorrectPathsForColumnWithServerRoot() { var paths = NodePathGenerator.FindNodePaths(serverSession, "Column", null, "testColumn", databaseName, new List <string> { "testSchema.testTable" }); var expectedPaths = new List <string> { "testServer/Databases/testDatabase/Tables/testSchema.testTable/Columns/testColumn", "testServer/Databases/System Databases/testDatabase/Tables/testSchema.testTable/Columns/testColumn", "testServer/Databases/testDatabase/Tables/System Tables/testSchema.testTable/Columns/testColumn", "testServer/Databases/System Databases/testDatabase/Tables/System Tables/testSchema.testTable/Columns/testColumn", "testServer/Databases/testDatabase/Views/testSchema.testTable/Columns/testColumn", "testServer/Databases/System Databases/testDatabase/Views/testSchema.testTable/Columns/testColumn", "testServer/Databases/testDatabase/Views/System Views/testSchema.testTable/Columns/testColumn", "testServer/Databases/System Databases/testDatabase/Views/System Views/testSchema.testTable/Columns/testColumn" }; Assert.Equal(expectedPaths.Count, paths.Count); foreach (var expectedPath in expectedPaths) { Assert.True(paths.Contains(expectedPath)); } }
/// <summary> /// Singleton constructor /// </summary> public ObjectExplorerService() { sessionMap = new ConcurrentDictionary <string, ObjectExplorerSession>(); applicableNodeChildFactories = new Lazy <Dictionary <string, HashSet <ChildFactory> > >(() => PopulateFactories()); NodePathGenerator.Initialize(); }
public void FindPathMissingParentReturnsEmpty() { var serverPaths = NodePathGenerator.FindNodePaths(serverSession, "Column", "testSchema", "testColumn", databaseName); Assert.Equal(0, serverPaths.Count); }
public void FindPathForInvalidTypeReturnsEmpty() { var serverPaths = NodePathGenerator.FindNodePaths(serverSession, "WrongType", "testSchema", "testTable", databaseName); Assert.Equal(0, serverPaths.Count); }