31
31
import java .util .List ;
32
32
33
33
import static org .hamcrest .Matchers .is ;
34
+ import static org .hamcrest .Matchers .not ;
34
35
import static org .junit .Assert .assertThat ;
35
36
36
37
public class MigrateConfigurationRequestExecutorTest {
37
38
38
39
private PluginSettings pluginSettings ;
39
40
private ClusterProfile clusterProfile ;
40
41
private ElasticAgentProfile elasticAgentProfile ;
42
+ private HashMap <String , String > properties ;
41
43
42
44
@ Before
43
45
public void setUp () throws Exception {
@@ -54,7 +56,7 @@ public void setUp() throws Exception {
54
56
elasticAgentProfile .setId ("profile_id" );
55
57
elasticAgentProfile .setPluginId (Constants .PLUGIN_ID );
56
58
elasticAgentProfile .setClusterProfileId ("cluster_profile_id" );
57
- HashMap < String , String > properties = new HashMap <>();
59
+ properties = new HashMap <>();
58
60
properties .put ("some_key" , "some_value" );
59
61
properties .put ("some_key2" , "some_value2" );
60
62
elasticAgentProfile .setProperties (properties );
@@ -89,8 +91,10 @@ public void shouldNotMigrateConfigWhenClusterProfileIsAlreadyConfigured() throws
89
91
}
90
92
91
93
@ Test
92
- public void shouldDefineANewClusterProfileFromPluginSettings () throws Exception {
93
- MigrateConfigurationRequest request = new MigrateConfigurationRequest (pluginSettings , Collections .emptyList (), Arrays .asList (elasticAgentProfile ));
94
+ public void shouldPopulateNoOpClusterProfileWithPluginSettingsConfigurations () throws Exception {
95
+ ClusterProfile emptyClusterProfile = new ClusterProfile (String .format ("no-op-cluster-for-%s" , Constants .PLUGIN_ID ), Constants .PLUGIN_ID , new PluginSettings ());
96
+ elasticAgentProfile .setClusterProfileId (emptyClusterProfile .getId ());
97
+ MigrateConfigurationRequest request = new MigrateConfigurationRequest (pluginSettings , Arrays .asList (emptyClusterProfile ), Arrays .asList (elasticAgentProfile ));
94
98
MigrateConfigurationRequestExecutor executor = new MigrateConfigurationRequestExecutor (request );
95
99
96
100
GoPluginApiResponse response = executor .execute ();
@@ -100,24 +104,153 @@ public void shouldDefineANewClusterProfileFromPluginSettings() throws Exception
100
104
assertThat (responseObject .getPluginSettings (), is (pluginSettings ));
101
105
List <ClusterProfile > actual = responseObject .getClusterProfiles ();
102
106
ClusterProfile actualClusterProfile = actual .get (0 );
107
+
108
+ assertThat (actualClusterProfile .getId (), is (not (String .format ("no-op-cluster-for-%s" , Constants .PLUGIN_ID ))));
103
109
this .clusterProfile .setId (actualClusterProfile .getId ());
104
110
105
111
assertThat (actual , is (Arrays .asList (this .clusterProfile )));
106
112
assertThat (responseObject .getElasticAgentProfiles (), is (Arrays .asList (elasticAgentProfile )));
113
+
114
+ assertThat (elasticAgentProfile .getClusterProfileId (), is (actualClusterProfile .getId ()));
107
115
}
108
116
109
117
@ Test
110
- public void shouldAssociateExistingElasticAgentProfilesWithNewlyDefinedClusterProfile () throws Exception {
111
- MigrateConfigurationRequest request = new MigrateConfigurationRequest (pluginSettings , Collections .emptyList (), Arrays .asList (elasticAgentProfile ));
118
+ public void shouldPopulateNoOpClusterProfileWithPluginSettingsConfigurations_WithoutChangingClusterProfileIdIfItsNotNoOp () throws Exception {
119
+ String clusterProfileId = "i-renamed-no-op-cluster-to-something-else" ;
120
+ ClusterProfile emptyClusterProfile = new ClusterProfile (clusterProfileId , Constants .PLUGIN_ID , new PluginSettings ());
121
+ elasticAgentProfile .setClusterProfileId (emptyClusterProfile .getId ());
122
+ MigrateConfigurationRequest request = new MigrateConfigurationRequest (pluginSettings , Arrays .asList (emptyClusterProfile ), Arrays .asList (elasticAgentProfile ));
112
123
MigrateConfigurationRequestExecutor executor = new MigrateConfigurationRequestExecutor (request );
113
124
114
125
GoPluginApiResponse response = executor .execute ();
115
126
116
127
MigrateConfigurationRequest responseObject = MigrateConfigurationRequest .fromJSON (response .responseBody ());
117
128
118
- String newlyDefinedClusterId = responseObject .getClusterProfiles ().get (0 ).getId ();
119
- elasticAgentProfile .setClusterProfileId (newlyDefinedClusterId );
129
+ assertThat (responseObject .getPluginSettings (), is (pluginSettings ));
130
+ List <ClusterProfile > actual = responseObject .getClusterProfiles ();
131
+ ClusterProfile actualClusterProfile = actual .get (0 );
120
132
133
+ assertThat (actualClusterProfile .getId (), is (clusterProfileId ));
134
+ this .clusterProfile .setId (actualClusterProfile .getId ());
135
+
136
+ assertThat (actual , is (Arrays .asList (this .clusterProfile )));
121
137
assertThat (responseObject .getElasticAgentProfiles (), is (Arrays .asList (elasticAgentProfile )));
138
+
139
+ assertThat (elasticAgentProfile .getClusterProfileId (), is (clusterProfileId ));
140
+ }
141
+
142
+ @ Test
143
+ public void shouldMigratePluginSettingsToClusterProfile_WhenNoElasticAgentProfilesAreConfigured () throws Exception {
144
+ MigrateConfigurationRequest request = new MigrateConfigurationRequest (pluginSettings , Collections .emptyList (), Collections .emptyList ());
145
+ MigrateConfigurationRequestExecutor executor = new MigrateConfigurationRequestExecutor (request );
146
+
147
+ GoPluginApiResponse response = executor .execute ();
148
+
149
+ MigrateConfigurationRequest responseObject = MigrateConfigurationRequest .fromJSON (response .responseBody ());
150
+
151
+ assertThat (responseObject .getPluginSettings (), is (pluginSettings ));
152
+ List <ClusterProfile > actual = responseObject .getClusterProfiles ();
153
+ ClusterProfile actualClusterProfile = actual .get (0 );
154
+ this .clusterProfile .setId (actualClusterProfile .getId ());
155
+
156
+ assertThat (actual , is (Arrays .asList (this .clusterProfile )));
157
+ assertThat (responseObject .getElasticAgentProfiles (), is (Collections .emptyList ()));
158
+ }
159
+
160
+ @ Test
161
+ public void ShouldMigrateEmptyClusterProfiles_WhenMultipleEmptyClusterProfilesExists () throws Exception {
162
+ ClusterProfile emptyCluster1 = new ClusterProfile ("cluster_profile_1" , Constants .PLUGIN_ID , new PluginSettings ());
163
+ ClusterProfile emptyCluster2 = new ClusterProfile ("cluster_profile_2" , Constants .PLUGIN_ID , new PluginSettings ());
164
+
165
+ ElasticAgentProfile elasticAgentProfile1 = new ElasticAgentProfile ();
166
+ elasticAgentProfile1 .setId ("profile_id_1" );
167
+ elasticAgentProfile1 .setPluginId (Constants .PLUGIN_ID );
168
+ elasticAgentProfile1 .setClusterProfileId (emptyCluster1 .getId ());
169
+
170
+ ElasticAgentProfile elasticAgentProfile2 = new ElasticAgentProfile ();
171
+ elasticAgentProfile2 .setId ("profile_id_2" );
172
+ elasticAgentProfile2 .setPluginId (Constants .PLUGIN_ID );
173
+ elasticAgentProfile2 .setClusterProfileId (emptyCluster2 .getId ());
174
+
175
+ MigrateConfigurationRequest request = new MigrateConfigurationRequest (pluginSettings , Arrays .asList (emptyCluster1 , emptyCluster2 ), Arrays .asList (elasticAgentProfile1 , elasticAgentProfile2 ));
176
+ MigrateConfigurationRequestExecutor executor = new MigrateConfigurationRequestExecutor (request );
177
+
178
+ GoPluginApiResponse response = executor .execute ();
179
+
180
+ MigrateConfigurationRequest responseObject = MigrateConfigurationRequest .fromJSON (response .responseBody ());
181
+
182
+ assertThat (responseObject .getPluginSettings (), is (pluginSettings ));
183
+
184
+ this .clusterProfile .setId (responseObject .getClusterProfiles ().get (0 ).getId ());
185
+ assertThat (responseObject .getClusterProfiles ().get (0 ), is (clusterProfile ));
186
+
187
+ this .clusterProfile .setId (responseObject .getClusterProfiles ().get (1 ).getId ());
188
+ assertThat (responseObject .getClusterProfiles ().get (1 ), is (clusterProfile ));
189
+
190
+ assertThat (responseObject .getElasticAgentProfiles ().get (0 ).getClusterProfileId (), is (emptyCluster1 .getId ()));
191
+ assertThat (responseObject .getElasticAgentProfiles ().get (1 ).getClusterProfileId (), is (emptyCluster2 .getId ()));
192
+ }
193
+
194
+ @ Test
195
+ public void ShouldNotMigrateEmptyAndUnassociatedClusterProfiles () throws Exception {
196
+ ClusterProfile emptyCluster1 = new ClusterProfile ("cluster_profile_1" , Constants .PLUGIN_ID , new PluginSettings ());
197
+ ClusterProfile emptyCluster2 = new ClusterProfile ("cluster_profile_2" , Constants .PLUGIN_ID , new PluginSettings ());
198
+
199
+ ElasticAgentProfile elasticAgentProfile1 = new ElasticAgentProfile ();
200
+ elasticAgentProfile1 .setId ("profile_id_1" );
201
+ elasticAgentProfile1 .setPluginId (Constants .PLUGIN_ID );
202
+ elasticAgentProfile1 .setClusterProfileId (emptyCluster1 .getId ());
203
+
204
+ ElasticAgentProfile elasticAgentProfile2 = new ElasticAgentProfile ();
205
+ elasticAgentProfile2 .setId ("profile_id_2" );
206
+ elasticAgentProfile2 .setPluginId (Constants .PLUGIN_ID );
207
+ elasticAgentProfile2 .setClusterProfileId (emptyCluster1 .getId ());
208
+
209
+ MigrateConfigurationRequest request = new MigrateConfigurationRequest (pluginSettings , Arrays .asList (emptyCluster1 , emptyCluster2 ), Arrays .asList (elasticAgentProfile1 , elasticAgentProfile2 ));
210
+ MigrateConfigurationRequestExecutor executor = new MigrateConfigurationRequestExecutor (request );
211
+
212
+ GoPluginApiResponse response = executor .execute ();
213
+
214
+ MigrateConfigurationRequest responseObject = MigrateConfigurationRequest .fromJSON (response .responseBody ());
215
+
216
+ assertThat (responseObject .getPluginSettings (), is (pluginSettings ));
217
+
218
+ this .clusterProfile .setId (responseObject .getClusterProfiles ().get (0 ).getId ());
219
+ assertThat (responseObject .getClusterProfiles ().get (0 ), is (clusterProfile ));
220
+
221
+ //verify cluster is empty.. not migrated
222
+ assertThat (responseObject .getClusterProfiles ().get (1 ), is (emptyCluster2 ));
223
+
224
+ assertThat (responseObject .getElasticAgentProfiles ().get (0 ).getClusterProfileId (), is (emptyCluster1 .getId ()));
225
+ assertThat (responseObject .getElasticAgentProfiles ().get (1 ).getClusterProfileId (), is (emptyCluster1 .getId ()));
226
+ }
227
+
228
+ @ Test
229
+ public void shouldNotMigrateConfigWhenMultipleClusterProfilesAreAlreadyMigrated () throws Exception {
230
+ ClusterProfile cluster1 = new ClusterProfile ("cluster_profile_1" , Constants .PLUGIN_ID , pluginSettings );
231
+ ClusterProfile cluster2 = new ClusterProfile ("cluster_profile_2" , Constants .PLUGIN_ID , pluginSettings );
232
+
233
+ ElasticAgentProfile elasticAgentProfile1 = new ElasticAgentProfile ();
234
+ elasticAgentProfile1 .setId ("profile_id_1" );
235
+ elasticAgentProfile1 .setPluginId (Constants .PLUGIN_ID );
236
+ elasticAgentProfile1 .setClusterProfileId (cluster1 .getId ());
237
+
238
+ ElasticAgentProfile elasticAgentProfile2 = new ElasticAgentProfile ();
239
+ elasticAgentProfile2 .setId ("profile_id_2" );
240
+ elasticAgentProfile2 .setPluginId (Constants .PLUGIN_ID );
241
+ elasticAgentProfile2 .setClusterProfileId (cluster2 .getId ());
242
+
243
+ MigrateConfigurationRequest request = new MigrateConfigurationRequest (pluginSettings , Arrays .asList (cluster1 , cluster2 ), Arrays .asList (elasticAgentProfile1 , elasticAgentProfile2 ));
244
+ MigrateConfigurationRequestExecutor executor = new MigrateConfigurationRequestExecutor (request );
245
+
246
+ GoPluginApiResponse response = executor .execute ();
247
+
248
+ MigrateConfigurationRequest responseObject = MigrateConfigurationRequest .fromJSON (response .responseBody ());
249
+
250
+ assertThat (responseObject .getPluginSettings (), is (pluginSettings ));
251
+
252
+ assertThat (responseObject .getClusterProfiles (), is (Arrays .asList (cluster1 , cluster2 )));
253
+
254
+ assertThat (responseObject .getElasticAgentProfiles (), is (Arrays .asList (elasticAgentProfile1 , elasticAgentProfile2 )));
122
255
}
123
256
}
0 commit comments