Esempio n. 1
0
        public void filterCalcTest()
        {
            HelpFunctions hf      = new HelpFunctions(strategyMgr, grantTrees);
            IntPtr        appHwnd = strategyMgr.getSpecifiedOperationSystem().getHandleOfApplication(applicationName);

            Assert.AreNotEqual(IntPtr.Zero, appHwnd, "Es hätte für die anwendung ein HWND ermittelt werden müssen!");
            Object treeHWND = strategyMgr.getSpecifiedFilter().filtering(appHwnd, TreeScopeEnum.Application, -1);

            Assert.AreNotEqual(null, treeHWND, "Es ist kein gefilterter Baum vorhanden");
            #region Punkt in anwendung ermitteln
            Object subtreeHWND = null;
            if (strategyMgr.getSpecifiedTree().HasChild(treeHWND))
            {
                subtreeHWND = strategyMgr.getSpecifiedTree().Child(treeHWND);
                if (strategyMgr.getSpecifiedTree().HasChild(subtreeHWND))
                {
                    subtreeHWND = strategyMgr.getSpecifiedTree().Child(subtreeHWND);
                }
            }
            Assert.AreNotEqual(null, subtreeHWND, "Es hätte ein Teilbaum gefunden werden müssen!");
            OSMElements.OSMElement dataSubtreeHWND = strategyMgr.getSpecifiedTree().GetData(subtreeHWND);
            #endregion
            Object treePoint = strategyMgr.getSpecifiedFilter().filtering(Convert.ToInt32(dataSubtreeHWND.properties.boundingRectangleFiltered.X), Convert.ToInt32(dataSubtreeHWND.properties.boundingRectangleFiltered.Y), TreeScopeEnum.Application, -1);
            Debug.WriteLine("treePoint:\n" + strategyMgr.getSpecifiedTree().ToStringRecursive(treePoint));

            foreach (Object node in strategyMgr.getSpecifiedTree().AllChildrenNodes(treeHWND))
            {
                List <Object> nodes = treeOperation.searchNodes.getNodeList(strategyMgr.getSpecifiedTree().GetData(node).properties.IdGenerated, treePoint);
                if (nodes.Count != 1)
                {
                    Assert.Fail("Es wurde nicht die richtige Anzahl an zugehörigen Knoten im geladenen Baum gefunden! Betrachteter Knoten:\n{0}\n\t Anzahl der gefundenen zugehörigen Knoten im geladenen Baum = {1}", node, nodes.Count);
                }
                bool isEqual = compareToNodes(node, nodes[0]);
                if (!isEqual)
                {
                    Assert.Fail("Der geladene Baum enthält den Knoten folgenden Knoten nicht:\n{0}", strategyMgr.getSpecifiedTree().GetData(node));
                }
            }
            foreach (Object node in strategyMgr.getSpecifiedTree().AllChildrenNodes(treePoint))
            {
                List <Object> nodes = treeOperation.searchNodes.getNodeList(strategyMgr.getSpecifiedTree().GetData(node).properties.IdGenerated, treeHWND);
                if (nodes.Count != 1)
                {
                    Assert.Fail("Es wurde nicht die richtige Anzahl an zugehörigen Knoten im gefilterten Baum gefunden! Betrachteter Knoten:\n{0}\n\t Anzahl der gefundenen zugehörigen Knoten im gefilterten Baum = {1}", node, nodes.Count);
                }
                bool isEqual = compareToNodes(node, nodes[0]);
                if (!isEqual)
                {
                    Assert.Fail("Der gefilterte Baum enthält den Knoten folgenden Knoten nicht:\n{0}", strategyMgr.getSpecifiedTree().GetData(node));
                }
            }
        }
Esempio n. 2
0
        public void setSpecialPropertiesOfFirstNodeTest()
        {
            HelpFunctions hf      = new HelpFunctions(strategyMgr, grantTrees);
            IntPtr        appHwnd = strategyMgr.getSpecifiedOperationSystem().getHandleOfApplication(applicationName);

            Assert.AreNotEqual(IntPtr.Zero, appHwnd);
            Object treeHWND = strategyMgr.getSpecifiedFilter().filtering(appHwnd, TreeScopeEnum.Application, -1);

            Assert.AreNotEqual(null, treeHWND);
            Assert.IsTrue(strategyMgr.getSpecifiedTree().HasChild(treeHWND));
            OSMElements.OSMElement firstNodeData = strategyMgr.getSpecifiedTree().GetData(strategyMgr.getSpecifiedTree().Child(treeHWND));
            Assert.IsNotNull(firstNodeData);
            Assert.IsNotNull(firstNodeData.properties);
            Assert.IsNotNull(firstNodeData.properties.grantFilterStrategy, "A filter strategy should be set at the first node.");
            Assert.AreEqual("calc", firstNodeData.properties.processName, "The name of the process should be set at the first node of calc.");
            Assert.IsNotNull(firstNodeData.properties.appPath, "The path of the application should be set at the first node of calc.");
        }
