Skip to content

Commit 69f25a2

Browse files
Add policyExtension tests
Signed-off-by: jackschofield23 <jack.schofield@answerdigital.com>
1 parent 4658e76 commit 69f25a2

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

src/Storage/Test/Extensions/PolicyExtensionsTest.cs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
// SPDX-FileCopyrightText: © 2021-2022 MONAI Consortium
22
// SPDX-License-Identifier: Apache License 2.0
33

4+
using System;
45
using System.Collections.Generic;
56
using Monai.Deploy.Storage.Common.Extensions;
7+
using Newtonsoft.Json;
68
using Xunit;
79

810
namespace Monai.Deploy.Storage.Test.Extensions
@@ -57,6 +59,38 @@ public void GetPathList_SingleLevelPathReturnsValidList()
5759
Assert.Equal(expectedList, actualList);
5860
}
5961

62+
[Fact]
63+
public void GetPathList_NullFolder_ThrowsException()
64+
{
65+
Assert.Throws<ArgumentNullException>(() => PolicyExtensions.GetPathList(null));
66+
}
67+
68+
#endregion
69+
70+
#region ToPolicy
71+
72+
[Fact]
73+
public void ToPolicy_ValidBucketAndFolder()
74+
{
75+
var policy = PolicyExtensions.ToPolicy("test-bucket", "Jack/Is/The/Best");
76+
77+
var policyString = JsonConvert.SerializeObject(policy, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore });
78+
79+
Assert.Equal("{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"AllowUserToSeeBucketListInTheConsole\",\"Action\":[\"s3:ListAllMyBuckets\",\"s3:GetBucketLocation\"],\"Effect\":\"Allow\",\"Resource\":[\"arn:aws:s3:::*\"]},{\"Sid\":\"AllowRootAndHomeListingOfBucket\",\"Action\":[\"s3:ListBucket\"],\"Effect\":\"Allow\",\"Resource\":[\"arn:aws:s3:::test-bucket\"],\"Condition\":{\"StringEquals\":{\"s3:prefix\":[\"Jack/Is/The/Best\",\"Jack/Is/The/\",\"Jack/Is/\",\"Jack/\",\"\"],\"s3:delimiter\":[\"/\"]}}},{\"Sid\":\"AllowListingOfUserFolder\",\"Action\":[\"s3:ListBucket\"],\"Effect\":\"Allow\",\"Resource\":[\"arn:aws:s3:::test-bucket\"],\"Condition\":{\"StringEquals\":{\"s3:prefix\":[\"Jack/Is/The/Best/*\"]}}},{\"Sid\":\"AllowAllS3ActionsInUserFolder\",\"Action\":[\"s3:*\"],\"Effect\":\"Allow\",\"Resource\":[\"arn:aws:s3:::test-bucket/Jack/Is/The/Best/*\"]}]}", policyString);
80+
}
81+
82+
[Fact]
83+
public void ToPolicy_NullBucket_ThrowsException()
84+
{
85+
Assert.Throws<ArgumentNullException>(() => PolicyExtensions.ToPolicy(null, "Jack/Is/The/Best"));
86+
}
87+
88+
[Fact]
89+
public void ToPolicy_NullFolder_ThrowsException()
90+
{
91+
Assert.Throws<ArgumentNullException>(() => PolicyExtensions.ToPolicy("test-bucket", null));
92+
}
93+
6094
#endregion
6195
}
6296
}

0 commit comments

Comments
 (0)