package com.canoo.webtest.self;
import junit.framework.TestCase;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Target;
import org.apache.tools.ant.Task;
import com.canoo.webtest.self.CollectingBuildListener.CollectedBuildEvent;
/**
* Tests for {@link CollectingBuildListener}.
* @author Marc Guillemot
*/
public class CollectingBuildListenerTest extends TestCase
{
public void testCollectedBuildEventEquals()
{
final Project p = new Project();
final CollectedBuildEvent event1 = new CollectedBuildEvent("buildStarted", new BuildEvent(p));
assertFalse(event1.equals(new Object()));
assertFalse(event1.equals(new CollectedBuildEvent("buildFinished", new BuildEvent(p))));
assertEquals(event1, new CollectedBuildEvent("buildStarted", new BuildEvent(p)));
}
public void testCollectedBuildEventToString()
{
final Project p = new Project();
final CollectedBuildEvent event = new CollectedBuildEvent("buildStarted", new BuildEvent(p));
assertTrue(event.toString().indexOf("buildStarted") > 0);
}
public void testCollectedBuildEventHashCode()
{
final Project p = new Project();
final CollectedBuildEvent event1 = new CollectedBuildEvent("buildStarted", new BuildEvent(p));
assertTrue(event1.hashCode() != new CollectedBuildEvent("buildFinished", new BuildEvent(p)).hashCode());
assertEquals(event1.hashCode(), new CollectedBuildEvent("buildStarted", new BuildEvent(p)).hashCode());
}
public void testEvents()
{
final Project project = new Project();
final Target target = new Target();
target.setProject(project);
final Task task = new Task() {};
task.setProject(project);
task.setOwningTarget(target);
final CollectingBuildListener listener = new CollectingBuildListener();
int index = 0;
// build started
final BuildEvent buildStartedEvent = new BuildEvent(project);
listener.buildStarted(buildStartedEvent);
assertEquals(new CollectedBuildEvent("buildStarted", buildStartedEvent), listener.getCollectedEvents().get(index++));
// target started
final BuildEvent targetStartedEvent = new BuildEvent(target);
listener.targetStarted(targetStartedEvent);
assertEquals(new CollectedBuildEvent("targetStarted", targetStartedEvent), listener.getCollectedEvents().get(index++));
// task started
final BuildEvent taskStartedEvent = new BuildEvent(task);
listener.taskStarted(taskStartedEvent);
assertEquals(new CollectedBuildEvent("taskStarted", taskStartedEvent), listener.getCollectedEvents().get(index++));
// task finished
final BuildEvent taskFinishedEvent = new BuildEvent(task);
listener.taskFinished(taskFinishedEvent);
assertEquals(new CollectedBuildEvent("taskFinished", taskFinishedEvent), listener.getCollectedEvents().get(index++));
// target finished
final BuildEvent targetFinishedEvent = new BuildEvent(target);
listener.targetFinished(targetFinishedEvent);
assertEquals(new CollectedBuildEvent("targetFinished", targetFinishedEvent), listener.getCollectedEvents().get(index++));
// message logged
final BuildEvent messageLoggedEvent = new BuildEvent(project);
listener.messageLogged(messageLoggedEvent);
assertEquals(new CollectedBuildEvent("messageLogged", messageLoggedEvent), listener.getCollectedEvents().get(index++));
// build finished
final BuildEvent buildFinishedEvent = new BuildEvent(project);
listener.buildFinished(buildStartedEvent);
assertEquals(new CollectedBuildEvent("buildFinished", buildFinishedEvent), listener.getCollectedEvents().get(index++));
}
}