2525import ninja .utils .NinjaMode ;
2626import ninja .utils .NinjaPropertiesImpl ;
2727import org .flywaydb .core .Flyway ;
28+ import org .flywaydb .core .api .configuration .FluentConfiguration ;
2829import org .junit .Test ;
2930import org .mockito .InOrder ;
3031import org .mockito .Mockito ;
3738
3839public class MigrationEngineFlywayTest {
3940
40- private MigrationEngineFlyway getTestInstance (Flyway flywayInstance ,
41+ private Flyway mockedFlyway ;
42+
43+ private MigrationEngineFlyway getTestInstance (FluentConfiguration fluentConfiguration ,
4144 NinjaMode ninjaMode ,
4245 Map <String , String > customProperties ) {
4346 NinjaPropertiesImpl ninjaProperties = NinjaPropertiesImpl .builder ()
@@ -54,65 +57,78 @@ private MigrationEngineFlyway getTestInstance(Flyway flywayInstance,
5457 protected void configure () {
5558 bind (NinjaProperties .class ).toInstance (ninjaProperties );
5659 install (new MigrationClassicModule ());
57- bind (Flyway .class ).toInstance (flywayInstance );
60+ bind (FluentConfiguration .class ).toInstance (fluentConfiguration );
5861 }
5962 });
6063 return injector .getInstance (MigrationEngineFlyway .class );
6164 }
6265
63- private Flyway testMockedMigrate (NinjaMode ninjaMode , Map <String , String > customProperties ) {
64- Flyway mockedFlyway = mock (Flyway .class );
65- MigrationEngineFlyway migrationEngineFlyway = getTestInstance (mockedFlyway , ninjaMode , customProperties );
66+ private FluentConfiguration testMockedMigrate (NinjaMode ninjaMode , Map <String , String > customProperties ) {
67+ FluentConfiguration mockedFluentConfiguration = mock (FluentConfiguration .class );
68+ mockedFlyway = mock (Flyway .class );
69+ when (mockedFluentConfiguration .load ()).thenReturn (mockedFlyway );
70+ when (mockedFluentConfiguration .dataSource ("testurl" , "testuser" , "testpassword" )).thenReturn (mockedFluentConfiguration );
71+ MigrationEngineFlyway migrationEngineFlyway = getTestInstance (mockedFluentConfiguration , ninjaMode , customProperties );
6672 migrationEngineFlyway .migrate ();
67- return mockedFlyway ;
73+ return mockedFluentConfiguration ;
6874 }
6975
70- private Flyway testMockedMigrate (NinjaMode ninjaMode ) {
76+ private FluentConfiguration testMockedMigrate (NinjaMode ninjaMode ) {
7177 return testMockedMigrate (ninjaMode , Collections .emptyMap ());
7278 }
7379
7480 @ Test
7581 public void testModeDefault () {
76- Flyway mock = testMockedMigrate (NinjaMode .test );
77- InOrder inOrder = Mockito .inOrder (mock );
78- inOrder .verify (mock ).setDataSource ("testurl" , "testuser" , "testpassword" );
79- inOrder .verify (mock ).clean ();
80- inOrder .verify (mock ).migrate ();
82+ FluentConfiguration mock = testMockedMigrate (NinjaMode .test );
83+ InOrder inOrder = Mockito .inOrder (mock , mockedFlyway );
84+
85+ inOrder .verify (mock ).dataSource ("testurl" , "testuser" , "testpassword" );
86+ inOrder .verify (mock ).load ();
87+
88+ inOrder .verify (mockedFlyway ).clean ();
89+ inOrder .verify (mockedFlyway ).migrate ();
8190 }
8291
8392 @ Test
8493 public void testModeNoDrop () {
85- Flyway mock = testMockedMigrate (NinjaMode .test ,
94+ FluentConfiguration mock = testMockedMigrate (NinjaMode .test ,
8695 ImmutableMap .of (NinjaConstant .NINJA_MIGRATION_DROP_SCHEMA , String .valueOf (false )));
87- InOrder inOrder = Mockito .inOrder (mock );
88- inOrder .verify (mock ).migrate ();
89- verify (mock , never ()).clean ();
96+ InOrder inOrder = Mockito .inOrder (mock , mockedFlyway );
97+
98+ inOrder .verify (mock ).dataSource ("testurl" , "testuser" , "testpassword" );
99+ inOrder .verify (mock ).load ();
100+
101+ inOrder .verify (mockedFlyway ).migrate ();
102+ verify (mockedFlyway , never ()).clean ();
90103 }
91104
92105 @ Test
93106 public void prodModeDefault () {
94- Flyway mock = testMockedMigrate (NinjaMode .prod );
95- InOrder inOrder = Mockito .inOrder (mock );
96- inOrder .verify (mock ).setDataSource ("testurl" , "testuser" , "testpassword" );
97- inOrder .verify (mock ).migrate ();
98- verify (mock , never ()).clean ();
107+ FluentConfiguration mock = testMockedMigrate (NinjaMode .prod );
108+ InOrder inOrder = Mockito .inOrder (mock , mockedFlyway );
109+
110+ inOrder .verify (mock ).dataSource ("testurl" , "testuser" , "testpassword" );
111+ inOrder .verify (mock ).load ();
112+
113+ inOrder .verify (mockedFlyway ).migrate ();
114+ verify (mockedFlyway , never ()).clean ();
99115 }
100116
101117 @ Test
102118 public void prodModeCustomLocation () {
103- Flyway mock = testMockedMigrate (NinjaMode .prod ,
119+ FluentConfiguration mock = testMockedMigrate (NinjaMode .prod ,
104120 ImmutableMap .of (NinjaConstant .NINJA_MIGRATION_LOCATIONS , "location" ));
105- InOrder inOrder = Mockito .inOrder (mock );
106- inOrder .verify (mock ).setLocations ("location" );
107- inOrder .verify (mock ).migrate ();
121+ InOrder inOrder = Mockito .inOrder (mock , mockedFlyway );
122+ inOrder .verify (mock ).locations ("location" );
123+ inOrder .verify (mockedFlyway ).migrate ();
108124 }
109125
110126 @ Test
111127 public void prodModeCustomSchema () {
112- Flyway mock = testMockedMigrate (NinjaMode .prod ,
128+ FluentConfiguration mock = testMockedMigrate (NinjaMode .prod ,
113129 ImmutableMap .of (NinjaConstant .NINJA_MIGRATION_SCHEMAS , "schema" ));
114- InOrder inOrder = Mockito .inOrder (mock );
115- inOrder .verify (mock ).setSchemas ("schema" );
116- inOrder .verify (mock ).migrate ();
130+ InOrder inOrder = Mockito .inOrder (mock , mockedFlyway );
131+ inOrder .verify (mock ).schemas ("schema" );
132+ inOrder .verify (mockedFlyway ).migrate ();
117133 }
118134}
0 commit comments