Skip to content

Commit ee5b72d

Browse files
committed
Throwing correct exceptions
1 parent f4bb5ea commit ee5b72d

File tree

4 files changed

+26
-24
lines changed

4 files changed

+26
-24
lines changed

iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/PolicyDocument.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.salesforce.multicloudj.iam.model;
22

3+
import com.salesforce.multicloudj.common.exceptions.InvalidArgumentException;
34
import lombok.Getter;
45

56
import java.util.ArrayList;
@@ -231,19 +232,19 @@ public Builder addStatement(Statement statement) {
231232
* Builds and returns a PolicyDocument instance.
232233
*
233234
* @return a new PolicyDocument instance
234-
* @throws IllegalArgumentException if no statements are defined
235+
* @throws InvalidArgumentException if no statements are defined
235236
*/
236237
public PolicyDocument build() {
237238
finalizeCurrentStatement();
238239
if (statements.isEmpty()) {
239-
throw new IllegalArgumentException("at least one statement is required");
240+
throw new InvalidArgumentException("at least one statement is required");
240241
}
241242
return new PolicyDocument(this);
242243
}
243244

244245
private void validateCurrentStatement() {
245246
if (currentStatementBuilder == null) {
246-
throw new IllegalStateException("No statement is currently being built. Call statement(sid) first.");
247+
throw new InvalidArgumentException("No statement is currently being built. Call statement(sid) first.");
247248
}
248249
}
249250

iam/iam-client/src/main/java/com/salesforce/multicloudj/iam/model/Statement.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.salesforce.multicloudj.iam.model;
22

3+
import com.salesforce.multicloudj.common.exceptions.InvalidArgumentException;
34
import lombok.Getter;
45

56
import java.util.ArrayList;
@@ -225,14 +226,14 @@ public Builder addCondition(String operator, String key, Object value) {
225226
* Builds and returns a Statement instance.
226227
*
227228
* @return a new Statement instance
228-
* @throws IllegalArgumentException if required fields are missing
229+
* @throws InvalidArgumentException if required fields are missing
229230
*/
230231
public Statement build() {
231232
if (effect == null || effect.trim().isEmpty()) {
232-
throw new IllegalArgumentException("effect is required");
233+
throw new InvalidArgumentException("effect is required");
233234
}
234235
if (actions.isEmpty()) {
235-
throw new IllegalArgumentException("at least one action is required");
236+
throw new InvalidArgumentException("at least one action is required");
236237
}
237238
return new Statement(this);
238239
}

iam/iam-client/src/test/java/com/salesforce/multicloudj/iam/model/PolicyDocumentTest.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.salesforce.multicloudj.iam.model;
22

3+
import com.salesforce.multicloudj.common.exceptions.InvalidArgumentException;
34
import org.junit.jupiter.api.Test;
45

56
import java.util.Arrays;
6-
import java.util.List;
77

88
import static org.junit.jupiter.api.Assertions.assertEquals;
99
import static org.junit.jupiter.api.Assertions.assertNotEquals;
@@ -82,14 +82,14 @@ public void testAddCompleteStatement() {
8282

8383
@Test
8484
public void testEmptyPolicyThrowsException() {
85-
assertThrows(IllegalArgumentException.class, () -> {
85+
assertThrows(InvalidArgumentException.class, () -> {
8686
PolicyDocument.builder().build();
8787
});
8888
}
8989

9090
@Test
9191
public void testStatementWithoutEffectThrowsException() {
92-
assertThrows(IllegalArgumentException.class, () -> {
92+
assertThrows(InvalidArgumentException.class, () -> {
9393
PolicyDocument.builder()
9494
.statement("TestStatement")
9595
.addAction("storage:GetObject")
@@ -100,7 +100,7 @@ public void testStatementWithoutEffectThrowsException() {
100100

101101
@Test
102102
public void testStatementWithoutActionsThrowsException() {
103-
assertThrows(IllegalArgumentException.class, () -> {
103+
assertThrows(InvalidArgumentException.class, () -> {
104104
PolicyDocument.builder()
105105
.statement("TestStatement")
106106
.effect("Allow")
@@ -185,28 +185,28 @@ public void testBuilderMethodsWithMultipleValues() {
185185
@Test
186186
public void testBuilderStateValidation() {
187187
// Test that trying to use statement methods without calling statement() throws exception
188-
assertThrows(IllegalStateException.class, () ->
188+
assertThrows(InvalidArgumentException.class, () ->
189189
PolicyDocument.builder().addAction("storage:GetObject").build());
190190

191-
assertThrows(IllegalStateException.class, () ->
191+
assertThrows(InvalidArgumentException.class, () ->
192192
PolicyDocument.builder().effect("Allow").build());
193193

194-
assertThrows(IllegalStateException.class, () ->
194+
assertThrows(InvalidArgumentException.class, () ->
195195
PolicyDocument.builder().addResource("storage://test-bucket/*").build());
196196

197-
assertThrows(IllegalStateException.class, () ->
197+
assertThrows(InvalidArgumentException.class, () ->
198198
PolicyDocument.builder().addPrincipal("principal1").build());
199199

200-
assertThrows(IllegalStateException.class, () ->
200+
assertThrows(InvalidArgumentException.class, () ->
201201
PolicyDocument.builder().addCondition("StringEquals", "key", "value").build());
202202

203-
assertThrows(IllegalStateException.class, () ->
203+
assertThrows(InvalidArgumentException.class, () ->
204204
PolicyDocument.builder().addActions(Arrays.asList("storage:GetObject")).build());
205205

206-
assertThrows(IllegalStateException.class, () ->
206+
assertThrows(InvalidArgumentException.class, () ->
207207
PolicyDocument.builder().addResources(Arrays.asList("storage://test-bucket/*")).build());
208208

209-
assertThrows(IllegalStateException.class, () ->
209+
assertThrows(InvalidArgumentException.class, () ->
210210
PolicyDocument.builder().addPrincipals(Arrays.asList("principal1")).build());
211211
}
212212

iam/iam-client/src/test/java/com/salesforce/multicloudj/iam/model/StatementTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package com.salesforce.multicloudj.iam.model;
22

3+
import com.salesforce.multicloudj.common.exceptions.InvalidArgumentException;
34
import org.junit.jupiter.api.Test;
45

56
import java.util.Arrays;
67
import java.util.List;
7-
import java.util.Map;
88

99
import static org.junit.jupiter.api.Assertions.assertEquals;
1010
import static org.junit.jupiter.api.Assertions.assertNotEquals;
@@ -121,14 +121,14 @@ public void testStatementWithoutSid() {
121121

122122
@Test
123123
public void testEmptyStatementThrowsException() {
124-
assertThrows(IllegalArgumentException.class, () -> {
124+
assertThrows(InvalidArgumentException.class, () -> {
125125
Statement.builder().build();
126126
});
127127
}
128128

129129
@Test
130130
public void testStatementWithoutEffectThrowsException() {
131-
assertThrows(IllegalArgumentException.class, () -> {
131+
assertThrows(InvalidArgumentException.class, () -> {
132132
Statement.builder()
133133
.sid("NoEffectStatement")
134134
.addAction("storage:GetObject")
@@ -139,7 +139,7 @@ public void testStatementWithoutEffectThrowsException() {
139139

140140
@Test
141141
public void testStatementWithoutActionsThrowsException() {
142-
assertThrows(IllegalArgumentException.class, () -> {
142+
assertThrows(InvalidArgumentException.class, () -> {
143143
Statement.builder()
144144
.sid("NoActionsStatement")
145145
.effect("Allow")
@@ -150,7 +150,7 @@ public void testStatementWithoutActionsThrowsException() {
150150

151151
@Test
152152
public void testStatementWithEmptyEffect() {
153-
assertThrows(IllegalArgumentException.class, () -> {
153+
assertThrows(InvalidArgumentException.class, () -> {
154154
Statement.builder()
155155
.sid("EmptyEffectStatement")
156156
.effect("")
@@ -161,7 +161,7 @@ public void testStatementWithEmptyEffect() {
161161

162162
@Test
163163
public void testStatementWithWhitespaceEffect() {
164-
assertThrows(IllegalArgumentException.class, () -> {
164+
assertThrows(InvalidArgumentException.class, () -> {
165165
Statement.builder()
166166
.sid("WhitespaceEffectStatement")
167167
.effect(" ")

0 commit comments

Comments
 (0)