@@ -171,6 +171,81 @@ public void Test_StorageHelper_NewPersonTest()
171171 Assert . AreEqual ( input . Age , output . Age ) ;
172172 }
173173
174+ [ TestCategory ( "Helpers" ) ]
175+ [ TestMethod ]
176+ public async Task Test_StorageHelper_FileCRUDTest ( )
177+ {
178+ var fileName = "TestFile.txt" ;
179+ var fileName2 = "TestFile2.txt" ;
180+ var fileContents = "this is a test" ;
181+ var fileContents2 = "this is also a test" ;
182+ var storageHelper = ApplicationDataStorageHelper . GetCurrent ( ) ;
183+
184+ // Create a file
185+ await storageHelper . CreateFileAsync ( fileName , fileContents ) ;
186+
187+ // Read a file
188+ var readContents = await storageHelper . ReadFileAsync < string > ( fileName ) ;
189+ Assert . AreEqual ( fileContents , readContents ) ;
190+
191+ // Update a file
192+ await storageHelper . CreateFileAsync ( fileName , fileContents2 ) ;
193+ var readContents2 = await storageHelper . ReadFileAsync < string > ( fileName ) ;
194+ Assert . AreEqual ( fileContents2 , readContents2 ) ;
195+
196+ // Rename a file
197+ var itemRenamed = await storageHelper . TryRenameItemAsync ( fileName , fileName2 ) ;
198+ Assert . IsTrue ( itemRenamed ) ;
199+
200+ // Delete a file
201+ var itemDeleted = await storageHelper . TryDeleteItemAsync ( fileName2 ) ;
202+ Assert . IsTrue ( itemDeleted ) ;
203+ }
204+
205+ [ TestCategory ( "Helpers" ) ]
206+ [ TestMethod ]
207+ public async Task Test_StorageHelper_SubFolderCRUDTest ( )
208+ {
209+ var folderName = "TestFolder" ;
210+ var subFolderName = "TestSubFolder" ;
211+ var subFolderName2 = "TestSubFolder2" ;
212+ var subFolderPath = $ "{ folderName } /{ subFolderName } ";
213+ var subFolderPath2 = $ "{ folderName } /{ subFolderName2 } ";
214+ var fileName = "TestFile.txt" ;
215+ var filePath = $ "{ subFolderPath } /{ fileName } ";
216+
217+ var fileContents = "this is a test" ;
218+ var storageHelper = ApplicationDataStorageHelper . GetCurrent ( ) ;
219+
220+ // Create a folder
221+ await storageHelper . CreateFolderAsync ( folderName ) ;
222+
223+ // Create a subfolder
224+ await storageHelper . CreateFolderAsync ( subFolderPath ) ;
225+
226+ // Create a file in the subfolder
227+ await storageHelper . CreateFileAsync ( filePath , fileContents ) ;
228+
229+ // Read a file from the subfolder
230+ var readContents = await storageHelper . ReadFileAsync < string > ( filePath ) ;
231+ Assert . AreEqual ( fileContents , readContents ) ;
232+
233+ // List subfolder contents
234+ var folderItems = await storageHelper . ReadFolderAsync ( subFolderPath ) ;
235+ var folderItemsList = folderItems . ToList ( ) ;
236+ Assert . AreEqual ( 1 , folderItemsList . Count ( ) ) ;
237+ Assert . AreEqual ( fileName , folderItemsList [ 0 ] . Name ) ;
238+ Assert . AreEqual ( Microsoft . Toolkit . Helpers . DirectoryItemType . File , folderItemsList [ 0 ] . ItemType ) ;
239+
240+ // Rename a subfolder
241+ var itemRenamed = await storageHelper . TryRenameItemAsync ( subFolderPath , subFolderName2 ) ;
242+ Assert . IsTrue ( itemRenamed ) ;
243+
244+ // Delete a subfolder
245+ var itemDeleted = await storageHelper . TryDeleteItemAsync ( subFolderPath2 ) ;
246+ Assert . IsTrue ( itemDeleted ) ;
247+ }
248+
174249 public class Person
175250 {
176251 public string Name { get ; set ; }
0 commit comments