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

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