KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > oddjob > designer > elements > FilesDETest


1 /*
2  * (c) Rob Gordon 2005.
3  */

4 package org.oddjob.designer.elements;
5
6 import java.io.ByteArrayOutputStream JavaDoc;
7 import java.io.File JavaDoc;
8
9 import junit.framework.TestCase;
10
11 import org.apache.log4j.Logger;
12 import org.oddjob.Helper;
13 import org.oddjob.arooa.ArooaConstants;
14 import org.oddjob.arooa.ArooaContext;
15 import org.oddjob.arooa.ArooaHandler;
16 import org.oddjob.arooa.handlers.MainHandler;
17 import org.oddjob.arooa.handlers.XmlHandler;
18 import org.oddjob.arooa.reflect.IntrospectionHelper;
19 import org.oddjob.designer.DesignerHelper;
20 import org.oddjob.designer.arooa.DesignParser;
21 import org.oddjob.designer.arooa.DesignSkipHandler;
22 import org.oddjob.designer.elements.simple.FileAttribute;
23 import org.oddjob.designer.view.DummyView;
24 import org.oddjob.designer.view.DummyViewFactory;
25 import org.oddjob.io.FilesType;
26 import org.xml.sax.SAXParseException JavaDoc;
27
28 /**
29  *
30  */

31 public class FilesDETest extends TestCase {
32     private static final Logger logger = Logger.getLogger(FilesDETest.class);
33
34     public void testHandlerFor() {
35         FilesDE test = new FilesDE();
36         IntrospectionHelper ih = IntrospectionHelper.getHelper(test.getClass());
37         
38         ArooaContext context = new ArooaContext();
39         
40         ArooaHandler result = ih.provideHandler(test, "files", context);
41
42         assertTrue(result instanceof DesignSkipHandler);
43         assertEquals("files", context.get(ArooaConstants.ELEMENT_NAME));
44     }
45     
46     public void testCreate() {
47         
48         String JavaDoc xml =
49                 "<files>" +
50                 " <files>" +
51                 " <file file='test.txt' />" +
52                 " <files files='temp/*.dat' />" +
53                 " <files files='system/*.sys' />" +
54                 " </files>" +
55                 "</files>";
56
57         FilesDE test = (FilesDE) DesignerHelper.createDeForXML(xml);
58         
59         // files itself shouldn't have children.
60
assertEquals("created", 0, test.children().length);
61         
62         ListDE list = (ListDE) test.elementFiles();
63         
64         Object JavaDoc[] c = list.children();
65         assertTrue("with children ", c.length == 3);
66         
67         FileDE child1 = (FileDE) c[0];
68         assertEquals("test.txt", child1.getFile().attribute());
69         
70     }
71
72     public void testParse() throws SAXParseException JavaDoc {
73         
74         FileDE m2 = new FileDE();
75         m2.type("file");
76         FileAttribute fa = new FileAttribute();
77         fa.attribute("test/io/reference/*.txt");
78         m2.setFile(fa);
79         
80         ListDE list = new ListDE();
81         list.addChild(m2);
82         
83         FilesDE fs = new FilesDE();
84         fs.type("files");
85         fs.addValueFiles(list);
86         
87         ByteArrayOutputStream JavaDoc out = new ByteArrayOutputStream JavaDoc();
88         ArooaHandler xmlh = new XmlHandler(out);
89         
90         ArooaContext context = new ArooaContext();
91
92         DesignParser dp = new DesignParser(context);
93         dp.parse("files", fs, new MainHandler(xmlh));
94
95         logger.debug(out.toString());
96         
97         FilesType f = (FilesType) Helper.createTypeFromXml(out.toString());
98         
99         logger.debug(f.getFiles()[0]);
100         
101         assertEquals(1, f.getFiles().length);
102     }
103     
104     public void testView() throws SAXParseException JavaDoc {
105         FilesDE test = new FilesDE();
106         
107         DummyView dv = DummyViewFactory.create(test.detail());
108         
109         DummyView selection = dv.get("select");
110         
111         DummyView attribute = selection.get("File Spec");
112         
113         attribute.attribute("whatever");
114
115         String JavaDoc xml = DesignerHelper.xmlForDE(test);
116         logger.debug(xml);
117         FilesType f = (FilesType) Helper.createTypeFromXml(xml);
118         
119
120         assertEquals(1, f.getFiles().length);
121         logger.debug(f.getFiles()[0]);
122         
123         assertEquals(new File JavaDoc("whatever"), f.getFiles()[0]);
124     }
125
126     public void testView2() throws SAXParseException JavaDoc {
127         FilesDE test = new FilesDE();
128         
129         DummyView dv = DummyViewFactory.create(test.detail());
130         
131         DummyView list = dv.get("select").get("File List");;
132                 
133         DummyView child1 = list.create("files");
134
135         // note this file must exist because the sub FilesType will be
136
// expanded before being added
137
child1.get("select").get("File Spec").attribute("test/io/reference/test1.txt");
138         
139         String JavaDoc xml = DesignerHelper.xmlForDE(test);
140         logger.debug(xml);
141         FilesType f = (FilesType) Helper.createTypeFromXml(xml);
142         
143
144         assertEquals(1, f.getFiles().length);
145         
146         logger.debug(f.getFiles()[0]);
147         
148         assertEquals(new File JavaDoc("test/io/reference/test1.txt"), f.getFiles()[0]);
149         
150     }
151 }
152
Popular Tags