1 4 package org.oddjob.designer.elements; 5 6 import java.io.ByteArrayOutputStream ; 7 import java.io.File ; 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 ; 27 28 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 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 assertEquals("created", 0, test.children().length); 61 62 ListDE list = (ListDE) test.elementFiles(); 63 64 Object [] 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 { 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 out = new ByteArrayOutputStream (); 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 { 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 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 ("whatever"), f.getFiles()[0]); 124 } 125 126 public void testView2() throws SAXParseException { 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 child1.get("select").get("File Spec").attribute("test/io/reference/test1.txt"); 138 139 String 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 ("test/io/reference/test1.txt"), f.getFiles()[0]); 149 150 } 151 } 152 | Popular Tags |