source: trunk/quest-plugin-mfc-test/src/test/java/de/ugoe/cs/quest/plugin/mfc/MFCLogParserTest.java @ 706

Last change on this file since 706 was 706, checked in by sherbold, 12 years ago
  • removed class ReplayGenerator? and moved its functionality to the command generateReplayfile.
  • removed command generateRandomReplay. It was redundant with the combination of of generateReplayfile and generateRandomSequences
  • Property svn:executable set to *
  • Property svn:keywords set to Date Revision Author HeadURL Id
File size: 4.8 KB
Line 
1package de.ugoe.cs.quest.plugin.mfc;
2
3import static org.junit.Assert.assertEquals;
4import static org.junit.Assert.assertNotNull;
5import static org.junit.Assert.assertNotSame;
6import static org.junit.Assert.assertTrue;
7
8import java.io.File;
9import java.io.FileInputStream;
10import java.io.FileOutputStream;
11import java.io.InputStreamReader;
12import java.io.PrintStream;
13import java.util.Collection;
14import java.util.List;
15
16import org.junit.After;
17import org.junit.Before;
18import org.junit.Test;
19
20import de.ugoe.cs.quest.eventcore.Event;
21import de.ugoe.cs.quest.eventcore.guimodel.GUIModel;
22import de.ugoe.cs.util.console.CommandExecuter;
23import de.ugoe.cs.util.console.Console;
24import de.ugoe.cs.util.console.GlobalDataContainer;
25import de.ugoe.cs.util.console.listener.IOutputListener;
26
27/**
28 * TODO comment
29 *
30 * @version $Revision$ $Date$
31 * @author 2011, last modified by $Author$
32 */
33public class MFCLogParserTest implements IOutputListener {
34
35    /** */
36    private File tmpFile;
37   
38    /** */
39    private PrintStream outputStream;
40
41    /**
42     *
43     */
44    @Before
45    public void setUp() throws Exception {
46        outputStream = new PrintStream(new FileOutputStream("blub.log"));
47        Console.getInstance().registerOutputListener(this);
48       
49        tmpFile = new File("tmp.xml");
50       
51        if (tmpFile.exists()) {
52            assertTrue(tmpFile.delete());
53        }
54    }
55   
56    /**
57     *
58     */
59    @After
60    public void tearDown() throws Exception {
61        if (!System.out.equals(outputStream) && !System.err.equals(outputStream)) {
62            outputStream.close();
63        }
64       
65        if (tmpFile.exists()) {
66            assertTrue(tmpFile.delete());
67        }
68    }
69   
70   
71    /**
72     *
73     */
74    @Test
75    public void testTrace() throws Exception {
76        File traceFile = new File(ClassLoader.getSystemResource("trace.txt").getFile());
77       
78        new LogPreprocessor().convertToXml(traceFile.getAbsolutePath(),
79                                           tmpFile.getAbsolutePath());
80       
81        MFCLogParser parser = new MFCLogParser();
82        parser.parseFile(tmpFile);
83        Collection<List<Event>> events = parser.getSequences();
84
85        assertNotNull(events);
86        assertTrue(events.size() > 0);
87
88        System.err.println("{");
89        for (List<Event> session : events) {
90            System.err.println("  {");
91            for (Event event : session) {
92                System.err.print("    ");
93                System.err.print(event);
94                System.err.println(",");
95            }
96            System.err.println("  }");
97        }
98        System.err.println("}");
99        System.err.println("\n\n");
100
101        GUIModel guiModel = parser.getGuiModel();
102        assertNotNull(guiModel);
103        assertNotSame(0, guiModel.getRootElements().size());
104
105        guiModel.dump(System.err);
106    }
107
108    /**
109     *
110     */
111    @Test
112    public void testLogfile() throws Exception {
113        File logFile = new File(ClassLoader.getSystemResource("log.xml").getFile());
114
115        MFCLogParser parser = new MFCLogParser();
116        parser.parseFile(logFile);
117        Collection<List<Event>> events = parser.getSequences();
118
119        assertNotNull(events);
120        assertTrue(events.size() > 0);
121
122        System.err.println("{");
123        for (List<Event> session : events) {
124            System.err.println("  {");
125            for (Event event : session) {
126                System.err.print("    ");
127                System.err.print(event);
128                System.err.println(",");
129            }
130            System.err.println("  }");
131        }
132        System.err.println("}");
133        System.err.println("\n\n");
134
135        GUIModel guiModel = parser.getGuiModel();
136        assertNotNull(guiModel);
137
138        guiModel.dump(System.err);
139
140       
141        GlobalDataContainer.getInstance().addData("seqs",  parser.getSequences());
142       
143        CommandExecuter.getInstance().exec("generateReplayfile " + tmpFile.getAbsolutePath() + " seqs");
144       
145        InputStreamReader reader1 =
146            new InputStreamReader(ClassLoader.getSystemResourceAsStream("replay.xml"), "UTF-8");
147
148        InputStreamReader reader2 = new InputStreamReader(new FileInputStream(tmpFile), "UTF-8");
149       
150        try {
151            int sign1;
152            do {
153                sign1 = reader1.read();
154                assertEquals(sign1, reader2.read());
155            }
156            while (sign1 > -1);
157        }
158        finally {
159            reader1.close();
160            reader2.close();
161        }
162    }
163
164    /* (non-Javadoc)
165     * @see de.ugoe.cs.util.console.listener.IOutputListener#outputMsg(java.lang.String)
166     */
167    @Override
168    public void outputMsg(String newMessage) {
169        outputStream.println(newMessage);
170    }
171
172}
Note: See TracBrowser for help on using the repository browser.