[jboss-svn-commits] JBL Code SVN: r32689 - in labs/jbossrules/trunk/drools-examples/drools-examples-fusion: src/test/java/org/drools/examples/broker/events and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Apr 30 11:56:29 EDT 2010


Author: tirelli
Date: 2010-04-30 11:56:28 -0400 (Fri, 30 Apr 2010)
New Revision: 32689

Modified:
   labs/jbossrules/trunk/drools-examples/drools-examples-fusion/.classpath
   labs/jbossrules/trunk/drools-examples/drools-examples-fusion/src/test/java/org/drools/examples/broker/events/EventFeederTest.java
Log:
Removing old jmock dependency and replacing it by mockito

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-fusion/.classpath
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-fusion/.classpath	2010-04-30 14:48:36 UTC (rev 32688)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-fusion/.classpath	2010-04-30 15:56:28 UTC (rev 32689)
@@ -8,20 +8,18 @@
 	<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.1.1/antlr-runtime-3.1.1.jar"/>
 	<classpathentry kind="var" path="M2_REPO/cglib/cglib-nodep/2.1_3/cglib-nodep-2.1_3.jar"/>
 	<classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.4.2.v_883_R34x/core-3.4.2.v_883_R34x.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/drools/drools-api/5.0.1.SNAPSHOT/drools-api-5.0.1.SNAPSHOT.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/drools/drools-compiler/5.0.1.SNAPSHOT/drools-compiler-5.0.1.SNAPSHOT.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/drools/drools-core/5.0.1.SNAPSHOT/drools-core-5.0.1.SNAPSHOT.jar"/>
 	<classpathentry kind="var" path="M2_REPO/com/jgoodies/forms/1.2.1/forms-1.2.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1-sources.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1.jar" sourcepath="M2_REPO/org/hamcrest/hamcrest-library/1.1/hamcrest-library-1.1-sources.jar"/>
 	<classpathentry kind="var" path="M2_REPO/janino/janino/2.5.15/janino-2.5.15.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jmock/jmock/2.5.1/jmock-2.5.1.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/jmock/jmock-legacy/2.5.1/jmock-legacy-2.5.1.jar"/>
 	<classpathentry kind="var" path="M2_REPO/joda-time/joda-time/1.6/joda-time-1.6.jar"/>
-	<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar"/>
+	<classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/>
 	<classpathentry kind="var" path="M2_REPO/com/jgoodies/looks/2.2.0/looks-2.2.0.jar"/>
-	<classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.10/mvel2-2.0.10.jar"/>
 	<classpathentry kind="var" path="M2_REPO/org/objenesis/objenesis/1.0/objenesis-1.0.jar"/>
-	<classpathentry kind="con" path="DROOLS/Drools"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/drools-api"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/drools-compiler"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/drools-core"/>
+	<classpathentry kind="var" path="M2_REPO/org/mvel/mvel2/2.0.16/mvel2-2.0.16.jar"/>
+	<classpathentry kind="var" path="M2_REPO/org/mockito/mockito-all/1.8.2/mockito-all-1.8.2.jar"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>

Modified: labs/jbossrules/trunk/drools-examples/drools-examples-fusion/src/test/java/org/drools/examples/broker/events/EventFeederTest.java
===================================================================
--- labs/jbossrules/trunk/drools-examples/drools-examples-fusion/src/test/java/org/drools/examples/broker/events/EventFeederTest.java	2010-04-30 14:48:36 UTC (rev 32688)
+++ labs/jbossrules/trunk/drools-examples/drools-examples-fusion/src/test/java/org/drools/examples/broker/events/EventFeederTest.java	2010-04-30 15:56:28 UTC (rev 32689)
@@ -1,18 +1,21 @@
 package org.drools.examples.broker.events;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import java.util.Arrays;
+import java.util.Iterator;
 import java.util.concurrent.TimeUnit;
 
 import junit.framework.TestCase;
 
