Ejemplo n.º 1
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));
                }
            }
        }
Ejemplo n.º 2
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);
        }