2323
2424import org .junit .Rule ;
2525import org .junit .Test ;
26+ import org .junit .jupiter .api .Assertions ;
2627import org .junit .rules .ExpectedException ;
2728
2829import org .springframework .boot .autoconfigure .jdbc .DataSourceProperties ;
3233import org .springframework .cloud .dataflow .server .controller .WhitelistProperties ;
3334import org .springframework .cloud .deployer .spi .core .AppDefinition ;
3435import org .springframework .core .io .Resource ;
36+ import org .springframework .util .StringUtils ;
3537
3638import static org .assertj .core .api .Assertions .assertThat ;
3739import static org .junit .Assert .assertTrue ;
@@ -47,7 +49,7 @@ public class TaskServiceUtilsTests {
4749 public static final String BASE_GRAPH = "AAA && BBB" ;
4850
4951 @ Rule
50- public ExpectedException expectedException = ExpectedException . none () ;
52+ public ExpectedException expectedException ;
5153
5254 @ Test
5355 public void testCreateComposedTaskDefinition () {
@@ -58,16 +60,18 @@ public void testCreateComposedTaskDefinition() {
5860
5961 @ Test
6062 public void testCreateComposeTaskDefinitionNullNameCheck () {
61- this .expectedException .expect (IllegalArgumentException .class );
62- TaskConfigurationProperties props = new TaskConfigurationProperties ();
63- TaskServiceUtils .createComposedTaskDefinition (BASE_GRAPH );
64- TaskServiceUtils .createComposedTaskDefinition (null );
63+ Assertions .assertThrows (IllegalArgumentException .class , () -> {
64+ TaskConfigurationProperties props = new TaskConfigurationProperties ();
65+ TaskServiceUtils .createComposedTaskDefinition (BASE_GRAPH );
66+ TaskServiceUtils .createComposedTaskDefinition (null );
67+ });
6568 }
6669
6770 @ Test
6871 public void testCreateComposeTaskDefinitionNullProperties () {
69- this .expectedException .expect (IllegalArgumentException .class );
70- TaskServiceUtils .createComposedTaskDefinition (BASE_GRAPH , null );
72+ Assertions .assertThrows (IllegalArgumentException .class , () -> {
73+ TaskServiceUtils .createComposedTaskDefinition (BASE_GRAPH , null );
74+ });
7175 }
7276
7377 @ Test
@@ -88,16 +92,11 @@ public void testCTRPropertyReplacement() {
8892 @ Test
8993 public void testDatabasePropUpdate () {
9094 TaskDefinition taskDefinition = new TaskDefinition ("testTask" , "testApp" );
91- DataSourceProperties dataSourceProperties = new DataSourceProperties ();
92- dataSourceProperties .setUsername ("myUser" );
93- dataSourceProperties .setDriverClassName ("myDriver" );
94- dataSourceProperties .setPassword ("myPassword" );
95- dataSourceProperties .setUrl ("myUrl" );
95+ DataSourceProperties dataSourceProperties = getDataSourceProperties ();
9696 TaskDefinition definition = TaskServiceUtils .updateTaskProperties (
9797 taskDefinition ,
9898 dataSourceProperties );
9999
100- assertThat (definition .getProperties ().size ()).isEqualTo (5 );
101100 assertThat (definition .getProperties ().get ("spring.datasource.url" )).isEqualTo ("myUrl" );
102101 assertThat (definition .getProperties ().get ("spring.datasource.driverClassName" )).isEqualTo ("myDriver" );
103102 assertThat (definition .getProperties ().get ("spring.datasource.username" )).isEqualTo ("myUser" );
@@ -107,18 +106,58 @@ public void testDatabasePropUpdate() {
107106 @ Test
108107 public void testDatabasePropUpdateWithPlatform () {
109108 TaskDefinition taskDefinition = new TaskDefinition ("testTask" , "testApp" );
110- DataSourceProperties dataSourceProperties = new DataSourceProperties ();
111- dataSourceProperties .setUsername ("myUser" );
112- dataSourceProperties .setDriverClassName ("myDriver" );
113- dataSourceProperties .setPassword ("myPassword" );
114- dataSourceProperties .setUrl ("myUrl" );
109+ DataSourceProperties dataSourceProperties = getDataSourceProperties ();
115110 TaskDefinition definition = TaskServiceUtils .updateTaskProperties (
116111 taskDefinition ,
117112 dataSourceProperties , false );
118113
119- assertThat (definition .getProperties ().size ()).isEqualTo (3 );
120- assertThat (definition .getProperties ().get ("spring.datasource.url" )).isEqualTo ("myUrl" );
114+ validateProperties (definition , 3 );
121115 assertThat (definition .getProperties ().get ("spring.datasource.driverClassName" )).isEqualTo ("myDriver" );
116+ }
117+
118+ @ Test
119+ public void testDatabasePropUpdateWithPlatformForUserDriverClassName () {
120+ TaskDefinition definition = createUpdatedDefinitionForProperty ("spring.datasource.driverClassName" , "foobar" );
121+ validateProperties (definition , 2 );
122+ assertThat (definition .getProperties ().get ("spring.datasource.driverClassName" )).isEqualTo ("foobar" );
123+
124+ definition = createUpdatedDefinitionForProperty ("spring.datasource.driver-class-name" , "feebar" );
125+ validateProperties (definition , 2 );
126+ assertThat (definition .getProperties ().get ("spring.datasource.driver-class-name" )).isEqualTo ("feebar" );
127+
128+ definition = createUpdatedDefinitionForProperty (null , null );
129+ validateProperties (definition , 2 );
130+ assertThat (definition .getProperties ().get ("spring.datasource.driverClassName" )).isEqualTo ("myDriver" );
131+ }
132+
133+ @ Test
134+ public void testDatabasePropUpdateWithPlatformForUrl () {
135+ TaskDefinition definition = createUpdatedDefinitionForProperty ("spring.datasource.url" , "newurl" );
136+ assertThat (definition .getProperties ().get ("spring.datasource.url" )).isEqualTo ("newurl" );
137+
138+ definition = createUpdatedDefinitionForProperty (null , null );
139+ assertThat (definition .getProperties ().get ("spring.datasource.url" )).isEqualTo ("myUrl" );
140+ }
141+
142+ private TaskDefinition createUpdatedDefinitionForProperty (String key , String value ) {
143+ Map <String , String > props = new HashMap <>();
144+ if (StringUtils .hasText (key ) && StringUtils .hasText (value )) {
145+ props .put (key , value );
146+ }
147+ TaskDefinition taskDefinition = (new TaskDefinition .TaskDefinitionBuilder ()).
148+ addProperties (props ).
149+ setTaskName ("testTask" ).
150+ setRegisteredAppName ("testApp" ).
151+ build ();
152+ DataSourceProperties dataSourceProperties = getDataSourceProperties ();
153+ return TaskServiceUtils .updateTaskProperties (
154+ taskDefinition ,
155+ dataSourceProperties , false );
156+ }
157+
158+ private void validateProperties (TaskDefinition definition , int size ) {
159+ assertThat (definition .getProperties ().size ()).isEqualTo (size );
160+ assertThat (definition .getProperties ().get ("spring.datasource.url" )).isEqualTo ("myUrl" );
122161 assertThat (definition .getProperties ().get ("spring.datasource.username" )).isNull ();
123162 assertThat (definition .getProperties ().get ("spring.datasource.password" )).isNull ();
124163 }
@@ -201,4 +240,13 @@ private TaskNode parse(String dsltext) {
201240 TaskNode ctn = new TaskParser ("test" , dsltext , true , true ).parse ();
202241 return ctn ;
203242 }
243+
244+ private DataSourceProperties getDataSourceProperties () {
245+ DataSourceProperties dataSourceProperties = new DataSourceProperties ();
246+ dataSourceProperties .setUsername ("myUser" );
247+ dataSourceProperties .setDriverClassName ("myDriver" );
248+ dataSourceProperties .setPassword ("myPassword" );
249+ dataSourceProperties .setUrl ("myUrl" );
250+ return dataSourceProperties ;
251+ }
204252}
0 commit comments