// Copyright (c) 2002-2005 Canoo Engineering AG, Switzerland. All Rights Reserved.
package com.canoo.webtest.steps;
import java.util.List;
import org.apache.tools.ant.Task;
import com.canoo.webtest.self.StepStub;
import com.canoo.webtest.steps.request.InvokePage;
/**
* Unit tests for {@link AbstractStepContainer}.
* @author Denis N. Antonioli
* @author Marc Guillemot
*/
public class AbstractStepContainerTest extends BaseStepTestCase {
private AbstractStepContainer fAbstractStepContainer;
/**
* Dummy concrete extension for tests
*/
static class AbstractStepContainerStub extends AbstractStepContainer {
public void doExecute() {
}
}
protected void setUp() throws Exception {
super.setUp();
fAbstractStepContainer = (AbstractStepContainerStub) getStep();
}
protected Step createStep()
{
return new AbstractStepContainerStub();
}
public void testStubCreation() throws Exception {
assertNotNull(fAbstractStepContainer);
executeStep(fAbstractStepContainer); // coverage
}
public void testClone() throws Exception {
final InvokePage step1 = new InvokePage();
step1.setDescription("blah blah");
step1.setTaskName("invoke");
step1.setUrl("/my/Super/page.html");
step1.setProject(fAbstractStepContainer.getProject());
fAbstractStepContainer.addStep(step1);
final AbstractStepContainer clonedContainer = (AbstractStepContainer) fAbstractStepContainer.clone();
final List clonedSteps = clonedContainer.getSteps();
assertEquals(1, clonedSteps.size());
assertEquals(InvokePage.class, clonedSteps.get(0).getClass());
final InvokePage clonedStep = (InvokePage) clonedSteps.get(0);
assertEquals(step1.getUrl(), clonedStep.getUrl());
assertEquals(step1.getDescription(), clonedStep.getDescription());
assertEquals(step1.getTaskName(), clonedStep.getTaskName());
assertSame(step1.getProject(), clonedStep.getProject());
}
public void testAddTask() {
final Task task = new Task(){};
configureTask(task); // would have been done by ant in normal run
fAbstractStepContainer.addTask(task);
final Task firstTask = (Task) fAbstractStepContainer.getSteps().get(0);
assertSame(fAbstractStepContainer.getProject(), firstTask.getProject());
assertSame(fAbstractStepContainer.getOwningTarget(), firstTask.getOwningTarget());
}
public void testAddStep() {
final Step step = new StepStub();
configureTask(step); // would have been done by ant in normal run
fAbstractStepContainer.addTask(step);
final Step firstStep = (Step) fAbstractStepContainer.getSteps().get(0);
assertSame(fAbstractStepContainer.getProject(), firstStep.getProject());
}
}