77
88import ch .puzzle .okr .exception .HibernateContextException ;
99import java .util .Properties ;
10+ import java .util .stream .Stream ;
1011import org .junit .jupiter .api .BeforeEach ;
1112import org .junit .jupiter .api .DisplayName ;
1213import org .junit .jupiter .api .Test ;
14+ import org .junit .jupiter .params .ParameterizedTest ;
15+ import org .junit .jupiter .params .provider .Arguments ;
16+ import org .junit .jupiter .params .provider .MethodSource ;
1317import org .springframework .core .env .ConfigurableEnvironment ;
1418
1519class HibernateContextTest {
@@ -19,6 +23,35 @@ void setUp() {
1923 HibernateContext .setHibernateConfig (null );
2024 }
2125
26+ private static Stream <Arguments > invalidDbConfig () {
27+ return Stream
28+ .of ( //
29+ Arguments .of (null , "username" , "password" , "multiTenancy" ), //
30+ Arguments .of ("" , "username" , "password" , "multiTenancy" ), //
31+ Arguments .of ("url" , null , "password" , "multiTenancy" ), //
32+ Arguments .of ("url" , "" , "password" , "multiTenancy" ), //
33+ Arguments .of ("url" , "username" , null , "multiTenancy" ), //
34+ Arguments .of ("url" , "username" , "" , "multiTenancy" ), //
35+ Arguments .of ("url" , "username" , "password" , null ), //
36+ Arguments .of ("url" , "username" , "password" , "" ));
37+ }
38+
39+ @ ParameterizedTest (name = "extractAndSetHibernateConfig() should throw an exception if dbConfig has null or empty values" )
40+ @ MethodSource ("invalidDbConfig" )
41+ void extractAndSetHibernateConfigShouldThrowExceptionIfDbConfigHasNullOrEmptyValues (String url , String username , String password , String multiTenancy ) {
42+ // arrange
43+ ConfigurableEnvironment environment = mock (ConfigurableEnvironment .class );
44+ when (environment .getProperty (HIBERNATE_CONNECTION_URL )).thenReturn (url );
45+ when (environment .getProperty (HIBERNATE_CONNECTION_USERNAME )).thenReturn (username );
46+ when (environment .getProperty (HIBERNATE_CONNECTION_PASSWORD )).thenReturn (password );
47+ when (environment .getProperty (HIBERNATE_MULTITENANCY )).thenReturn (multiTenancy );
48+
49+ // act + assert
50+ HibernateContextException exception = assertThrows (HibernateContextException .class ,
51+ () -> extractAndSetHibernateConfig (environment ));
52+ assertTrue (exception .getMessage ().startsWith ("Invalid hibernate configuration" ));
53+ }
54+
2255 @ DisplayName ("extractAndSetHibernateConfig() should extract hibernate properties from environment and set it" )
2356 @ Test
2457 void extractAndSetHibernateConfigShouldExtractHibernatePropertiesFromEnvironmentAndSetIt () {
0 commit comments