public void CreateBucketWhenBucketNumberReachesLimitTest()
{
//get a random bucketName
var bucketName = OssTestUtils.GetBucketName(_className);
var bucketNames = new List<string>();
try
{
//get number of existing buckets
var existingBucket = OssTestUtils.ToArray<Bucket>(_ossClient.ListBuckets()).Count;
var remainCount = MaxAllowedBucketNumber - existingBucket;
for (var i = 0; i < remainCount; i++)
{
bucketNames.Add(OssTestUtils.GetBucketName(_className));
//sleep for 100ms, so that the bucket name won't be duplicated
Thread.Sleep(100);
}
//create buckets in parallel, so that the total number reaches 10
//Parallel.ForEach(bucketNames, singleBucketName => _ossClient.CreateBucket(singleBucketName));
try
{
//try to create a new bucket
_ossClient.CreateBucket(bucketName);
Assert.Fail("Bucket creation should fail when number of existing Bucketes reaches limit");
}
catch(OssException e)
{
Assert.AreEqual(OssErrorCode.TooManyBuckets, e.ErrorCode);
}
}
finally
{
//Parallel.ForEach(bucketNames, singleBucketName =>
foreach (var singleBucketName in bucketNames)
{
if (OssTestUtils.BucketExists(_ossClient, singleBucketName))
{
_ossClient.DeleteBucket(singleBucketName);
}
}
if (OssTestUtils.BucketExists(_ossClient, bucketName))
{
_ossClient.DeleteBucket(bucketName);
}
}
}