|
5 | 5 | import static org.junit.Assert.assertNull; |
6 | 6 | import static org.junit.Assert.assertNotSame; |
7 | 7 | import static org.junit.Assert.assertTrue; |
| 8 | +import static org.junit.Assert.assertArrayEquals; |
8 | 9 | import static org.junit.Assume.assumeNotNull; |
9 | 10 |
|
10 | 11 | import java.io.IOException; |
|
20 | 21 | import org.junit.Test; |
21 | 22 |
|
22 | 23 | import com.cloudinary.Api; |
| 24 | +import com.cloudinary.Api.ApiResponse; |
23 | 25 | import com.cloudinary.Cloudinary; |
24 | 26 | import com.cloudinary.Transformation; |
25 | 27 |
|
@@ -53,6 +55,10 @@ public static void setUpClass() throws IOException { |
53 | 55 | api.deleteTransformation("api_test_transformation3", Cloudinary.emptyMap()); |
54 | 56 | } catch (Exception e) { |
55 | 57 | } |
| 58 | + try{api.deleteUploadPreset("api_test_upload_preset", Cloudinary.emptyMap());}catch (Exception e) {} |
| 59 | + try{api.deleteUploadPreset("api_test_upload_preset2", Cloudinary.emptyMap());}catch (Exception e) {} |
| 60 | + try{api.deleteUploadPreset("api_test_upload_preset3", Cloudinary.emptyMap());}catch (Exception e) {} |
| 61 | + try{api.deleteUploadPreset("api_test_upload_preset4", Cloudinary.emptyMap());}catch (Exception e) {} |
56 | 62 | Map options = Cloudinary.asMap( |
57 | 63 | "public_id", "api_test", |
58 | 64 | "tags", "api_test_tag", |
@@ -149,6 +155,17 @@ public void testResourcesListingDirection() throws Exception { |
149 | 155 | assertEquals(resources, resourcesDesc); |
150 | 156 | } |
151 | 157 |
|
| 158 | + @Test |
| 159 | + public void testResourcesListingStartAt() throws Exception { |
| 160 | + // should allow listing resources by start date - make sure your clock is set correctly!!! |
| 161 | + Thread.sleep(2000L); |
| 162 | + java.util.Date startAt = new java.util.Date(); |
| 163 | + Thread.sleep(2000L); |
| 164 | + Map response = cloudinary.uploader().upload("src/test/resources/logo.png", Cloudinary.emptyMap()); |
| 165 | + List<Map> resources = (List<Map>) api.resources(Cloudinary.asMap("type", "upload", "start_at", startAt, "direction", "asc")).get("resources"); |
| 166 | + assertEquals(response.get("public_id"), resources.get(0).get("public_id")); |
| 167 | + } |
| 168 | + |
152 | 169 | @Test |
153 | 170 | public void testResourcesByPublicIds() throws Exception { |
154 | 171 | // should allow listing resources by public ids |
@@ -451,6 +468,104 @@ public void testSimilaritySearchUpdate() { |
451 | 468 | } |
452 | 469 | } |
453 | 470 |
|
| 471 | + @Test |
| 472 | + public void testApiLimits() throws Exception { |
| 473 | + // should support reporting the current API limits found in the response header |
| 474 | + ApiResponse result1 = api.transformations(Cloudinary.emptyMap()); |
| 475 | + ApiResponse result2 = api.transformations(Cloudinary.emptyMap()); |
| 476 | + assertNotNull(result1.apiRateLimit()); |
| 477 | + assertNotNull(result2.apiRateLimit()); |
| 478 | + assertEquals(result1.apiRateLimit().getRemaining() - 1, result2.apiRateLimit().getRemaining()); |
| 479 | + assertTrue(result2.apiRateLimit().getLimit() > result2.apiRateLimit().getRemaining()); |
| 480 | + assertEquals(result1.apiRateLimit().getLimit(), result2.apiRateLimit().getLimit()); |
| 481 | + assertEquals(result1.apiRateLimit().getReset(), result2.apiRateLimit().getReset()); |
| 482 | + assertTrue(result2.apiRateLimit().getReset().after(new java.util.Date())); |
| 483 | + } |
| 484 | + |
| 485 | + @Test |
| 486 | + public void testListUploadPresets() throws Exception { |
| 487 | + // should allow creating and listing upload_presets |
| 488 | + api.createUploadPreset(Cloudinary.asMap("name", |
| 489 | + "api_test_upload_preset", "folder", "folder")); |
| 490 | + api.createUploadPreset(Cloudinary.asMap("name", |
| 491 | + "api_test_upload_preset2", "folder", "folder2")); |
| 492 | + api.createUploadPreset(Cloudinary.asMap("name", |
| 493 | + "api_test_upload_preset3", "folder", "folder3")); |
| 494 | + org.json.simple.JSONArray presets = (org.json.simple.JSONArray) api |
| 495 | + .uploadPresets(Cloudinary.emptyMap()).get("presets"); |
| 496 | + assertEquals(((Map) presets.get(0)).get("name"), |
| 497 | + "api_test_upload_preset3"); |
| 498 | + assertEquals(((Map) presets.get(1)).get("name"), |
| 499 | + "api_test_upload_preset2"); |
| 500 | + assertEquals(((Map) presets.get(2)).get("name"), |
| 501 | + "api_test_upload_preset"); |
| 502 | + api.deleteUploadPreset("api_test_upload_preset", Cloudinary.emptyMap()); |
| 503 | + api.deleteUploadPreset("api_test_upload_preset2", Cloudinary.emptyMap()); |
| 504 | + api.deleteUploadPreset("api_test_upload_preset3", Cloudinary.emptyMap()); |
| 505 | + } |
| 506 | + |
| 507 | + @Test |
| 508 | + public void testGetUploadPreset() throws Exception { |
| 509 | + // should allow getting a single upload_preset |
| 510 | + String[] tags = { "a", "b", "c" }; |
| 511 | + Map context = Cloudinary.asMap("a", "b", "c", "d"); |
| 512 | + Transformation transformation = new Transformation(); |
| 513 | + transformation.width(100).crop("scale"); |
| 514 | + Map result = api.createUploadPreset(Cloudinary.asMap("unsigned", true, |
| 515 | + "folder", "folder", "transformation", transformation, "tags", |
| 516 | + tags, "context", context)); |
| 517 | + String name = result.get("name").toString(); |
| 518 | + Map preset = api.uploadPreset(name, Cloudinary.emptyMap()); |
| 519 | + assertEquals(preset.get("name"), name); |
| 520 | + assertEquals(Boolean.TRUE, preset.get("unsigned")); |
| 521 | + Map settings = (Map) preset.get("settings"); |
| 522 | + assertEquals(settings.get("folder"), "folder"); |
| 523 | + Map outTransformation = (Map) ((org.json.simple.JSONArray) settings |
| 524 | + .get("transformation")).get(0); |
| 525 | + assertEquals(outTransformation.get("width"), 100L); |
| 526 | + assertEquals(outTransformation.get("crop"), "scale"); |
| 527 | + Object[] outTags = ((org.json.simple.JSONArray) settings.get("tags")) |
| 528 | + .toArray(); |
| 529 | + assertArrayEquals(tags, outTags); |
| 530 | + Map outContext = (Map) settings.get("context"); |
| 531 | + assertEquals(context, outContext); |
| 532 | + } |
| 533 | + |
| 534 | + @Test |
| 535 | + public void testDeleteUploadPreset() throws Exception { |
| 536 | + // should allow deleting upload_presets", :upload_preset => true do |
| 537 | + api.createUploadPreset(Cloudinary.asMap("name", |
| 538 | + "api_test_upload_preset4", "folder", "folder")); |
| 539 | + api.uploadPreset("api_test_upload_preset4", Cloudinary.emptyMap()); |
| 540 | + api.deleteUploadPreset("api_test_upload_preset4", Cloudinary.emptyMap()); |
| 541 | + boolean error = false; |
| 542 | + try { |
| 543 | + api.uploadPreset("api_test_upload_preset4", Cloudinary.emptyMap()); |
| 544 | + } catch (Exception e) { |
| 545 | + error = true; |
| 546 | + } |
| 547 | + assertTrue(error); |
| 548 | + } |
| 549 | + |
| 550 | + @Test |
| 551 | + public void testUpdateUploadPreset() throws Exception { |
| 552 | + // should allow updating upload_presets |
| 553 | + String name = api |
| 554 | + .createUploadPreset(Cloudinary.asMap("folder", "folder")) |
| 555 | + .get("name").toString(); |
| 556 | + Map preset = api.uploadPreset(name, Cloudinary.emptyMap()); |
| 557 | + Map settings = (Map) preset.get("settings"); |
| 558 | + settings.putAll(Cloudinary.asMap("colors", true, "unsigned", true, |
| 559 | + "disallow_public_id", true)); |
| 560 | + api.updateUploadPreset(name, settings); |
| 561 | + settings.remove("unsigned"); |
| 562 | + preset = api.uploadPreset(name, Cloudinary.emptyMap()); |
| 563 | + assertEquals(name, preset.get("name")); |
| 564 | + assertEquals(Boolean.TRUE, preset.get("unsigned")); |
| 565 | + assertEquals(settings, preset.get("settings")); |
| 566 | + api.deleteUploadPreset(name, Cloudinary.emptyMap()); |
| 567 | + } |
| 568 | + |
454 | 569 | @Test |
455 | 570 | public void testListByModerationUpdate() throws Exception { |
456 | 571 | // "should support listing by moderation kind and value |
|
0 commit comments