- Revision
- 730
- Author
- sirenian
- Date
- 2007-05-23 07:48:52 -0500 (Wed, 23 May 2007)
Log Message
[EK] Included patch for JUnitAdapter; thank you very much Alexandre!
Modified Paths
- trunk/extensions/junit/src/behaviour/org/jbehave/junit/JUnitAdapterBehaviour.java
- trunk/extensions/junit/src/java/org/jbehave/junit/JUnitAdapter.java
Diff
Modified: trunk/extensions/junit/src/behaviour/org/jbehave/junit/JUnitAdapterBehaviour.java (729 => 730)
--- trunk/extensions/junit/src/behaviour/org/jbehave/junit/JUnitAdapterBehaviour.java 2007-05-23 05:56:18 UTC (rev 729) +++ trunk/extensions/junit/src/behaviour/org/jbehave/junit/JUnitAdapterBehaviour.java 2007-05-23 12:48:52 UTC (rev 730) @@ -77,6 +77,42 @@ } } + public void shouldCountMultipleBehaviourMethodsAsTestsRecursively() { + // setup + JUnitAdapter.setBehaviours (new BehavioursWithOneBehavioursClass()); + Test suite = JUnitAdapter.suite(); + // execute + int testCaseCount = suite.countTestCases(); + + // verify + ensureThat(testCaseCount, eq(3)); + } + + public static class BehavioursWithOneBehavioursClass implements Behaviours { + public Class[] getBehaviours() { + return new Class[] { + new AnotherBehavioursWithOneBehavioursClass().getClass() + }; + } + } + + public static class AnotherBehavioursWithOneBehavioursClass implements Behaviours { + public Class[] getBehaviours() { + return new Class[] { + new BehavioursWithTwoBehaviourClasses().getClass() + }; + } + } + + public static class BehavioursWithTwoBehaviourClasses implements Behaviours { + public Class[] getBehaviours() { + return new Class[] { + HasTwoMethods.class, + HasSingleMethod.class + }; + } + } + public void shouldNotExecuteBehaviourMethodsWhileCountingThem() throws Exception { // setup JUnitAdapter.setBehaviours(new BehavioursAdapter(HasFailingMethod.class));
Modified: trunk/extensions/junit/src/java/org/jbehave/junit/JUnitAdapter.java (729 => 730)
--- trunk/extensions/junit/src/java/org/jbehave/junit/JUnitAdapter.java 2007-05-23 05:56:18 UTC (rev 729) +++ trunk/extensions/junit/src/java/org/jbehave/junit/JUnitAdapter.java 2007-05-23 12:48:52 UTC (rev 730) @@ -89,10 +89,14 @@ } private static TestSuite createBehavioursTestSuite(Behaviours behaviours) { - TestSuite suite = new TestSuite(behaviours.toString()); - Class[] behaviourClasses = behaviours.getBehaviours(); - for ( int i = 0; i < behaviourClasses.length; i++ ){ - suite.addTest(createBehaviourTestSuite(new BehaviourClass(behaviourClasses[i]))); + TestSuite suite = new TestSuite(behaviours.toString()); + Class[] behaviourClasses = behaviours.getBehaviours (); + for ( int i = 0; i < behaviourClasses.length; i++ ) { + if (isBehavioursType(behaviourClasses[i])) { + suite.addTest(createBehavioursTestSuite((Behaviours)newInstance(behaviourClasses[i]))); + } else { + suite.addTest(createBehaviourTestSuite(new BehaviourClass(behaviourClasses[i]))); + } } return suite; } @@ -106,6 +110,18 @@ return suite; } + + private static boolean isBehavioursType(Class clazz) { + Class[] interfaces = clazz.getInterfaces(); + for ( int i = 0; i < interfaces.length; i++ ) { + if (interfaces[i].equals(Behaviours.class)) { + return true; + } + } + return false; + } + + private static Behaviours getBehaviours() { if ( behaviours != null ){ return behaviours;
To unsubscribe from this list please visit:
