Update of /cvsroot/mockobjects/no-stone-unturned/src/nostone/junitrunner
In directory usw-pr-cvs1:/tmp/cvs-serv1698/src/nostone/junitrunner
Added Files:
Tasks.java SwingRunner.java SwingRunnerTest.java
TestHelper.java
Log Message:
First test running
--- NEW FILE: Tasks.java ---
package nostone.junitrunner;
public class Tasks {
// TODO Open GUI, close
// TODO Hardcoded testcase, one passing test, show green bar, show test counts
// TODO Hardcoded testcases, two passing test, show green bar, show test counts
// TODO Hardcoded testcase, one failing test, show red bar, show test counts, failure message
// TODO Hardcoded testcase, one error test, show red bar, show test counts, error message
// TODO Hardcoded testcases, passing + failing, show red bar, show test counts, failure message
// TODO Hardcoded testcases, passing + error, show red bar, show test counts, message
// TODO Hardcoded testcases, passing + failure + error, show red bar, show test counts, messages
// TODO dynamic test loading
// TODO rerun tests
// TODO rerun a test
// TODO type in test class
// TODO tree view
}
--- NEW FILE: SwingRunner.java ---
package nostone.junitrunner;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class SwingRunner extends JFrame {
public SwingRunner() {
super("Swing Runner");
JButton quitButton = new JButton("Quit");
quitButton.setName("quit");
quitButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
processWindowEvent(new WindowEvent(SwingRunner.this, WindowEvent.WINDOW_CLOSING));
}
});
getContentPane().add(quitButton);
pack();
}
static public void main(String[] args) {
SwingRunner runner = new SwingRunner();
runner.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
Window w = e.getWindow();
w.setVisible(false);
w.dispose();
System.exit(0);
}
});
runner.setVisible(true);
}
}
--- NEW FILE: SwingRunnerTest.java ---
package nostone.junitrunner;
import nostone.tests.TestHelper;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import junit.framework.TestCase;
import com.mockobjects.ExpectationCounter;
import javax.swing.*;
public class SwingRunnerTest extends TestCase {
public SwingRunnerTest(String name) {
super(name);
}
public void testCreateGui() {
final ExpectationCounter closingCalls = new ExpectationCounter("window closing");
SwingRunner runner = new SwingRunner();
runner.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
closingCalls.inc();
}
});
((JButton) findNamedComponent(runner, "quit")).doClick();
closingCalls.verify();
}
private Component findNamedComponent(final Container container, final String name) {
return new TestHelper().depthFirst(container, new TestHelper.ComponentVisitor() {
public Component apply(Component aComponent) {
return name.equals(aComponent.getName()) ? aComponent : null;
}
});
}
}
--- NEW FILE: TestHelper.java ---
package nostone.junitrunner;
import java.awt.*;
public class TestHelper {
public Component depthFirst(Container container, ComponentVisitor visitor) {
Component[] components = container.getComponents();
for (int i = 0; i < components.length; i++) {
Component component = components[i];
Component applied = visitor.apply(component);
if (null != applied) {
return applied;
}
if (component instanceof Container) {
applied = depthFirst((Container) component, visitor);
if (null != applied) {
return applied;
}
}
}
return null;
}
public interface ComponentVisitor {
public Component apply(Component aComponent);
}
}
|