1   package com.macvu.tiles.xmlDefinition;
2   
3   import junit.framework.TestCase;
4   import com.macvu.mock.servlet.MockHttpServletRequest;
5   import com.macvu.mock.servlet.MockServletContext;
6   import com.macvu.tiles.CacheComponentDefinition;
7   import java.io.*;
8   import java.util.Map;
9   import java.util.HashMap;
10  import org.apache.struts.tiles.ComponentDefinition;
11  import org.apache.struts.tiles.DefinitionsFactoryException;
12  import org.apache.struts.tiles.TilesUtilImpl;
13  import org.apache.struts.tiles.definition.ComponentDefinitionsFactoryWrapper;
14  
15  /***
16   * Created by IntelliJ IDEA.
17   * User: MVu
18   * Date: Mar 23, 2004
19   * Time: 3:35:22 PM
20   * To change this template use File | Settings | File Templates.
21   */
22  
23  public class CacheDefinitionSaveFactoryTest extends TestCase {
24  
25      String filename = "testDef.xml";
26      MockHttpServletRequest request;
27      MockServletContext servletContext;
28  
29      public CacheDefinitionSaveFactoryTest(String s) {
30          super(s);
31      }
32  
33      public void setUp() throws Exception {
34          request = new MockHttpServletRequest();
35          servletContext = new MockServletContext();
36          InputStream stream = this.getClass().getResourceAsStream(filename);
37          servletContext.setResourceAsStream(stream);
38  
39          Map properties = new HashMap();
40          properties.put(CacheI18nFactorySet.DEFINITIONS_CONFIG_PARAMETER_NAME, filename);
41  
42          try {
43              CacheI18nFactorySet factorySet = new CacheI18nFactorySet(servletContext, properties);
44  
45              ComponentDefinitionsFactoryWrapper wrapper = new ComponentDefinitionsFactoryWrapper(factorySet);
46              servletContext.setAttribute(TilesUtilImpl.DEFINITIONS_FACTORY, wrapper);
47          } catch (DefinitionsFactoryException e) {
48              fail("Throw Exception: " + e.getMessage());
49          }
50  
51          servletContext.setResourceAsStream(null);
52      }
53  
54      public void testCacheDefinitionSaveFactory() {
55          InputStream istream = this.getClass().getResourceAsStream(filename);
56  
57          ByteArrayOutputStream ostream = new ByteArrayOutputStream(1024);
58          FileOutputStream fostream = null;
59  
60          try {
61              fostream = new FileOutputStream("foo.xml");
62          } catch (FileNotFoundException e) {
63              fail("Cannot create file");
64          }
65  
66          CacheDefinitionSaveFactory factory = new CacheDefinitionSaveFactory();
67          factory.initDefintionFiles(request, servletContext);
68          factory.saveChange(istream, ostream);
69          System.out.println(ostream.toString());
70      }
71  }
72