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)); } } }
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."); }
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])); } }
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)); } } }
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); } }
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); } } }
/// <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); }