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

Revision 6, 2.8 KB checked in by jdalbey, 10 years ago (diff)

Multifile commit. Add version # to Paramics Communicator. Move Load button in Sim Mgr. Add several tests. Add package jars target.

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