/*
* Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com>
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: TestParsed.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.template;
import com.uwyn.rife.template.exceptions.TemplateException;
import com.uwyn.rife.tools.ExceptionUtils;
import java.net.MalformedURLException;
import java.net.URL;
import junit.framework.TestCase;
public class TestParsed extends TestCase
{
private Parser mParser = null;
public TestParsed(String name)
{
super(name);
}
public void setUp()
{
mParser = TemplateFactory.HTML.getParser();
}
public void testInstantiation()
{
Parsed tp = new Parsed(mParser);
assertNotNull(tp);
assertNull(tp.getResource());
assertNull(tp.getClassName());
assertNull(tp.getFullClassName());
assertNull(tp.getBlock("test"));
assertNull(tp.getDefaultValue("test"));
assertEquals(tp.getBlocks().size(), 0);
assertEquals(tp.getDefaultValues().size(), 0);
assertEquals(tp.getDependencies().size(), 0);
assertNull(tp.getContent());
}
public void testResource()
{
Parsed tp = new Parsed(mParser);
assertNull(tp.getResource());
URL url = null;
try
{
url = new URL("file:/test/");
}
catch (MalformedURLException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
tp.setResource(url);
assertEquals(tp.getResource(), url);
}
public void testClassname()
{
Parsed tp = new Parsed(mParser);
assertNull(tp.getClassName());
assertNull(tp.getFullClassName());
String classname = "some_template";
tp.setClassName(classname);
assertNotNull(tp.getFullClassName());
assertTrue(!classname.equals(tp.getFullClassName()));
}
public void testBlocks()
{
Parsed tp = new Parsed(mParser);
assertEquals(tp.getBlocks().size(), 0);
ParsedBlockData blockdata1 = new ParsedBlockData();
ParsedBlockData blockdata2 = new ParsedBlockData();
tp.setBlock("blockparts1", blockdata1);
tp.setBlock("blockparts2", blockdata2);
assertEquals(tp.getBlocks().size(), 2);
assertSame(tp.getBlock("blockparts1"), blockdata1);
assertSame(tp.getBlock("blockparts2"), blockdata2);
assertNull(tp.getBlock("blockparts3"));
assertNull(tp.getContent());
ParsedBlockData contentdata = new ParsedBlockData();
tp.setBlock("", contentdata);
assertEquals(tp.getBlocks().size(), 3);
assertSame(tp.getContent(), contentdata);
}
public void testDefaultValues()
{
Parsed tp = new Parsed(mParser);
assertEquals(tp.getDefaultValues().size(), 0);
String defaultvalue1 = new String();
String defaultvalue2 = new String();
tp.setDefaultValue("defaultvalue1", defaultvalue1);
tp.setDefaultValue("defaultvalue2", defaultvalue2);
assertEquals(tp.getDefaultValues().size(), 2);
assertSame(tp.getDefaultValue("defaultvalue1"), defaultvalue1);
assertSame(tp.getDefaultValue("defaultvalue2"), defaultvalue2);
assertNull(tp.getDefaultValue("defaultvalue3"));
}
public void testIncludes()
{
Parsed tp = new Parsed(mParser);
String include1_name = "noblocks_in";
Parsed include1 = mParser.prepare(include1_name, mParser.resolve(include1_name));
String include2_name = "defaultvalues_in";
Parsed include2 = mParser.prepare(include2_name, mParser.resolve(include2_name));
String include3_name = "blocks_successive_in";
Parsed include3 = mParser.prepare(include3_name, mParser.resolve(include3_name));
try
{
tp.addDependency(include1);
assertEquals(tp.getDependencies().size(), 1);
tp.addDependency(include2);
assertEquals(tp.getDependencies().size(), 2);
tp.addDependency(include3);
assertEquals(tp.getDependencies().size(), 3);
}
catch (TemplateException e)
{
assertTrue(ExceptionUtils.getExceptionStackTrace(e), false);
}
assertEquals(include1_name.indexOf(include1.getClassName()), 0);
assertEquals(include2_name.indexOf(include2.getClassName()), 0);
assertEquals(include3_name.indexOf(include3.getClassName()), 0);
}
}