Skip to content

Commit 35251b0

Browse files
authored
Merge pull request #10 from EsalaMapa/test-cases
Add Test cases for Search methods.
2 parents ec5b4e7 + 0774cac commit 35251b0

26 files changed

+1673
-31
lines changed

components/org.wso2.carbon.identity.authz.spicedb/pom.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,7 @@
125125
<limit implementation="org.jacoco.report.check.Limit">
126126
<counter>COMPLEXITY</counter>
127127
<value>COVEREDRATIO</value>
128-
<!-- coverage to be increased to 0.8 in next PR -->
129-
<minimum>0.31</minimum>
128+
<minimum>0.80</minimum>
130129
</limit>
131130
</limits>
132131
</rule>

components/org.wso2.carbon.identity.authz.spicedb/src/main/java/org/wso2/carbon/identity/authz/spicedb/constants/SpiceDbModelConstants.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,6 @@ public class SpiceDbModelConstants {
9292
public static final String DEFINITION_PERMISSIONS = "permissions";
9393
public static final String PERMISSION_NAME = "name";
9494
public static final String PERMISSION_COMMENT = "comment";
95-
public static final String PARENT_DEFINITION = "parentDefinitionType";
95+
public static final String PARENT_DEFINITION = "parentDefinitionName";
9696
public static final String SUBJECT_TYPES = "subjectTypes";
9797
}

