1818import static com .github .lalyos .jfiglet .FigletFont .convertOneLine ;
1919import static io .jooby .banner .BannerModule .fontPath ;
2020import static io .jooby .banner .BannerModule .rtrim ;
21- import static org .junit .jupiter .api .Assertions .assertEquals ;
21+ import static org .junit .jupiter .api .Assertions .* ;
2222import static org .mockito .ArgumentMatchers .any ;
2323import static org .mockito .ArgumentMatchers .anyString ;
2424import static org .mockito .Mockito .*;
@@ -27,60 +27,99 @@ public class BannerModuleTest {
2727
2828 @ Test
2929 public void install () throws Exception {
30- Map <String , String > map = new HashMap <>();
31- map .put ("application.name" , "Jooby" );
32- map .put ("application.version" , "2.0.0" );
33-
34- Config config = ConfigFactory .parseMap (map );
35-
36- ServiceRegistry registry = mock (ServiceRegistry .class );
37- when (registry .put (Mockito .<ServiceKey <String >>any (), Mockito .<Provider <String >>any ())).thenReturn (null );
38-
39- Logger logger = mock (Logger .class );
40- doNothing ().when (logger ).info (anyString (), any (), any ());
41-
42- Jooby app = mock (Jooby .class );
43- when (app .getConfig ()).thenReturn (config );
44- when (app .getServices ()).thenReturn (registry );
45- when (app .getLog ()).thenReturn (logger );
46- when (app .onStarting (any (SneakyThrows .Runnable .class ))).thenReturn (app );
30+ Jooby app = setup ("Jooby" , "2.0.0" );
4731
48- new BannerModule ().install (app );
32+ new BannerModule ("banner" ).install (app );
4933
5034 @ SuppressWarnings ("unchecked" )
5135 ArgumentCaptor <ServiceKey <String >> keyCaptor = ArgumentCaptor .forClass (ServiceKey .class );
5236 @ SuppressWarnings ("unchecked" )
5337 ArgumentCaptor <Provider <String >> providerCaptor = ArgumentCaptor .forClass (Provider .class );
54- verify (registry ).put (keyCaptor .capture (), providerCaptor .capture ());
38+ verify (app . getServices () ).put (keyCaptor .capture (), providerCaptor .capture ());
5539
5640 assertEquals (String .class , keyCaptor .getValue ().getType ());
5741 assertEquals ("application.banner" , keyCaptor .getValue ().getName ());
58- assertEquals (rtrim (convertOneLine (fontPath ("speed" ), map .get ("application.name" ))), providerCaptor .getValue ().get ());
59-
60- ArgumentCaptor <SneakyThrows .Runnable > runnableCaptor = ArgumentCaptor .forClass (SneakyThrows .Runnable .class );
61- verify (app ).onStarting (runnableCaptor .capture ());
42+ assertEquals (rtrim (convertOneLine (fontPath ("speed" ), "banner" )), providerCaptor .getValue ().get ());
6243
63- runnableCaptor .getValue ().run ();
64- verify (logger ).info ("\n {} v{}\n " , providerCaptor .getValue ().get (), map .get ("application.version" ));
44+ verify (app ).onStarting (Mockito .any (SneakyThrows .Runnable .class ));
6545 }
6646
6747 @ Test
6848 public void trimEnd () throws Exception {
49+ Jooby app = setup ("Jooby" , "2.0.0" );
50+
51+ new BannerModule ("banner " ).install (app );
6952
53+ @ SuppressWarnings ("unchecked" )
54+ ArgumentCaptor <Provider <String >> providerCaptor = ArgumentCaptor .forClass (Provider .class );
55+ verify (app .getServices ()).put (Mockito .<ServiceKey <String >>any (), providerCaptor .capture ());
56+
57+ String banner = providerCaptor .getValue ().get ();
58+ assertFalse (Character .isWhitespace (banner .charAt (banner .length () - 1 )));
7059 }
7160
7261 @ Test
7362 public void print () throws Exception {
63+ Jooby app = setup ("Jooby" , "2.0.0" );
64+
65+ new BannerModule ("banner" ).install (app );
7466
67+ @ SuppressWarnings ("unchecked" )
68+ ArgumentCaptor <Provider <String >> providerCaptor = ArgumentCaptor .forClass (Provider .class );
69+ verify (app .getServices ()).put (Mockito .<ServiceKey <String >>any (), providerCaptor .capture ());
70+
71+ ArgumentCaptor <SneakyThrows .Runnable > runnableCaptor = ArgumentCaptor .forClass (SneakyThrows .Runnable .class );
72+ verify (app ).onStarting (runnableCaptor .capture ());
73+
74+ runnableCaptor .getValue ().run ();
75+ verify (app .getLog ()).info ("\n {} v{}\n " , providerCaptor .getValue ().get (), "2.0.0" );
7576 }
7677
7778 @ Test
7879 public void font () throws Exception {
80+ Jooby app = setup ("Jooby" , "2.0.0" );
81+
82+ new BannerModule ("banner" ).font ("doom" ).install (app );
83+
84+ @ SuppressWarnings ("unchecked" )
85+ ArgumentCaptor <Provider <String >> providerCaptor = ArgumentCaptor .forClass (Provider .class );
86+ verify (app .getServices ()).put (Mockito .<ServiceKey <String >>any (), providerCaptor .capture ());
7987
88+ assertEquals (rtrim (convertOneLine (fontPath ("doom" ), "banner" )), providerCaptor .getValue ().get ());
8089 }
8190
8291 @ Test
8392 public void defprint () throws Exception {
93+ Jooby app = setup ("Jooby" , "2.0.0" );
94+
95+ new BannerModule ().install (app );
96+
97+ @ SuppressWarnings ("unchecked" )
98+ ArgumentCaptor <Provider <String >> providerCaptor = ArgumentCaptor .forClass (Provider .class );
99+ verify (app .getServices ()).put (Mockito .<ServiceKey <String >>any (), providerCaptor .capture ());
100+
101+ assertEquals (rtrim (convertOneLine (fontPath ("speed" ), "Jooby" )), providerCaptor .getValue ().get ());
102+ }
103+
104+ private Jooby setup (String appName , String appVersion ) {
105+ Map <String , String > map = new HashMap <>();
106+ map .put ("application.name" , appName );
107+ map .put ("application.version" , appVersion );
108+
109+ Config config = ConfigFactory .parseMap (map );
110+
111+ ServiceRegistry registry = mock (ServiceRegistry .class );
112+ when (registry .put (Mockito .<ServiceKey <String >>any (), Mockito .<Provider <String >>any ())).thenReturn (null );
113+
114+ Logger logger = mock (Logger .class );
115+ doNothing ().when (logger ).info (anyString (), any (), any ());
116+
117+ Jooby app = mock (Jooby .class );
118+ when (app .getConfig ()).thenReturn (config );
119+ when (app .getServices ()).thenReturn (registry );
120+ when (app .getLog ()).thenReturn (logger );
121+ when (app .onStarting (any (SneakyThrows .Runnable .class ))).thenReturn (app );
84122
123+ return app ;
85124 }
86125}
0 commit comments