22
33import org .junit .Assert ;
44import org .junit .Test ;
5+ import org .slf4j .Logger ;
6+ import org .slf4j .LoggerFactory ;
57
68import java .util .concurrent .ArrayBlockingQueue ;
79import java .util .concurrent .ThreadPoolExecutor ;
810import java .util .concurrent .TimeUnit ;
911import java .util .concurrent .atomic .AtomicBoolean ;
12+ import java .util .concurrent .atomic .AtomicInteger ;
1013
1114public class EventExecutorTest {
1215
16+ private final Logger log = LoggerFactory .getLogger (EventExecutorTest .class .getSimpleName ());
17+
1318 @ Test
1419 public void executorTest () throws IllegalAccessException , InterruptedException {
1520 ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor (
@@ -25,19 +30,26 @@ public void executorTest() throws IllegalAccessException, InterruptedException {
2530 throw new RuntimeException (e );
2631 }
2732 });
33+ AtomicInteger invokeCount = new AtomicInteger ();
2834 EventExecutor executor = new EventExecutor (threadPoolExecutor );
2935 SimpleEventHandler handler = new SimpleEventHandler ("handler1" );
3036 SimpleEventHandler handler2 = new SimpleEventHandler ("handler2" );
3137 executor .addHandler (handler );
3238 executor .addHandler (handler2 );
33- executor .executor (new SimpleEventObject (1 , "HelloWorld" ));
39+ executor .executor (new SimpleEventObject (1 , "HelloWorld" , invokeCount ));
3440 Thread .sleep (500L );
35- System .out .println ("OnlyHandlerTest-----" );
36- System .out .println ("Execute Count: " + executor .executor (handler2 , new SimpleEventObject (1 , "HelloWorld" )));
41+ Assert .assertEquals (invokeCount .get (), 2 );
42+ invokeCount .set (0 );
43+ log .info ("SingleHandlerTest-----" );
44+ log .info ("Execute Count: {}" , executor .executor (handler2 , new SimpleEventObject (1 , "HelloWorld" , invokeCount )));
3745 Thread .sleep (500L );
46+ Assert .assertEquals (invokeCount .get (), 1 );
47+ invokeCount .set (0 );
3848 executor .removeHandler (handler );
39- System .out .println ("deleted Handler" );
40- executor .executor (new SimpleEventObject (2 , "HelloWorld123" ));
49+ log .info ("deleted Handler" );
50+ executor .executor (new SimpleEventObject (2 , "HelloWorld123" , invokeCount ));
51+ Thread .sleep (500L );
52+ Assert .assertEquals (invokeCount .get (), 1 );
4153 }
4254
4355 @ Test
@@ -59,12 +71,14 @@ public void caughtExceptionTest() throws IllegalAccessException, InterruptedExce
5971
6072 AtomicBoolean handlerException = new AtomicBoolean (false );
6173 executor .setEventUncaughtExceptionHandler ((t , handler , handlerMethod , event , cause ) -> {
62- System .out .println (
63- "Thread: [" + t .getId () + "] " + t .getName () +
64- ", Handler: " + handler .toString () +
65- ", MethodName: " + handlerMethod .getName () +
66- ", Event: " + event .getClass ().getSimpleName () +
67- " throw Exception: " + cause .getMessage ());
74+ log .info ("Thread: [{}] {}, Handler: {}, MethodName: {}, Event: {} - throw Exception: {}" ,
75+ t .getId (),
76+ t .getName (),
77+ handler .toString (),
78+ handlerMethod .getName (),
79+ event .getClass ().getSimpleName (),
80+ cause .getMessage ()
81+ );
6882 cause .printStackTrace ();
6983 handlerException .set (true );
7084 });
0 commit comments