Esempio n. 3
0
        public void TestGetNodeByProperties()
        {
            HelpFunctions hf = new HelpFunctions(strategyMgr, grantTrees);

            hf.filterApplication(applicationName, applicationPathName);
            Assert.IsNotNull(grantTrees.filteredTree);

            foreach (Object node in strategyMgr.getSpecifiedTree().AllNodes(grantTrees.filteredTree))
            {
                OSMElements.OSMElement osmData          = strategyMgr.getSpecifiedTree().GetData(node);
                OSMElements.OSMElement osmDataWithoutId = osmData.DeepCopy();
                osmDataWithoutId.properties.resetIdGenerated = null;
                List <Object> foundObjects = treeOperation.searchNodes.getNodesByProperties(grantTrees.filteredTree, osmDataWithoutId.properties);
                Assert.AreEqual(1, foundObjects.Count);
                Assert.IsTrue(strategyMgr.getSpecifiedTree().Equals(node, foundObjects[0]));
            }
        }
Esempio n. 4
0
        public void TestLoadFilteredTreeAndCompare()
        {
            guiFuctions.loadGrantProject(treePath);
            if (grantTrees.filteredTree == null)
            {
                Assert.Fail("Es ist kein gefilterter Baum vorhanden!");
            }
            Object loadedTree  = strategyMgr.getSpecifiedTree().Copy(grantTrees.filteredTree);
            String processName = strategyMgr.getSpecifiedTree().GetData(strategyMgr.getSpecifiedTree().Child(grantTrees.filteredTree)).properties.processName;
            String fileName    = strategyMgr.getSpecifiedTree().GetData(strategyMgr.getSpecifiedTree().Child(grantTrees.filteredTree)).properties.appPath;
            IntPtr appHwnd     = strategyMgr.getSpecifiedOperationSystem().getHandleOfApplication(processName); //Die Anwendung sollte schon offen sein, durch das Laden des Baums

            grantTrees.filteredTree = strategyMgr.getSpecifiedFilter().filtering(appHwnd);
            Debug.WriteLine("\ngrant\n" + strategyMgr.getSpecifiedTree().ToStringRecursive(grantTrees.filteredTree) + "\n\n");
            Debug.WriteLine("\nloaded\n" + strategyMgr.getSpecifiedTree().ToStringRecursive(loadedTree) + "\n\n");
            HelpFunctions hf = new HelpFunctions(strategyMgr, grantTrees);

            foreach (Object node in strategyMgr.getSpecifiedTree().AllChildrenNodes(grantTrees.filteredTree))
            {
                List <Object> nodes = searchNodes.getNodeList(strategyMgr.getSpecifiedTree().GetData(node).properties.IdGenerated, loadedTree);
                if (nodes.Count != 1)
                {
                    Assert.Fail("Es wurde nicht die richtige Anzahl an zugehörigen Knoten im geladenen Baum gefunden! Betrachteter Knoten:\n{0}\n\t Anzahl der gefundenen zugehörigen Knoten im geladenen Baum = {1}", node, nodes.Count);
                }
                bool isEqual = hf.compareToNodes(node, nodes[0]);
                if (!isEqual)
                {
                    Assert.Fail("Der geladene Baum enthält den Knoten folgenden Knoten nicht:\n{0}", strategyMgr.getSpecifiedTree().GetData(node));
                }
            }
            foreach (Object node in strategyMgr.getSpecifiedTree().AllChildrenNodes(loadedTree))
            {
                List <Object> nodes = searchNodes.getNodeList(strategyMgr.getSpecifiedTree().GetData(node).properties.IdGenerated, grantTrees.filteredTree);
                if (nodes.Count != 1)
                {
                    Assert.Fail("Es wurde nicht die richtige Anzahl an zugehörigen Knoten im gefilterten Baum gefunden! Betrachteter Knoten:\n{0}\n\t Anzahl der gefundenen zugehörigen Knoten im gefilterten Baum = {1}", node, nodes.Count);
                }
                bool isEqual = hf.compareToNodes(node, nodes[0]);
                if (!isEqual)
                {
                    Assert.Fail("Der gefilterte Baum enthält den Knoten folgenden Knoten nicht:\n{0}", strategyMgr.getSpecifiedTree().GetData(node));
                }
            }
        }
Esempio n. 5
0
        public void FilterSubtreeTest()
        {
            HelpFunctions hf = new HelpFunctions(strategyMgr, grantTrees);

            hf.filterApplication(applicationName, applicationPathName);

            treeOperation.updateNodes.filterSubtreeWithCurrentFilterStrtegy(idTextNodeCalc);

            IntPtr appHwnd = strategyMgr.getSpecifiedOperationSystem().getHandleOfApplication(applicationName);

            strategyMgr.getSpecifiedOperationSystem().setForegroundWindow(appHwnd);
            //Send Key -> Inhalt im Textfeld soll sich ändern
            System.Windows.Forms.SendKeys.SendWait("{ESC}");
            System.Windows.Forms.SendKeys.SendWait("24");
            treeOperation.updateNodes.filterSubtreeWithCurrentFilterStrtegy(idTextNodeCalc);
            OSMElements.OSMElement textNode = treeOperation.searchNodes.getFilteredTreeOsmElementById(idTextNodeCalc);
            if (!textNode.properties.nameFiltered.Equals("24"))
            {
                Assert.Fail("Der Knoten wurde nicht richtig geändert oder geupdatet!\nBetrachteter Knoten:\n{0}", textNode);
            }
        }