-import org.drools.time.impl.JDKTimerService;
 import org.drools.time.impl.PseudoClockScheduler;
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.Sequence;
-import org.jmock.States;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
 
 public class EventFeederTest extends TestCase {
-    Mockery context = new Mockery();
 
     protected void setUp() throws Exception {
         super.setUp();
@@ -20,145 +23,46 @@
 
     public void testFeedPseudoClock() {
         // create the events for the test
-        final Event<String> event1 = new EventImpl<String>( 1000, "one" );
-        final Event<String> event2 = new EventImpl<String>( 1100, "two" );
-        final Event<String> event3 = new EventImpl<String>( 1120, "three" );
-        final Event<String> event4 = new EventImpl<String>( 1300, "four" );
-        final Event<String> event5 = new EventImpl<String>( 1550, "five" );
-        final Event<String> event6 = new EventImpl<String>( 1700, "six" );
-        
-        // define a jmock sequence and state machine
-        final Sequence seq = context.sequence( "call sequence" );
-        final States ts = context.states( "timestamp" ).startsAs( String.valueOf( event1.getTimestamp() ) );
-        
+        final Event< ? >[] events = new Event[]{new EventImpl<String>( 1000,
+                                                                       "one" ), new EventImpl<String>( 1100,
+                                                                                                       "two" ), new EventImpl<String>( 1120,
+                                                                                                                                       "three" ), new EventImpl<String>( 1300,
+                                                                                                                                                                         "four" ), new EventImpl<String>( 1550,
+                                                                                                                                                                                                          "five" ), new EventImpl<String>( 1700,
+                                                                                                                                                                                                                                           "six" ),};
+
+        final Iterator<Event< ? >> it = Arrays.asList( events ).iterator();
+
         // create mock objects for the source and the receiver
-        final EventSource source = context.mock( EventSource.class );
-        final EventReceiver receiver = context.mock( EventReceiver.class );
+        final EventSource source = mock( EventSource.class );
+        final EventReceiver receiver = mock( EventReceiver.class );
+
+        when( source.hasNext() ).thenAnswer( new Answer<Boolean>() {
+            public Boolean answer(InvocationOnMock invocation) throws Throwable {
+                return it.hasNext();
+            }
+        } );
+        when( source.getNext() ).thenAnswer( new Answer<Event<?>>() {
+            public Event< ? > answer(InvocationOnMock invocation) throws Throwable {
+                return it.next();
+            }
+        });
         
         // create the scheduler used by drools and the feeder to be tested
         PseudoClockScheduler clock = new PseudoClockScheduler();
-        EventFeeder feeder = new EventFeeder( clock, source, receiver );
-        
-        // create the expectations
-        context.checking( new Expectations() {{
-            // there is an event1, so, read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) ); 
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event1 ) );  
-            oneOf( receiver ).receive( event1 ); inSequence( seq ); when( ts.is( String.valueOf( event1.getTimestamp() ) ) ); 
-            then( ts.is( String.valueOf( event2.getTimestamp() ) ) );
-            
-            // there is an event 2, so read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) );
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event2 ) );  
-            oneOf( receiver ).receive( event2 ); inSequence( seq ); when( ts.is( String.valueOf( event2.getTimestamp() ) ) );
-            then( ts.is( String.valueOf( event3.getTimestamp() ) ) );
-            
-            // there is an event 3, so read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) );
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event3 ) );  
-            oneOf( receiver ).receive( event3 ); inSequence( seq ); when( ts.is( String.valueOf( event3.getTimestamp() ) ) );
-            then( ts.is( String.valueOf( event4.getTimestamp() ) ) );
-            
-            // there is an event 4, so read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) );
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event4 ) );  
-            oneOf( receiver ).receive( event4 ); inSequence( seq ); when( ts.is( String.valueOf( event4.getTimestamp() ) ) ); 
-            then( ts.is( String.valueOf( event5.getTimestamp() ) ) );
-            
-            // there is an event 5, so read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) );
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event5 ) );  
-            oneOf( receiver ).receive( event5 ); inSequence( seq ); when( ts.is( String.valueOf( event5.getTimestamp() ) ) ); 
-            then( ts.is( String.valueOf( event6.getTimestamp() ) ) );
-            
-            // there is an event 6, so read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) );
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event6 ) );  
-            oneOf( receiver ).receive( event6 ); inSequence( seq ); when( ts.is( String.valueOf( event6.getTimestamp() ) ) ); 
-            
-            // there are no more events
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( false ) );
-        }});
-        
-        feeder.feed();
-        // advancing time step by step, so that we can test state between advances
-        clock.advanceTime( event1.getTimestamp() - clock.getCurrentTime(), TimeUnit.MILLISECONDS );
-        clock.advanceTime( event2.getTimestamp() - clock.getCurrentTime(), TimeUnit.MILLISECONDS );
-        clock.advanceTime( event3.getTimestamp() - clock.getCurrentTime(), TimeUnit.MILLISECONDS );
-        clock.advanceTime( event4.getTimestamp() - clock.getCurrentTime(), TimeUnit.MILLISECONDS );
-        clock.advanceTime( event5.getTimestamp() - clock.getCurrentTime(), TimeUnit.MILLISECONDS );
-        clock.advanceTime( event6.getTimestamp() - clock.getCurrentTime(), TimeUnit.MILLISECONDS );
-        
-        context.assertIsSatisfied();
-    }
+        EventFeeder feeder = new EventFeeder( clock,
+                                              source,
+                                              receiver );
 
