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));
            }
        }
Esempio n. 3
0
        /// <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));
            }
        }
Esempio n. 5
0
 /// <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);
        }