From: Steve F. <sm...@us...> - 2002-08-17 20:26:09
|
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); } } |