001 package org.picocontainer.script.xml; 002 003 import static org.junit.Assert.assertEquals; 004 import static org.junit.Assert.assertNotNull; 005 006 import java.io.File; 007 import java.io.FileWriter; 008 import java.io.IOException; 009 import java.io.Reader; 010 import java.io.StringReader; 011 import java.net.URL; 012 013 import org.junit.Test; 014 import org.picocontainer.script.ScriptedContainerBuilder; 015 import org.picocontainer.script.ScriptedContainerBuilderFactory; 016 017 public class XMLScriptedContainerBuilderFactoryTestCase { 018 019 private static final String TEST_SCRIPT_PATH = "/org/picocontainer/script/xml/picocontainer.xml"; 020 021 @Test public void testScriptedContainerBuilderFactoryWithUrl() throws ClassNotFoundException { 022 URL resource = getClass().getResource(TEST_SCRIPT_PATH); 023 assertNotNull("Could not find script resource '+ TEST_SCRIPT_PATH + '.", resource); 024 025 ScriptedContainerBuilderFactory result = new ScriptedContainerBuilderFactory(resource); 026 ScriptedContainerBuilder builder = result.getContainerBuilder(); 027 assertNotNull(builder); 028 assertEquals(XMLContainerBuilder.class.getName(), builder.getClass().getName()); 029 } 030 031 @Test public void testBuildWithReader() throws ClassNotFoundException { 032 Reader script = new StringReader("" + 033 "<?xml version='1.0'?>"+ 034 "<container>"+ 035 " <container> " + 036 " <component class='java.util.ArrayList' />"+ 037 " </container> "+ 038 "</container>" + 039 ""); 040 041 ScriptedContainerBuilderFactory result = new ScriptedContainerBuilderFactory(script, 042 XMLContainerBuilder.class.getName()); 043 ScriptedContainerBuilder builder = result.getContainerBuilder(); 044 assertNotNull(builder); 045 assertEquals(XMLContainerBuilder.class.getName(), builder.getClass().getName()); 046 } 047 048 @Test 049 public void testBuildWithFile() throws IOException { 050 File resource = File.createTempFile("picocontainer", ".xml"); 051 FileWriter writer = new FileWriter(resource); 052 writer.write("<?xml version='1.0'?>\n"+ 053 "<container/>"); 054 writer.close(); 055 assertNotNull("Could not find script resource '+ TEST_SCRIPT_PATH + '.", resource); 056 057 ScriptedContainerBuilderFactory result = new ScriptedContainerBuilderFactory(resource); 058 ScriptedContainerBuilder builder = result.getContainerBuilder(); 059 assertNotNull(builder); 060 assertEquals(XMLContainerBuilder.class.getName(), builder.getClass().getName()); 061 062 } 063 064 065 }