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