feat(.NET): add deleteFolderRecursive sample#3337
Conversation
This adds a sample demonstrating how to recursively delete a folder in a hierarchical namespace bucket. Fixes: b/521168740 [Generated-by: AI]
|
Here is the summary of changes. You are about to add 1 region tag.
This comment is generated by snippet-bot.
|
There was a problem hiding this comment.
Code Review
This pull request introduces a new sample and test for recursively deleting folders using the StorageControlClient. The review feedback suggests improving test reliability by using a dynamically generated folder name to prevent test interference, and asserting on the folder's resource name instead of the entire Folder object to avoid failures from volatile fields.
| StorageControlCreateFolderSample createSample = new StorageControlCreateFolderSample(); | ||
| var folder = createSample.StorageControlCreateFolder(_fixture.BucketNameHns, "deleteRecursiveTestFolder"); | ||
|
|
||
| StorageControlDeleteFolderRecursiveSample deleteSample = new StorageControlDeleteFolderRecursiveSample(); | ||
| deleteSample.StorageControlDeleteFolderRecursive(_fixture.BucketNameHns, "deleteRecursiveTestFolder"); |
There was a problem hiding this comment.
Using a hardcoded folder name like "deleteRecursiveTestFolder" can lead to test interference or flakiness if multiple tests run concurrently or if a previous test run failed to clean up. It is safer to use a dynamically generated folder name using _fixture.GenerateName().
string folderName = _fixture.GenerateName();
StorageControlCreateFolderSample createSample = new StorageControlCreateFolderSample();
var folder = createSample.StorageControlCreateFolder(_fixture.BucketNameHns, folderName);
StorageControlDeleteFolderRecursiveSample deleteSample = new StorageControlDeleteFolderRecursiveSample();
deleteSample.StorageControlDeleteFolderRecursive(_fixture.BucketNameHns, folderName);| StorageControlListFoldersSample listFoldersSample = new StorageControlListFoldersSample(); | ||
| var folders = listFoldersSample.StorageControlListFolders(_fixture.BucketNameHns); | ||
|
|
||
| Assert.DoesNotContain(folder, folders); |
There was a problem hiding this comment.
Asserting on the full Folder object might fail if there are volatile fields (such as update times or metadata) that differ between creation and listing. It is more robust to assert that no folder with the same resource name exists in the list using a predicate.
Assert.DoesNotContain(folders, f => f.Name == folder.Name);- Update Google.Cloud.Storage.Control.V2 to 1.8.0 to resolve DeleteFolderRecursive method - Use fixture.GenerateName() instead of hardcoded folder name in tests - Assert with predicate instead of on the full Folder object to prevent flaky tests [Generated-by: AI]
This adds a sample demonstrating how to recursively delete a folder in a hierarchical namespace bucket.
Fixes: b/521168740