components/org.wso2.carbon.identity.authz.spicedb/src/main/java/org/wso2/carbon/identity/authz/spicedb/handler/model/BulkCheckPermissionResponse.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public String getToken() {
4949

5050
public List<BulkCheckPermissionResult> getResults() {
5151

52-
return Collections.unmodifiableList(this.results);
52+
return this.results != null ? Collections.unmodifiableList(this.results) : null;
5353
}
5454

5555
/**

components/org.wso2.carbon.identity.authz.spicedb/src/main/java/org/wso2/carbon/identity/authz/spicedb/handler/model/CheckPermissionResponse.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,12 @@ public String getPermissionship() {
5555

5656
public Map<String, Object> getPartialCaveatInfo() {
5757

58-
return Collections.unmodifiableMap(this.partialCaveatInfo);
58+
return this.partialCaveatInfo != null ? Collections.unmodifiableMap(this.partialCaveatInfo) : null;
5959
}
6060

6161
public Map<String, Object> getDebugTrace() {
6262

63-
return Collections.unmodifiableMap(this.debugTrace);
63+
return this.debugTrace != null ? Collections.unmodifiableMap(this.debugTrace) : null;
6464
}
6565

6666
/**

components/org.wso2.carbon.identity.authz.spicedb/src/main/java/org/wso2/carbon/identity/authz/spicedb/handler/model/Permission.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
import java.util.ArrayList;
2626
import java.util.Collections;
27+
import java.util.List;
2728

2829
/**
2930
* The {@code Permission} class represents a permission object returned in a reflection response.
@@ -38,7 +39,7 @@ public class Permission {
3839
private String permissionComment;
3940
@SerializedName(SpiceDbModelConstants.PARENT_DEFINITION)
4041
@Expose
41-
private String parentDefinitionType;
42+
private String parentDefinitionName;
4243
@SerializedName(SpiceDbModelConstants.SUBJECT_TYPES)
4344
@Expose
4445
private ArrayList<Object> subjectTypes;
@@ -53,13 +54,13 @@ public String getPermissionComment() {
5354
return permissionComment;
5455
}
5556

56-
public String getParentDefinitionType() {
57+
public String getParentDefinitionName() {
5758

58-
return parentDefinitionType;
59+
return parentDefinitionName;
5960
}
6061

61-
public ArrayList<Object> getSubjectTypes() {
62+
public List<Object> getSubjectTypes() {
6263

63-
return subjectTypes != null ? (ArrayList<Object>) Collections.unmodifiableList(subjectTypes) : null;
64+
return subjectTypes != null ? Collections.unmodifiableList(subjectTypes) : null;
6465
}
6566
}

components/org.wso2.carbon.identity.authz.spicedb/src/main/java/org/wso2/carbon/identity/authz/spicedb/handler/model/ReturnedCheckRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,6 @@ public String getPermission() {
6161

6262
public Map<String, Object> getContext() {
6363

64-
return Collections.unmodifiableMap(context);
64+
return this.context != null ? Collections.unmodifiableMap(context) : null;
6565
}
6666
}

components/org.wso2.carbon.identity.authz.spicedb/src/main/java/org/wso2/carbon/identity/authz/spicedb/handler/model/SpiceDbErrorResponse.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,16 @@ public class SpiceDbErrorResponse {
3838
private String message;
3939
@SerializedName(SpiceDbModelConstants.DETAILS)
4040
@Expose
41-
private List<String> details;
41+
private List<Object> details;
4242

4343
public String getMessage() {
4444

4545
return message;
4646
}
4747

48-
public List<String> getDetails() {
48+
public List<Object> getDetails() {
4949

50-
return Collections.unmodifiableList(details);
50+
return this.details != null ? Collections.unmodifiableList(details) : null;
5151
}
5252

5353
public String getCode() {

components/org.wso2.carbon.identity.authz.spicedb/src/main/java/org/wso2/carbon/identity/authz/spicedb/handler/spicedb/SpicedbPermissionRequestService.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,9 @@ public AccessEvaluationResponse evaluate(AccessEvaluationRequest accessEvaluatio
9696
responseString, CheckPermissionResponse.class);
9797
AccessEvaluationResponse accessEvaluationResponse = new AccessEvaluationResponse(
9898
checkPermissionResponse.isAuthorized());
99-
accessEvaluationResponse.setContext(checkPermissionResponse.getPartialCaveatInfo());
99+
if (checkPermissionResponse.getPartialCaveatInfo() != null) {
100+
accessEvaluationResponse.setContext(checkPermissionResponse.getPartialCaveatInfo());
101+
}
100102
return accessEvaluationResponse;
101103
} else if (HttpStatus.SC_BAD_REQUEST <= statusCode &&
102104
statusCode <= HttpStatus.SC_INSUFFICIENT_STORAGE) {

components/org.wso2.carbon.identity.authz.spicedb/src/test/java/org/wso2/carbon/identity/authz/spicedb/handler/model/BulkCheckPermissionResponseTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.wso2.carbon.identity.authz.spicedb.constants.SpiceDbModelConstants;
2626

2727
import java.lang.reflect.Field;
28+
import java.util.ArrayList;
2829
import java.util.Collections;
2930
import java.util.HashMap;
3031

@@ -104,4 +105,23 @@ public void testToBulkAccessEvaluationResponseWithErrorResult() throws Exception
104105
Assert.assertFalse(bulkAccessEvaluationResponse.getResults().get(0).getDecision());
105106
Assert.assertNotNull(bulkAccessEvaluationResponse.getResults().get(0).getContext());
106107
}
108+
109+
public void testGetResults() throws Exception {
110+
111+
BulkCheckPermissionResponse response = new BulkCheckPermissionResponse();
112+
Field resultsField = BulkCheckPermissionResponse.class.getDeclaredField("results");
113+
resultsField.setAccessible(true);
114+
resultsField.set(response, new ArrayList<>());
115+
Assert.assertNotNull(response.getResults());
116+
Assert.assertTrue(response.getResults().isEmpty());
117+
}
118+
119+
public void testGetResultsWithNull() throws Exception {
120+
121+
BulkCheckPermissionResponse response = new BulkCheckPermissionResponse();
122+
Field resultsField = BulkCheckPermissionResponse.class.getDeclaredField("results");
123+
resultsField.setAccessible(true);
124+
resultsField.set(response, null);
125+
Assert.assertNull(response.getResults());
126+
}
107127
}

components/org.wso2.carbon.identity.authz.spicedb/src/test/java/org/wso2/carbon/identity/authz/spicedb/handler/model/CheckPermissionRequestTest.java

Lines changed: 53 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,67 @@
3939
public class CheckPermissionRequestTest {
4040

4141
@Test
42-
public void testConstructorWithNullRequest() {
42+
public void testConstructorWithNullResource() {
4343

4444
try {
45-
new CheckPermissionRequest(new AccessEvaluationRequest(null, null, null));
45+
new CheckPermissionRequest(new AccessEvaluationRequest(mock(AuthorizationSubject.class),
46+
mock(AuthorizationAction.class), null));
4647
} catch (IllegalArgumentException e) {
4748
assert e.getMessage().equals("Invalid request. Resource, action, and subject " +
4849
"must be provided for permission check.");
4950
}
5051
}
5152

53+
@Test
54+
public void testConstructorWithNullAction() {
55+
56+
try {
57+
new CheckPermissionRequest(new AccessEvaluationRequest(mock(AuthorizationSubject.class), null,
58+
mock(AuthorizationResource.class)));
59+
} catch (IllegalArgumentException e) {
60+
assert e.getMessage().equals("Invalid request. Resource, action, and subject " +
61+
"must be provided for permission check.");
62+
}
63+
}
64+
65+
@Test
66+
public void testConstructorWithNullSubject() {
67+
68+
try {
69+
new CheckPermissionRequest(new AccessEvaluationRequest(null, mock(AuthorizationAction.class),
70+
mock(AuthorizationResource.class)));
71+
} catch (IllegalArgumentException e) {
72+
assert e.getMessage().equals("Invalid request. Resource, action, and subject " +
73+
"must be provided for permission check.");
74+
}
75+
}
76+
77+
@Test
78+
public void testConstructorWithNullResourceId() {
79+
80+
try {
81+
new CheckPermissionRequest(new AccessEvaluationRequest(
82+
new AuthorizationSubject("type", "id"), mock(AuthorizationAction.class),
83+
mock(AuthorizationResource.class)));
84+
} catch (IllegalArgumentException e) {
85+
assert e.getMessage().equals("Invalid request. Resource Id and subject Id " +
86+
"must be provided for permission check.");
87+
}
88+
}
89+
90+
@Test
91+
public void testConstructorWithNullSubjectId() {
92+
93+
try {
94+
new CheckPermissionRequest(new AccessEvaluationRequest(
95+
mock(AuthorizationSubject.class), mock(AuthorizationAction.class),
96+
new AuthorizationResource("type", "id")));
97+
} catch (IllegalArgumentException e) {
98+
assert e.getMessage().equals("Invalid request. Resource Id and subject Id " +
99+
"must be provided for permission check.");
100+
}
101+
}
102+
52103
@Test
53104
public void testConstructorWithValidRequest() throws Exception {
54105

0 commit comments

Comments
 (0)