-    @SuppressWarnings("static-access")
-    public void testFeedRealtimeClock() {
-        // create the events for the test
-        long startTime = System.currentTimeMillis() + 10000;
-        final Event<String> event1 = new EventImpl<String>( startTime + 1000, "one" );
-        final Event<String> event2 = new EventImpl<String>( startTime + 1100, "two" );
-        final Event<String> event3 = new EventImpl<String>( startTime + 1120, "three" );
-        final Event<String> event4 = new EventImpl<String>( startTime + 1300, "four" );
-        final Event<String> event5 = new EventImpl<String>( startTime + 1550, "five" );
-        final Event<String> event6 = new EventImpl<String>( startTime + 1700, "six" );
-        
-        // define a jmock sequence and state machine
-        final Sequence seq = context.sequence( "call sequence" );
-        
-        // create mock objects for the source and the receiver
-        final EventSource source = context.mock( EventSource.class );
-        final EventReceiver receiver = context.mock( EventReceiver.class );
-        
-        // create the scheduler used by drools and the feeder to be tested
-        JDKTimerService clock = new JDKTimerService(1);
-        EventFeeder feeder = new EventFeeder( clock, source, receiver );
-        
-        // create the expectations
-        context.checking( new Expectations() {{
-            // there is an event1, so, read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) ); 
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event1 ) );  
-            oneOf( receiver ).receive( event1 ); inSequence( seq ); 
-            
-            // there is an event 2, so read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) );
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event2 ) );  
-            oneOf( receiver ).receive( event2 ); inSequence( seq ); 
-            
-            // there is an event 3, so read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) );
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event3 ) );  
-            oneOf( receiver ).receive( event3 ); inSequence( seq ); 
-            
-            // there is an event 4, so read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) );
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event4 ) );  
-            oneOf( receiver ).receive( event4 ); inSequence( seq ); 
-            
-            // there is an event 5, so read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) );
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event5 ) );  
-            oneOf( receiver ).receive( event5 ); inSequence( seq ); 
-            
-            // there is an event 6, so read and feed
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( true ) );
-            oneOf( source ).getNext(); inSequence( seq ); will( returnValue( event6 ) );  
-            oneOf( receiver ).receive( event6 ); inSequence( seq );  
-            
-            // there are no more events
-            oneOf( source ).hasNext(); inSequence( seq ); will( returnValue( false ) );
-        }});
-        
         feeder.feed();
-        
-        // give time for the test to run
-        try {
-            Thread.currentThread().sleep( 20000 );
-        } catch ( InterruptedException e ) {
-            e.printStackTrace();
+        // advancing time step by step, so that we can test state between advances
+        for( Event<?> event : events ) {
+            clock.advanceTime( event.getTimestamp() - clock.getCurrentTime(),
+                               TimeUnit.MILLISECONDS );
         }
-        
-        context.assertIsSatisfied();
+
+        verify( source, times(7) ).hasNext();
+        verify( source, times(6) ).getNext();
     }
+
 }



More information about the jboss-svn-commits mailing list