Esempio n. 6
0
        public void TestGetIdFilteredNodeByHwnd()
        {
            HelpFunctions hf = new HelpFunctions(strategyMgr, grantTrees);

            hf.filterApplication(applicationName, applicationPathName);
            Assert.IsNotNull(grantTrees.filteredTree);

            foreach (Object node in strategyMgr.getSpecifiedTree().AllNodes(grantTrees.filteredTree))
            {
                OSMElements.OSMElement osmData = strategyMgr.getSpecifiedTree().GetData(node);
                String foundId = treeOperation.searchNodes.getIdFilteredNodeByHwnd(osmData.properties.hWndFiltered);
                if (IntPtr.Zero.Equals(osmData.properties.hWndFiltered))
                {
                    Assert.AreEqual(null, foundId);
                }
                else
                {
                    Assert.AreEqual(osmData.properties.IdGenerated, foundId);
                }
            }
        }
Esempio n. 7
0
        /// <summary>
        /// vergleicht einen 'vorhandenen' gespeicherten Baum mit einen gerade erstellten gespeicherten Baum
        /// </summary>
        public bool CompareToSavedFilteredTrees(String path1, String path2)
        {
            if (!File.Exists(@path1))
            {
                Assert.Fail("Die Datei ({0}) existiert nicht!", path1);
                return(false);
            }
            if (!File.Exists(@path2))
            {
                Assert.Fail("Die Datei ({0}) existiert nicht!", path2);
                return(false);
            }
            Object loadedTree1;
            Object loadedTree2;

            using (System.IO.FileStream fs = System.IO.File.Open(path1, System.IO.FileMode.Open, System.IO.FileAccess.Read))
            {
                loadedTree1 = strategyMgr.getSpecifiedTree().XmlDeserialize(fs);
            }
            using (System.IO.FileStream fs = System.IO.File.Open(path2, System.IO.FileMode.Open, System.IO.FileAccess.Read))
            {
                loadedTree2 = strategyMgr.getSpecifiedTree().XmlDeserialize(fs);
            }
            //  if (loadedTree1.Equals(loadedTree2)) { return true; } else { return false; } --> geht nicht da boundingRectangle unterschiedlich sein kann
            String        node1Id;
            HelpFunctions hf = new HelpFunctions(strategyMgr, grantTrees);

            foreach (Object node in strategyMgr.getSpecifiedTree().AllNodes(loadedTree1))
            {
                node1Id = strategyMgr.getSpecifiedTree().GetData(node).properties.IdGenerated;
                List <Object> associatedNodeList = searchNodes.getNodeList(node1Id, loadedTree2);
                if (associatedNodeList.Count != 1)
                {
                    Assert.Fail("Die Id '{0}' kommt mehr als ein mal oder keinmal in dem Baum ({1}) vor!", node1Id, path2); return(false);
                }
                OSMElements.OSMElement osm1 = strategyMgr.getSpecifiedTree().GetData(node);
                //bei Textfeldern kann sich der Text ändern
                if (osm1.properties.controlTypeFiltered.Equals("Text"))
                {
                    osm1.properties.nameFiltered = "";
                }
                osm1.properties.boundingRectangleFiltered = new Rect();
                osm1.properties.appPath = null;
                strategyMgr.getSpecifiedTree().SetData(node, osm1);
                OSMElements.OSMElement osm2 = strategyMgr.getSpecifiedTree().GetData(associatedNodeList[0]);
                //bei Textfeldern kann sich der Text ändern
                if (osm2.properties.controlTypeFiltered.Equals("Text"))
                {
                    osm2.properties.nameFiltered = "";
                }
                osm2.properties.boundingRectangleFiltered = new Rect();
                osm2.properties.appPath = null;
                strategyMgr.getSpecifiedTree().SetData(associatedNodeList[0], osm2);
                Assert.AreEqual(true, hf.compareToNodes(node, associatedNodeList[0]), "Die beiden knoten stimmen nicht überein!");

                /* if (!strategyMgr.getSpecifiedTree().Equals(node, associatedNodeList[0]))
                 * {
                 *   compareToNodes(node, associatedNodeList[0]);
                 *   Assert.Fail("Die folgenden beiden Knoten stimmen nicht überein:\n{0}\n{1}", node, associatedNodeList[0]);
                 *   return false;
                 * }*/
            }
            return(true);
        }