source: tmcsimulator/trunk/test/tmcsim/paramicscommunicator/ParamicsFileReaderTest.java @ 13

Revision 13, 3.0 KB checked in by jdalbey, 10 years ago (diff)

add smoketest config files

Line 
1package tmcsim.paramicscommunicator;
2
3import java.io.File;
4import java.io.FileWriter;
5import java.io.PrintWriter;
6import java.io.StringWriter;
7import java.util.Observable;
8import javax.xml.transform.Transformer;
9import javax.xml.transform.TransformerFactory;
10import javax.xml.transform.dom.DOMSource;
11import javax.xml.transform.stream.StreamResult;
12import static junit.framework.Assert.assertTrue;
13import junit.framework.TestCase;
14import org.w3c.dom.Document;
15
16/**
17 *
18 * @author jdalbey
19 */
20public class ParamicsFileReaderTest extends TestCase
21{
22
23    public ParamicsFileReaderTest(String testName)
24    {
25        super(testName);
26    }
27
28    @Override
29    protected void setUp() throws Exception
30    {
31        super.setUp();
32    }
33
34    @Override
35    public void tearDown() throws java.io.IOException
36    {
37        File removeMe = new File("inputfile.txt");
38        removeMe.delete();
39    }
40
41    private static void writedata(String filename, String data)
42    {
43        PrintWriter writer = null;
44        try
45        {
46            writer = new PrintWriter(new FileWriter(filename));
47            writer.println(data);
48            writer.close();
49        } catch (Exception ex)
50        {
51            ex.printStackTrace();
52        }
53    }
54    /* Convert a DOM to a string, thank you internet.  */
55
56    private static String toString(Document newDoc) throws Exception
57    {
58        DOMSource domSource = new DOMSource(newDoc);
59        Transformer transformer = TransformerFactory.newInstance().newTransformer();
60        StringWriter sw = new StringWriter();
61        StreamResult sr = new StreamResult(sw);
62        transformer.transform(domSource, sr);
63        return sw.toString();
64    }
65    String kFileContents = "Hello Jupiter";
66
67    public void testConstructor() throws Exception
68    {
69        writedata("inputfile.txt", kFileContents);
70        ParamicsFileReader pfr = new ParamicsFileReader("", "1", 2, "inputfile.txt");
71        ReaderObserver watcher = new ReaderObserver();
72        pfr.addObserver(watcher);
73        try
74        {
75            Thread.sleep(2000);
76        } catch (Exception e)
77        {
78            fail();
79        }
80        assertTrue(watcher.count > 0);
81        String actual = "";
82        actual = toString(watcher.result);
83        assertTrue("Reader produced wrong output", actual.contains(kFileContents));
84    }
85
86    class ReaderObserver implements java.util.Observer
87    {
88
89        int count = 0;
90        Document result;
91
92        @Override
93        public void update(Observable obs, Object obj)
94        {
95            count += 1;
96            if (obj instanceof FileIOUpdate)
97            {
98                FileIOUpdate msg = (FileIOUpdate) obj;
99                assertEquals("1", msg.ioID);
100                assertEquals((long) 1 + kFileContents.length(), (long) msg.ioBytes);
101            } else if (obj instanceof Document)
102            {
103                result = (Document) obj;
104            } else
105            {
106                fail("unrecognized update object " + obj.getClass());
107            }
108        }
109    }
110}
Note: See TracBrowser for help on using the repository browser.