devdaily home | apple | java | perl | unix | directory | blog

What this is

This file is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Other links

The source code

package tests;

import java.io.*;
import java.util.HashMap;

import org.stringtree.factory.memory.MapStringRepository;
import org.stringtree.util.ResourceUtils;
import org.stringtree.util.tract.Tract;

import junit.framework.*;

import com.efsol.friki.*;

public class ModelTest extends TestCase
{
	private PageRepository repository;
	private DelegatedRenderer renderer;
	private Renderer pr;
	private Renderer hr;
	private Policy policy;
	private Model m1;
	private File tmp;
	private File base;

	public ModelTest(String name)
	{
		super(name);
	}

	public void setUp()
	{
		RepositoryDriver driver = new InMemoryRepository();
		repository = new PageRepository(driver);
		pr = new PlainRenderer();
		ContentFilter filter = new ClassicToHTMLFilter(new MapStringRepository(), repository, 
			new HashMap(), ResourceUtils.readResource("wiki.transform"));
		hr = new SimpleHTMLRenderer(filter);
		renderer = new DelegatedRenderer(pr);
		tmp = new File("tmp");
		base = new File("base");

    	policy = new Policy(PolicyHelper.makeMap(new String[]
		{
			"repository-location=/tmp/friki",
			"markup=simple",
			"dflPage=FrontPage",
			"modes=,view,edit,search,update,",
			"filterModes=view",
			"viewMode=view",
			"editMode=edit",
			"searchMode=search",
			"updateMode=update"
		}), tmp, base);
		m1 = new Model(repository, renderer, filter, policy);
	}

	private String show(Model model, String name, String mode)
		throws IOException
	{
		StringWriter out = new StringWriter();
		Tract page = model.get(name);
		model.render(page, mode, out, true);
		return out.toString();
	}

	public void testEmpty()
		throws IOException
	{
		assertEquals("ModelTest.empty 1", "Describe 'hoopla' here...",
			show(m1,"hoopla", "what"));
	}

	public void testShow()
		throws IOException
	{
		Page page = new Page("hoopla");
		page.setContent("ugh ugh");
		repository.put("hoopla", page);

		assertEquals("ModelTest.simple 1", "ugh ugh",
			show(m1,"hoopla", "what"));
		assertEquals("ModelTest.simple 2", "Describe 'boogie' here...",
			show(m1,"boogie", "what"));
	}

	public void testUpdate()
		throws IOException
	{
		assertEquals("ModelTest.empty 1", "Describe 'hoopla' here...",
			show(m1,"hoopla", "what"));

		Page page = new Page("hoopla");
		repository.put("hoopla", page);
		assertEquals("ModelTest.update 1", "Describe 'hoopla' here...",
			show(m1,"hoopla", "what"));

		page.setContent("ugh ugh");
		assertEquals("ModelTest.update 1", "ugh ugh",
			show(m1,"hoopla", "what"));
	}

	public void testAlternateRenderer()
		throws IOException
	{
		renderer.setOther(hr);

		Page page = new Page("hoopla");
		page.setContent("ugh ugh");
		repository.put("hoopla", page);

		assertEquals("ModelTest.simple 1", "ugh ugh",
			show(m1,"hoopla", "what"));
		assertEquals("ModelTest.simple 2", "Describe 'boogie' here...",
			show(m1,"boogie", "what"));
	}
}




Copyright 1998-2008 Alvin Alexander
All Rights Reserved.
 
devdaily.com is based in louisville, kentucky, and this web site is hosted by godaddy.com