package com.thoughtworks.testdox;
import java.util.ArrayList;
import java.util.List;
import org.mockito.Mockito;
import junit.framework.TestCase;
import com.thoughtworks.qdox.model.JavaClass;
import com.thoughtworks.qdox.model.JavaSource;
/**
* Created by IntelliJ IDEA.
* User: skizz
* Date: May 9, 2003
* Time: 3:38:22 PM
* To change this template use Options | File Templates.
*/
public class DocumentGeneratorTest extends TestCase {
List<String> messages = new ArrayList<String>();
private Main main;
public void setUp()
{
main = new Main();
main.addDocumentGenerator(new Foo());
}
private class Foo implements DocumentGenerator {
public void startClass(String name) {
messages.add("startClass(" + name + ")");
}
public void endClass(String name) {
messages.add("endClass(" + name + ")");
}
public void onTest(String name) {
messages.add("onTest(" + name + ")");
}
public void endGeneration() {
// TODO Auto-generated method stub
}
public void endRun() {
messages.add("endRun()");
}
public void startPackage(String name) {
// TODO Auto-generated method stub
}
public void startRun() {
messages.add("startRun()");
}
}
public void testStartRunAndEndRunAreCalled() {
main.doSources(new JavaSource[] {});
assertTrue(messages.contains("startRun()"));
assertTrue(messages.contains("endRun()"));
}
public void testStartClassAndEndClassAreCalled() {
Main main = new Main();
main.addDocumentGenerator(new Foo());
JavaClass[] aClass = new JavaClass[1];
aClass[0] = new JavaClass();
aClass[0].setName("ClassNameTest");
main.doClasses(aClass, Mockito.mock(JavaSource.class), new ArrayList<String>());
JavaSource mockJavaSource = Mockito.mock(JavaSource.class);
main.doClasses(aClass, mockJavaSource, new ArrayList<String>());
assertTrue(messages.contains("startClass(ClassName)"));
assertTrue(messages.contains("endClass(ClassName)"));
}
}