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

Revision 15, 3.1 KB checked in by jdalbey, 10 years ago (diff)

ParamicsFileReaderTest?.java updated to work on Window or Unix.

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                // Windows and Unix have different EOL characters, so we have
101                // to approximate the answer here.
102                boolean result = kFileContents.length() - msg.ioBytes < 2;
103                assertTrue(result);
104            } else if (obj instanceof Document)
105            {
106                result = (Document) obj;
107            } else
108            {
109                fail("unrecognized update object " + obj.getClass());
110            }
111        }
112    }
113}
Note: See TracBrowser for help on using the repository browser.