1- using System . Net ;
1+ using System . Linq ;
2+ using System . Net ;
3+ using System . Threading . Tasks ;
24using CloudinaryDotNet . Actions ;
35using NUnit . Framework ;
46
57namespace CloudinaryDotNet . IntegrationTests . UploadApi
68{
79 public class RenameMethodsTest : IntegrationTestBase
810 {
11+ private static string m_context ;
12+
13+ public override void Initialize ( )
14+ {
15+ base . Initialize ( ) ;
16+
17+ var contextKey = $ "{ m_uniqueTestId } _context_key";
18+ var contextValue = $ "{ m_uniqueTestId } _context_value";
19+ m_context = $ "{ contextKey } ={ contextValue } ";
20+ }
21+
922 [ Test , RetryWithDelay ]
10- public void TestRename ( )
23+ public async Task TestRename ( )
1124 {
1225 var toPublicId = GetUniquePublicId ( ) ;
1326
@@ -16,29 +29,29 @@ public void TestRename()
1629 File = new FileDescription ( m_testImagePath ) ,
1730 Tags = m_apiTag
1831 } ;
19- var uploadResult1 = m_cloudinary . Upload ( uploadParams ) ;
32+ var uploadResult1 = await m_cloudinary . UploadAsync ( uploadParams ) ;
2033
2134 uploadParams . File = new FileDescription ( m_testIconPath ) ;
22- var uploadResult2 = m_cloudinary . Upload ( uploadParams ) ;
35+ var uploadResult2 = await m_cloudinary . UploadAsync ( uploadParams ) ;
2336
24- var renameResult = m_cloudinary . Rename ( uploadResult1 . PublicId , toPublicId ) ;
37+ var renameResult = await m_cloudinary . RenameAsync ( uploadResult1 . PublicId , toPublicId ) ;
2538 Assert . AreEqual ( HttpStatusCode . OK , renameResult . StatusCode , renameResult . Error ? . Message ) ;
2639
27- var getResult = m_cloudinary . GetResource ( toPublicId ) ;
40+ var getResult = await m_cloudinary . GetResourceAsync ( toPublicId ) ;
2841 Assert . NotNull ( getResult ) ;
2942
30- renameResult = m_cloudinary . Rename ( uploadResult2 . PublicId , toPublicId ) ;
43+ renameResult = await m_cloudinary . RenameAsync ( uploadResult2 . PublicId , toPublicId ) ;
3144 Assert . True ( renameResult . StatusCode == HttpStatusCode . BadRequest , renameResult . Error ? . Message ) ;
3245
33- m_cloudinary . Rename ( uploadResult2 . PublicId , toPublicId , true ) ;
46+ await m_cloudinary . RenameAsync ( uploadResult2 . PublicId , toPublicId , true ) ;
3447
35- getResult = m_cloudinary . GetResource ( toPublicId ) ;
48+ getResult = await m_cloudinary . GetResourceAsync ( toPublicId ) ;
3649 Assert . NotNull ( getResult ) ;
3750 Assert . AreEqual ( FILE_FORMAT_ICO , getResult . Format , getResult . Error ? . Message ) ;
3851 }
3952
4053 [ Test , RetryWithDelay ]
41- public void TestRenameToType ( )
54+ public async Task TestRenameToType ( )
4255 {
4356 string publicId = GetUniquePublicId ( ) ;
4457 string newPublicId = GetUniquePublicId ( ) ;
@@ -51,18 +64,78 @@ public void TestRenameToType()
5164 Type = STORAGE_TYPE_UPLOAD
5265 } ;
5366
54- var uploadResult = m_cloudinary . Upload ( uploadParams ) ;
67+ var uploadResult = await m_cloudinary . UploadAsync ( uploadParams ) ;
5568 Assert . AreEqual ( uploadResult . StatusCode , HttpStatusCode . OK , uploadResult . Error ? . Message ) ;
5669
5770 RenameParams renameParams = new RenameParams ( publicId , newPublicId )
5871 {
5972 ToType = STORAGE_TYPE_UPLOAD
6073 } ;
6174
62- var renameResult = m_cloudinary . Rename ( renameParams ) ;
75+ var renameResult = await m_cloudinary . RenameAsync ( renameParams ) ;
6376 Assert . AreEqual ( renameResult . StatusCode , HttpStatusCode . OK , renameResult . Error ? . Message ) ;
6477 Assert . AreEqual ( renameResult . Type , STORAGE_TYPE_UPLOAD ) ;
6578 Assert . AreEqual ( renameResult . PublicId , newPublicId ) ;
6679 }
80+
81+ [ Test ]
82+ public async Task TestRenameReturnsContext ( )
83+ {
84+ string publicId = GetUniquePublicId ( ) ;
85+ string newPublicId = GetUniquePublicId ( ) ;
86+
87+ await UploadImage ( publicId ) ;
88+
89+ var @params = new RenameParams ( publicId , newPublicId )
90+ {
91+ Context = true
92+ } ;
93+ var renameResult = await m_cloudinary . RenameAsync ( @params ) ;
94+ Assert . IsTrue ( renameResult . Context . HasValues ) ;
95+
96+ @params . Context = false ;
97+ renameResult = await m_cloudinary . RenameAsync ( @params ) ;
98+ Assert . IsNull ( renameResult . Context ) ;
99+ }
100+
101+ [ Test ]
102+ public async Task TestRenameReturnsMetadata ( )
103+ {
104+ string publicId = GetUniquePublicId ( ) ;
105+ string newPublicId = GetUniquePublicId ( ) ;
106+
107+ await UploadImage ( publicId , true ) ;
108+
109+ var @params = new RenameParams ( publicId , newPublicId )
110+ {
111+ Metadata = true
112+ } ;
113+ var renameResult = await m_cloudinary . RenameAsync ( @params ) ;
114+ Assert . IsTrue ( renameResult . MetadataFields . HasValues ) ;
115+
116+ @params . Metadata = false ;
117+ renameResult = await m_cloudinary . RenameAsync ( @params ) ;
118+ Assert . IsNull ( renameResult . MetadataFields ) ;
119+ }
120+
121+ private async Task UploadImage ( string publicId , bool withMetadata = false )
122+ {
123+ if ( withMetadata )
124+ {
125+ CreateMetadataField ( "rename_with_metadata" , p => p . DefaultValue = p . Label ) ;
126+ }
127+
128+ var uploadParams = new ImageUploadParams ( )
129+ {
130+ PublicId = publicId ,
131+ File = new FileDescription ( m_testImagePath ) ,
132+ Tags = m_apiTag ,
133+ Type = STORAGE_TYPE_UPLOAD ,
134+ Context = new StringDictionary ( m_context ) ,
135+ } ;
136+
137+ var uploadResult = await m_cloudinary . UploadAsync ( uploadParams ) ;
138+ Assert . AreEqual ( uploadResult . StatusCode , HttpStatusCode . OK , uploadResult . Error ? . Message ) ;
139+ }
67140 }
68141}
0 commit comments