@@ -829,6 +829,92 @@ public void testRestore() throws Exception {
829
829
assertEquals (resource .get ("bytes" ), 3381 );
830
830
}
831
831
832
+ @ Test
833
+ public void testRestoreDifferentVersionsOfDeletedAsset () throws Exception {
834
+ final String TEST_RESOURCE_PUBLIC_ID = "api_test_restore_different_versions_single_asset" + SUFFIX ;
835
+ final Uploader uploader = cloudinary .uploader ();
836
+
837
+ Map firstUpload = uploader .upload (SRC_TEST_IMAGE ,
838
+ ObjectUtils .asMap (
839
+ "public_id" , TEST_RESOURCE_PUBLIC_ID ,
840
+ "backup" , true ,
841
+ "tags" , UPLOAD_TAGS
842
+ ));
843
+ assertEquals (firstUpload .get ("public_id" ), TEST_RESOURCE_PUBLIC_ID );
844
+ ApiResponse firstDelete = api .deleteResources (Collections .singletonList (TEST_RESOURCE_PUBLIC_ID ), ObjectUtils .emptyMap ());
845
+ assertTrue (firstDelete .containsKey ("deleted" ));
846
+
847
+ Map secondUpload = uploader .upload (SRC_TEST_IMAGE ,
848
+ ObjectUtils .asMap (
849
+ "public_id" , TEST_RESOURCE_PUBLIC_ID ,
850
+ "backup" , true ,
851
+ "transformation" , new Transformation ().angle ("0" ),
852
+ "tags" , UPLOAD_TAGS
853
+ ));
854
+ assertEquals (secondUpload .get ("public_id" ), TEST_RESOURCE_PUBLIC_ID );
855
+ ApiResponse secondDelete = api .deleteResources (Collections .singletonList (TEST_RESOURCE_PUBLIC_ID ), ObjectUtils .emptyMap ());
856
+ assertTrue (secondDelete .containsKey ("deleted" ));
857
+
858
+ assertNotEquals (firstUpload .get ("bytes" ), secondUpload .get ("bytes" ));
859
+
860
+ ApiResponse getVersionsResp = api .resource (TEST_RESOURCE_PUBLIC_ID , ObjectUtils .asMap ("versions" , true ));
861
+ List <Map > versions = (List <Map >) getVersionsResp .get ("versions" );
862
+ Object firstAssetVersion = versions .get (0 ).get ("version_id" );
863
+ Object secondAssetVersion = versions .get (1 ).get ("version_id" );
864
+
865
+ ApiResponse firstVerRestore = api .restore (Collections .singletonList (TEST_RESOURCE_PUBLIC_ID ),
866
+ ObjectUtils .asMap ("versions" , Collections .singletonList (firstAssetVersion )));
867
+ assertEquals (((Map ) firstVerRestore .get (TEST_RESOURCE_PUBLIC_ID )).get ("bytes" ), firstUpload .get ("bytes" ));
868
+
869
+ ApiResponse secondVerRestore = api .restore (Collections .singletonList (TEST_RESOURCE_PUBLIC_ID ),
870
+ ObjectUtils .asMap ("versions" , Collections .singletonList (secondAssetVersion )));
871
+ assertEquals (((Map ) secondVerRestore .get (TEST_RESOURCE_PUBLIC_ID )).get ("bytes" ), secondUpload .get ("bytes" ));
872
+
873
+ ApiResponse finalDeleteResp = api .deleteResources (Collections .singletonList (TEST_RESOURCE_PUBLIC_ID ), ObjectUtils .emptyMap ());
874
+ assertTrue (finalDeleteResp .containsKey ("deleted" ));
875
+ }
876
+
877
+ @ Test
878
+ public void testShouldRestoreTwoDifferentDeletedAssets () throws Exception {
879
+ final String PUBLIC_ID_BACKUP_1 = "api_test_restore_versions_different_assets_1_" + SUFFIX ;
880
+ final String PUBLIC_ID_BACKUP_2 = "api_test_restore_versions_different_assets_2_" + SUFFIX ;
881
+
882
+ final Uploader uploader = cloudinary .uploader ();
883
+
884
+ Map firstUpload = uploader .upload (SRC_TEST_IMAGE ,
885
+ ObjectUtils .asMap (
886
+ "public_id" , PUBLIC_ID_BACKUP_1 ,
887
+ "backup" , true ,
888
+ "tags" , UPLOAD_TAGS
889
+ ));
890
+ Map secondUpload = uploader .upload (SRC_TEST_IMAGE ,
891
+ ObjectUtils .asMap (
892
+ "public_id" , PUBLIC_ID_BACKUP_2 ,
893
+ "backup" , true ,
894
+ "transformation" , new Transformation ().angle ("0" ),
895
+ "tags" , UPLOAD_TAGS
896
+ ));
897
+
898
+ ApiResponse deleteAll = api .deleteResources (Arrays .asList (PUBLIC_ID_BACKUP_1 , PUBLIC_ID_BACKUP_2 ), ObjectUtils .emptyMap ());
899
+ assertEquals ("deleted" , ((Map ) deleteAll .get ("deleted" )).get (PUBLIC_ID_BACKUP_1 ));
900
+ assertEquals ("deleted" , ((Map ) deleteAll .get ("deleted" )).get (PUBLIC_ID_BACKUP_2 ));
901
+
902
+ ApiResponse getFirstAssetVersion = api .resource (PUBLIC_ID_BACKUP_1 , ObjectUtils .asMap ("versions" , true ));
903
+ ApiResponse getSecondAssetVersion = api .resource (PUBLIC_ID_BACKUP_2 , ObjectUtils .asMap ("versions" , true ));
904
+
905
+ Object firstAssetVersion = ((List <Map >) getFirstAssetVersion .get ("versions" )).get (0 ).get ("version_id" );
906
+ Object secondAssetVersion = ((List <Map >) getSecondAssetVersion .get ("versions" )).get (0 ).get ("version_id" );
907
+
908
+ ApiResponse restore = api .restore (Arrays .asList (PUBLIC_ID_BACKUP_1 , PUBLIC_ID_BACKUP_2 ),
909
+ ObjectUtils .asMap ("versions" , Arrays .asList (firstAssetVersion , secondAssetVersion )));
910
+ assertEquals (((Map ) restore .get (PUBLIC_ID_BACKUP_1 )).get ("bytes" ), firstUpload .get ("bytes" ));
911
+ assertEquals (((Map ) restore .get (PUBLIC_ID_BACKUP_2 )).get ("bytes" ), secondUpload .get ("bytes" ));
912
+
913
+ ApiResponse finalDelete = api .deleteResources (Arrays .asList (PUBLIC_ID_BACKUP_1 , PUBLIC_ID_BACKUP_2 ), ObjectUtils .emptyMap ());
914
+ assertEquals ("deleted" , ((Map ) finalDelete .get ("deleted" )).get (PUBLIC_ID_BACKUP_1 ));
915
+ assertEquals ("deleted" , ((Map ) finalDelete .get ("deleted" )).get (PUBLIC_ID_BACKUP_2 ));
916
+ }
917
+
832
918
@ Test
833
919
public void testEncodeUrlInApiCall () throws Exception {
834
920
String apiTestEncodeUrlInApiCall = "sub^folder test" ;
0 commit comments