Ignore:
Timestamp:
09/09/12 13:59:37 (12 years ago)
Author:
fglaser
Message:
  • new testcase for JFCReplayIDCalculator added
  • extended guimapping for freemind
  • efg file for freemind added in testing resources
  • new freemind jfcmonitor trace added in testing resources
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/quest-plugin-jfc-test/src/test/java/de/ugoe/cs/quest/plugin/jfc/JFCReplayIDCalculatorTest.java

    r796 r797  
    66import java.util.HashSet; 
    77import java.util.List; 
     8import java.util.Set; 
     9import java.util.logging.Level; 
     10 
     11import javax.xml.parsers.DocumentBuilder; 
     12import javax.xml.parsers.DocumentBuilderFactory; 
    813 
    914import junit.framework.TestCase; 
     
    1217import org.junit.Before; 
    1318import org.junit.Test; 
     19import org.w3c.dom.Document; 
     20import org.w3c.dom.Node; 
     21import org.w3c.dom.NodeList; 
    1422 
    1523import de.ugoe.cs.quest.eventcore.Event; 
     
    1826import de.ugoe.cs.quest.plugin.jfc.guimodel.JFCGUIElement; 
    1927import de.ugoe.cs.quest.plugin.jfc.guimodel.JFCGUIElementSpec; 
     28import de.ugoe.cs.util.console.TextConsole; 
    2029 
    2130/** 
     
    96105                assertEquals("e3561778462", result); 
    97106        } 
     107         
     108        /** 
     109         * Run the String calculateReplayID(List<JFCGUIElementSpec>) method test. 
     110         * 
     111         * @throws Exception 
     112         */ 
     113        @Test 
     114        public void testCalculateReplayIDAllEvents() 
     115                throws Exception { 
     116                // generate list of known replayIDs from guitar efg file 
     117                File guiFile = new File(ClassLoader.getSystemResource("freemind.efg").getFile()); 
     118                 
     119                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     120                DocumentBuilder builder = factory.newDocumentBuilder(); 
     121                Document freemindGUI = builder.parse(guiFile); 
     122                 
     123                Node currentNode = freemindGUI.getFirstChild().getFirstChild(); 
     124                NodeList eventNodes = null; 
     125                List<String> knownIDs = new ArrayList<String>(); 
     126                 
     127                while ((currentNode = currentNode.getNextSibling()) != null){ 
     128                        if (currentNode.getNodeName().equals("Events")) 
     129                                eventNodes = currentNode.getChildNodes(); 
     130                } 
     131                 
     132                for (int i = 0; i < eventNodes.getLength(); i++){ 
     133                        if (eventNodes.item(i).getNodeName().equals("Event")){ 
     134                                NodeList attributes = eventNodes.item(i).getChildNodes(); 
     135                                for (int j = 0; j < attributes.getLength(); j++){ 
     136                                        if (attributes.item(j).getNodeName().equals("EventId")){ 
     137                                                knownIDs.add(attributes.item(j).getTextContent()); 
     138                                        } 
     139                                } 
     140                        } 
     141                } 
     142                 
     143                // calculate replayIDs from trace file 
     144                Collection<JFCEventId> ignoredEvents = new HashSet<JFCEventId>(); 
     145                ignoredEvents.add(JFCEventId.FOCUS_GAINED); 
     146                JFCLogParser parser = new JFCLogParser(ignoredEvents); 
     147                parser.parseFile(new File(ClassLoader.getSystemResource("freemind_trace2.xml").getFile())); 
     148                JFCReplayIDCalculator calculator = new JFCReplayIDCalculator(); 
     149                 
     150                Set<String> generatedIDs = new HashSet<String>();  
     151                 
     152                Collection<List<Event>> sequences = parser.getSequences(); 
     153                 
     154                assertTrue(sequences.size() > 0); 
     155                 
     156                 
     157                for (List<Event> currentSequence: sequences){ 
     158                        for (Event currentEvent: currentSequence){ 
     159                                String replayID = calculator.calculateReplayID(currentEvent); 
     160                                generatedIDs.add(replayID); 
     161                                System.out.println("Generated ID: " + replayID); 
     162                        } 
     163                } 
     164                 
     165                System.out.println(); 
     166                 
     167                // check if generatedIDs are known 
     168                int known = 0; 
     169                for (String replayID: generatedIDs){ 
     170                        if (knownIDs.contains(replayID)){ 
     171                                System.out.println(replayID + "\t is known."); 
     172                                known++; 
     173                        } 
     174                        else 
     175                                System.out.println(replayID + "\t is unknown."); 
     176                } 
     177                System.out.println(); 
     178                 
     179                float percentage = (float) known/generatedIDs.size()*100; 
     180                System.out.println(percentage + "% of the generated IDs are known."); 
     181                 
     182                assertTrue(percentage > 75); 
     183                 
     184                 
     185        } 
    98186 
    99187        /** 
     
    108196        public void setUp() 
    109197                throws Exception { 
    110                 // add additional set up code here 
     198                    new TextConsole(Level.FINEST); 
    111199        } 
    112200 
Note: See TracChangeset for help on using the changeset viewer.