|
19 | 19 | import org.junit.Test; |
20 | 20 |
|
21 | 21 | import java.io.IOException; |
| 22 | +import java.util.ArrayList; |
| 23 | +import java.util.List; |
22 | 24 |
|
23 | 25 | import static org.junit.Assert.assertEquals; |
24 | 26 |
|
@@ -165,6 +167,199 @@ public void createCustomMetaDataFields_successExpected_type_Textarea() |
165 | 167 | assertEquals(RestClient.API_BASE_URL.concat("v1/customMetadataFields"), request.getRequestUrl().toString()); |
166 | 168 | } |
167 | 169 |
|
| 170 | + @Test |
| 171 | + public void createCustomMetaDataFields_successExpected_type_Date() |
| 172 | + throws InterruptedException, IOException, BadRequestException, UnknownException { |
| 173 | + |
| 174 | + MockWebServer server = new MockWebServer(); |
| 175 | + server.enqueue(new MockResponse().setBody("{\n" + |
| 176 | + " \"id\": \"62c2d18da6f0abb293b3941a\",\n" + |
| 177 | + " \"name\": \"name\",\n" + |
| 178 | + " \"label\": \"label\",\n" + |
| 179 | + " \"schema\": {\n" + |
| 180 | + " \"type\": \"Date\",\n" + |
| 181 | + " \"minValue\": \"2022-11-30T10:11:10+00:00\",\n" + |
| 182 | + " \"maxValue\": \"2022-12-30T10:11:10+00:00\"\n" + |
| 183 | + " }\n" + |
| 184 | + "}")); |
| 185 | + server.start(); |
| 186 | + RestClient.API_BASE_URL = server.url("/").toString(); |
| 187 | + |
| 188 | + CustomMetaDataFieldSchemaObject customMetaDataFieldSchemaObject = new CustomMetaDataFieldSchemaObject(); |
| 189 | + customMetaDataFieldSchemaObject.setType(CustomMetaDataTypeEnum.Date); |
| 190 | + customMetaDataFieldSchemaObject.setMinValue("2022-11-30T10:11:10+00:00"); |
| 191 | + customMetaDataFieldSchemaObject.setMaxValue("2022-12-30T10:11:10+00:00"); |
| 192 | + |
| 193 | + CustomMetaDataFieldCreateRequest customMetaDataFieldCreateRequest = new CustomMetaDataFieldCreateRequest(); |
| 194 | + customMetaDataFieldCreateRequest.setName("Name"); |
| 195 | + customMetaDataFieldCreateRequest.setLabel("Label"); |
| 196 | + customMetaDataFieldCreateRequest.setSchema(customMetaDataFieldSchemaObject); |
| 197 | + |
| 198 | + SUT.createCustomMetaDataFields(customMetaDataFieldCreateRequest); |
| 199 | + RecordedRequest request = server.takeRequest(); |
| 200 | + |
| 201 | + String customMetaDataFieldCreateRequestJson = "{\"name\":\"Name\",\"label\":\"Label\",\"schema\":{\"type\":\"Date\",\"minValue\":\"2022-11-30T10:11:10+00:00\",\"maxValue\":\"2022-12-30T10:11:10+00:00\"}}"; |
| 202 | + String utf8RequestBody = request.getBody().readUtf8(); |
| 203 | + assertEquals(customMetaDataFieldCreateRequestJson, utf8RequestBody); |
| 204 | + assertEquals("application/json; charset=utf-8", request.getHeader("Content-Type")); |
| 205 | + assertEquals("POST /v1/customMetadataFields HTTP/1.1", request.getRequestLine()); |
| 206 | + assertEquals(RestClient.API_BASE_URL.concat("v1/customMetadataFields"), request.getRequestUrl().toString()); |
| 207 | + } |
| 208 | + |
| 209 | + @Test |
| 210 | + public void createCustomMetaDataFields_successExpected_type_Boolean() |
| 211 | + throws InterruptedException, IOException, BadRequestException, UnknownException { |
| 212 | + |
| 213 | + MockWebServer server = new MockWebServer(); |
| 214 | + server.enqueue(new MockResponse().setBody("{\n" + |
| 215 | + " \"id\": \"62c2e4268eed64d4a80c585a\",\n" + |
| 216 | + " \"name\": \"Name\",\n" + |
| 217 | + " \"label\": \"Label\",\n" + |
| 218 | + " \"schema\": {\n" + |
| 219 | + " \"type\": \"Boolean\",\n" + |
| 220 | + " \"isValueRequired\": true,\n" + |
| 221 | + " \"defaultValue\": true\n" + |
| 222 | + " }\n" + |
| 223 | + "}")); |
| 224 | + server.start(); |
| 225 | + RestClient.API_BASE_URL = server.url("/").toString(); |
| 226 | + |
| 227 | + CustomMetaDataFieldSchemaObject customMetaDataFieldSchemaObject = new CustomMetaDataFieldSchemaObject(); |
| 228 | + customMetaDataFieldSchemaObject.setType(CustomMetaDataTypeEnum.Boolean); |
| 229 | + customMetaDataFieldSchemaObject.setValueRequired(true); |
| 230 | + customMetaDataFieldSchemaObject.setDefaultValue(true); |
| 231 | + |
| 232 | + CustomMetaDataFieldCreateRequest customMetaDataFieldCreateRequest = new CustomMetaDataFieldCreateRequest(); |
| 233 | + customMetaDataFieldCreateRequest.setName("Name"); |
| 234 | + customMetaDataFieldCreateRequest.setLabel("Label"); |
| 235 | + customMetaDataFieldCreateRequest.setSchema(customMetaDataFieldSchemaObject); |
| 236 | + |
| 237 | + SUT.createCustomMetaDataFields(customMetaDataFieldCreateRequest); |
| 238 | + RecordedRequest request = server.takeRequest(); |
| 239 | + |
| 240 | + String customMetaDataFieldCreateRequestJson = "{\"name\":\"Name\",\"label\":\"Label\",\"schema\":{\"type\":\"Boolean\",\"defaultValue\":true,\"isValueRequired\":true}}"; |
| 241 | + String utf8RequestBody = request.getBody().readUtf8(); |
| 242 | + assertEquals(customMetaDataFieldCreateRequestJson, utf8RequestBody); |
| 243 | + assertEquals("application/json; charset=utf-8", request.getHeader("Content-Type")); |
| 244 | + assertEquals("POST /v1/customMetadataFields HTTP/1.1", request.getRequestLine()); |
| 245 | + assertEquals(RestClient.API_BASE_URL.concat("v1/customMetadataFields"), request.getRequestUrl().toString()); |
| 246 | + } |
| 247 | + |
| 248 | + @Test |
| 249 | + public void createCustomMetaDataFields_successExpected_type_SingleSelect() |
| 250 | + throws InterruptedException, IOException, BadRequestException, UnknownException { |
| 251 | + |
| 252 | + MockWebServer server = new MockWebServer(); |
| 253 | + server.enqueue(new MockResponse().setBody("{\n" + |
| 254 | + " \"id\": \"62c2cfe2a6f0ab95fcb3640f\",\n" + |
| 255 | + " \"name\": \"Name\",\n" + |
| 256 | + " \"label\": \"Label\",\n" + |
| 257 | + " \"schema\": {\n" + |
| 258 | + " \"type\": \"SingleSelect\",\n" + |
| 259 | + " \"selectOptions\": [\n" + |
| 260 | + " \"small\",\n" + |
| 261 | + " \"medium\",\n" + |
| 262 | + " \"large\",\n" + |
| 263 | + " 30,\n" + |
| 264 | + " 40,\n" + |
| 265 | + " true\n" + |
| 266 | + " ]\n" + |
| 267 | + " }\n" + |
| 268 | + "}")); |
| 269 | + server.start(); |
| 270 | + RestClient.API_BASE_URL = server.url("/").toString(); |
| 271 | + |
| 272 | + List<Object> objectList = new ArrayList<>(); |
| 273 | + objectList.add("small"); |
| 274 | + objectList.add("medium"); |
| 275 | + objectList.add("large"); |
| 276 | + objectList.add(30); |
| 277 | + objectList.add(40); |
| 278 | + objectList.add(true); |
| 279 | + CustomMetaDataFieldSchemaObject customMetaDataFieldSchemaObject = new CustomMetaDataFieldSchemaObject(); |
| 280 | + customMetaDataFieldSchemaObject.setType(CustomMetaDataTypeEnum.SingleSelect); |
| 281 | + customMetaDataFieldSchemaObject.setSelectOptions(objectList); |
| 282 | + |
| 283 | + CustomMetaDataFieldCreateRequest customMetaDataFieldCreateRequest = new CustomMetaDataFieldCreateRequest(); |
| 284 | + customMetaDataFieldCreateRequest.setName("Name"); |
| 285 | + customMetaDataFieldCreateRequest.setLabel("Label"); |
| 286 | + customMetaDataFieldCreateRequest.setSchema(customMetaDataFieldSchemaObject); |
| 287 | + |
| 288 | + SUT.createCustomMetaDataFields(customMetaDataFieldCreateRequest); |
| 289 | + RecordedRequest request = server.takeRequest(); |
| 290 | + |
| 291 | + String customMetaDataFieldCreateRequestJson = "{\"name\":\"Name\",\"label\":\"Label\",\"schema\":{\"type\":\"SingleSelect\",\"selectOptions\":[\"small\",\"medium\",\"large\",30,40,true]}}"; |
| 292 | + String utf8RequestBody = request.getBody().readUtf8(); |
| 293 | + assertEquals(customMetaDataFieldCreateRequestJson, utf8RequestBody); |
| 294 | + assertEquals("application/json; charset=utf-8", request.getHeader("Content-Type")); |
| 295 | + assertEquals("POST /v1/customMetadataFields HTTP/1.1", request.getRequestLine()); |
| 296 | + assertEquals(RestClient.API_BASE_URL.concat("v1/customMetadataFields"), request.getRequestUrl().toString()); |
| 297 | + } |
| 298 | + |
| 299 | + @Test |
| 300 | + public void createCustomMetaDataFields_successExpected_type_MultiSelect() |
| 301 | + throws InterruptedException, IOException, BadRequestException, UnknownException { |
| 302 | + |
| 303 | + MockWebServer server = new MockWebServer(); |
| 304 | + server.enqueue(new MockResponse().setBody("{\n" + |
| 305 | + " \"id\": \"62c2d3c5a6f0ab2330b3b0b2\",\n" + |
| 306 | + " \"name\": \"Name\",\n" + |
| 307 | + " \"label\": \"Label\",\n" + |
| 308 | + " \"schema\": {\n" + |
| 309 | + " \"isValueRequired\": true,\n" + |
| 310 | + " \"defaultValue\": [\n" + |
| 311 | + " \"small\",\n" + |
| 312 | + " 30,\n" + |
| 313 | + " true\n" + |
| 314 | + " ],\n" + |
| 315 | + " \"type\": \"MultiSelect\",\n" + |
| 316 | + " \"selectOptions\": [\n" + |
| 317 | + " \"small\",\n" + |
| 318 | + " \"medium\",\n" + |
| 319 | + " \"large\",\n" + |
| 320 | + " 30,\n" + |
| 321 | + " 40,\n" + |
| 322 | + " true\n" + |
| 323 | + " ]\n" + |
| 324 | + " }\n" + |
| 325 | + "}")); |
| 326 | + server.start(); |
| 327 | + RestClient.API_BASE_URL = server.url("/").toString(); |
| 328 | + |
| 329 | + List<Object> objectList = new ArrayList<>(); |
| 330 | + objectList.add("small"); |
| 331 | + objectList.add("medium"); |
| 332 | + objectList.add("large"); |
| 333 | + objectList.add(30); |
| 334 | + objectList.add(40); |
| 335 | + objectList.add(true); |
| 336 | + |
| 337 | + List<Object> defaultValueObject = new ArrayList<>(); |
| 338 | + defaultValueObject.add("small"); |
| 339 | + defaultValueObject.add(30); |
| 340 | + defaultValueObject.add(true); |
| 341 | + CustomMetaDataFieldSchemaObject customMetaDataFieldSchemaObject = new CustomMetaDataFieldSchemaObject(); |
| 342 | + customMetaDataFieldSchemaObject.setType(CustomMetaDataTypeEnum.MultiSelect); |
| 343 | + customMetaDataFieldSchemaObject.setValueRequired(true); |
| 344 | + customMetaDataFieldSchemaObject.setDefaultValue(defaultValueObject); |
| 345 | + customMetaDataFieldSchemaObject.setSelectOptions(objectList); |
| 346 | + |
| 347 | + CustomMetaDataFieldCreateRequest customMetaDataFieldCreateRequest = new CustomMetaDataFieldCreateRequest(); |
| 348 | + customMetaDataFieldCreateRequest.setName("Name"); |
| 349 | + customMetaDataFieldCreateRequest.setLabel("Label"); |
| 350 | + customMetaDataFieldCreateRequest.setSchema(customMetaDataFieldSchemaObject); |
| 351 | + |
| 352 | + SUT.createCustomMetaDataFields(customMetaDataFieldCreateRequest); |
| 353 | + RecordedRequest request = server.takeRequest(); |
| 354 | + |
| 355 | + String customMetaDataFieldCreateRequestJson = "{\"name\":\"Name\",\"label\":\"Label\",\"schema\":{\"type\":\"MultiSelect\",\"selectOptions\":[\"small\",\"medium\",\"large\",30,40,true],\"defaultValue\":[\"small\",30,true],\"isValueRequired\":true}}"; |
| 356 | + String utf8RequestBody = request.getBody().readUtf8(); |
| 357 | + assertEquals(customMetaDataFieldCreateRequestJson, utf8RequestBody); |
| 358 | + assertEquals("application/json; charset=utf-8", request.getHeader("Content-Type")); |
| 359 | + assertEquals("POST /v1/customMetadataFields HTTP/1.1", request.getRequestLine()); |
| 360 | + assertEquals(RestClient.API_BASE_URL.concat("v1/customMetadataFields"), request.getRequestUrl().toString()); |
| 361 | + } |
| 362 | + |
168 | 363 | @Test(expected = NotFoundException.class) |
169 | 364 | public void deleteCustomMetaDataField_404_Expected() |
170 | 365 | throws IOException, InterruptedException, NotFoundException, UnknownException { |
|
0 commit comments