Skip to content

Commit 3e4ff2e

Browse files
committed
Explicitly type everything to make java 8 happy"
1 parent 77383e5 commit 3e4ff2e

File tree

1 file changed

+68
-65
lines changed

1 file changed

+68
-65
lines changed

src/intTest/java/V1ClientTest.java

Lines changed: 68 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import java.util.HashSet;
2+
import java.util.Iterator;
23
import java.util.concurrent.CountDownLatch;
34

45
import com.google.protobuf.Struct;
@@ -7,72 +8,78 @@
78
import com.authzed.api.v1.*;
89

910
import io.grpc.stub.StreamObserver;
11+
import jdk.dynalink.linker.support.Lookup;
1012
import org.junit.Test;
1113

14+
import javax.security.auth.Subject;
15+
1216
import static org.assertj.core.api.Assertions.assertThat;
1317

18+
/*
19+
NOTE: this file has some un-ergonomic code because we test against Java 8
20+
and therefore need to conform to Java 8 syntax. When we get to where we can
21+
drop support, we can update this code.
22+
*/
1423
public class V1ClientTest {
1524
private static final Consistency fullyConsistent = Consistency.newBuilder().setFullyConsistent(true).build();
1625

1726
@Test
1827
public void testBasicSchema() {
1928
// Initialize services
20-
var client = new TestClient();
21-
String schema = """
22-
definition document {
23-
relation reader: user
24-
}
25-
definition user {}
26-
""";
29+
TestClient client = new TestClient();
30+
String schema = "definition document {\n"
31+
+ "relation reader: user\n"
32+
+ "}\n"
33+
+ "definition user {}";
2734
// Write schema
2835
writeSchema(client, schema);
2936

3037
// Read schema
31-
var readRequest = ReadSchemaRequest.newBuilder().build();
32-
var readResponse = client.schemaService.readSchema(readRequest);
38+
ReadSchemaRequest readRequest = ReadSchemaRequest.newBuilder().build();
39+
ReadSchemaResponse readResponse = client.schemaService.readSchema(readRequest);
3340
assertThat(readResponse.getSchemaText()).contains("definition document");
3441
assertThat(readResponse.getSchemaText()).contains("definition user");
3542
}
3643

3744
@Test
3845
public void testSchemaWithCaveats() {
39-
var client = new TestClient();
46+
TestClient client = new TestClient();
4047
writeTestSchema(client);
4148
}
4249

4350
// For an example with flow control, see
4451
// https://github.com/grpc/grpc-java/blob/9071c1ad7c842f4e73b6ae95b71f11c517b177a4/examples/src/main/java/io/grpc/examples/manualflowcontrol/ManualFlowControlClient.java
4552
@Test
4653
public void testCheck() {
47-
var client = new TestClient();
54+
TestClient client = new TestClient();
4855
writeTestSchema(client);
49-
var testTuples = writeTestTuples(client);
56+
TestTuples testTuples = writeTestTuples(client);
5057

51-
var firstResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
58+
CheckPermissionResponse firstResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
5259
.setConsistency(fullyConsistent)
5360
.setResource(testTuples.postOne)
5461
.setSubject(testTuples.emilia)
5562
.setPermission("view")
5663
.build());
5764
assertThat(firstResponse.getPermissionship()).isEqualTo(CheckPermissionResponse.Permissionship.PERMISSIONSHIP_HAS_PERMISSION);
5865

59-
var secondResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
66+
CheckPermissionResponse secondResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
6067
.setConsistency(fullyConsistent)
6168
.setResource(testTuples.postOne)
6269
.setSubject(testTuples.emilia)
6370
.setPermission("write")
6471
.build());
6572
assertThat(secondResponse.getPermissionship()).isEqualTo(CheckPermissionResponse.Permissionship.PERMISSIONSHIP_HAS_PERMISSION);
6673

67-
var thirdResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
74+
CheckPermissionResponse thirdResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
6875
.setConsistency(fullyConsistent)
6976
.setResource(testTuples.postOne)
7077
.setSubject(testTuples.beatrice)
7178
.setPermission("view")
7279
.build());
7380
assertThat(thirdResponse.getPermissionship()).isEqualTo(CheckPermissionResponse.Permissionship.PERMISSIONSHIP_HAS_PERMISSION);
7481

75-
var fourthResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
82+
CheckPermissionResponse fourthResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
7683
.setConsistency(fullyConsistent)
7784
.setResource(testTuples.postOne)
7885
.setSubject(testTuples.beatrice)
@@ -83,13 +90,13 @@ public void testCheck() {
8390

8491
@Test
8592
public void testCaveatedCheck() {
86-
var client = new TestClient();
93+
TestClient client = new TestClient();
8794
writeTestSchema(client);
88-
var testTuples = writeTestTuples(client);
95+
TestTuples testTuples = writeTestTuples(client);
8996

9097
// Likes Harry Potter
91-
var likesContext = Struct.newBuilder().putFields("likes", Value.newBuilder().setBoolValue(true).build()).build();
92-
var firstResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
98+
Struct likesContext = Struct.newBuilder().putFields("likes", Value.newBuilder().setBoolValue(true).build()).build();
99+
CheckPermissionResponse firstResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
93100
.setConsistency(fullyConsistent)
94101
.setResource(testTuples.postOne)
95102
.setSubject(testTuples.beatrice)
@@ -99,8 +106,8 @@ public void testCaveatedCheck() {
99106
assertThat(firstResponse.getPermissionship()).isEqualTo(CheckPermissionResponse.Permissionship.PERMISSIONSHIP_HAS_PERMISSION);
100107

101108
// No longer likes Harry Potter
102-
var dislikesContext = Struct.newBuilder().putFields("likes", Value.newBuilder().setBoolValue(false).build()).build();
103-
var secondResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
109+
Struct dislikesContext = Struct.newBuilder().putFields("likes", Value.newBuilder().setBoolValue(false).build()).build();
110+
CheckPermissionResponse secondResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
104111
.setConsistency(fullyConsistent)
105112
.setResource(testTuples.postOne)
106113
.setSubject(testTuples.beatrice)
@@ -110,7 +117,7 @@ public void testCaveatedCheck() {
110117
assertThat(secondResponse.getPermissionship()).isEqualTo(CheckPermissionResponse.Permissionship.PERMISSIONSHIP_NO_PERMISSION);
111118

112119
// No longer likes Harry Potter
113-
var thirdResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
120+
CheckPermissionResponse thirdResponse = client.permissionsService.checkPermission(CheckPermissionRequest.newBuilder()
114121
.setConsistency(fullyConsistent)
115122
.setResource(testTuples.postOne)
116123
.setSubject(testTuples.beatrice)
@@ -122,19 +129,19 @@ public void testCaveatedCheck() {
122129

123130
@Test
124131
public void testLookupResources() {
125-
var client = new TestClient();
132+
TestClient client = new TestClient();
126133
writeTestSchema(client);
127-
var testTuples = writeTestTuples(client);
134+
TestTuples testTuples = writeTestTuples(client);
128135

129-
var lookupResourcesRequest = LookupResourcesRequest.newBuilder()
136+
LookupResourcesRequest lookupResourcesRequest = LookupResourcesRequest.newBuilder()
130137
.setConsistency(fullyConsistent)
131138
.setResourceObjectType("post")
132139
.setSubject(testTuples.emilia)
133140
.setPermission("write")
134141
.build();
135142

136-
var resp = client.permissionsService.lookupResources(lookupResourcesRequest);
137-
var resources = new HashSet<String>();
143+
Iterator<LookupResourcesResponse> resp = client.permissionsService.lookupResources(lookupResourcesRequest);
144+
HashSet<String> resources = new HashSet<String>();
138145
resp.forEachRemaining(lookupResourcesResponse -> resources.add(lookupResourcesResponse.getResourceObjectId()));
139146

140147
assertThat(resources).contains(testTuples.postOne.getObjectId());
@@ -144,19 +151,19 @@ public void testLookupResources() {
144151

145152
@Test
146153
public void testLookupSubjects() {
147-
var client = new TestClient();
154+
TestClient client = new TestClient();
148155
writeTestSchema(client);
149-
var testTuples = writeTestTuples(client);
156+
TestTuples testTuples = writeTestTuples(client);
150157

151-
var lookupSubjectsRequest = LookupSubjectsRequest.newBuilder()
158+
LookupSubjectsRequest lookupSubjectsRequest = LookupSubjectsRequest.newBuilder()
152159
.setConsistency(fullyConsistent)
153160
.setSubjectObjectType("user")
154161
.setResource(testTuples.postOne)
155162
.setPermission("view")
156163
.build();
157164

158-
var resp = client.permissionsService.lookupSubjects(lookupSubjectsRequest);
159-
var users = new HashSet<String>();
165+
Iterator<LookupSubjectsResponse> resp = client.permissionsService.lookupSubjects(lookupSubjectsRequest);
166+
HashSet<String> users = new HashSet<String>();
160167
resp.forEachRemaining(response ->
161168
users.add(response.getSubject().getSubjectObjectId()));
162169

@@ -167,11 +174,11 @@ public void testLookupSubjects() {
167174

168175
@Test
169176
public void testCheckBulkPermissions() {
170-
var client = new TestClient();
177+
TestClient client = new TestClient();
171178
writeTestSchema(client);
172-
var testTuples = writeTestTuples(client);
179+
TestTuples testTuples = writeTestTuples(client);
173180

174-
var checkBulkPermissionsRequest = CheckBulkPermissionsRequest.newBuilder()
181+
CheckBulkPermissionsRequest checkBulkPermissionsRequest = CheckBulkPermissionsRequest.newBuilder()
175182
.setConsistency(fullyConsistent)
176183
.addItems(CheckBulkPermissionsRequestItem.newBuilder()
177184
.setResource(testTuples.postOne)
@@ -183,32 +190,32 @@ public void testCheckBulkPermissions() {
183190
.setSubject(testTuples.emilia))
184191
.build();
185192

186-
var response = client.permissionsService.checkBulkPermissions(checkBulkPermissionsRequest);
193+
CheckBulkPermissionsResponse response = client.permissionsService.checkBulkPermissions(checkBulkPermissionsRequest);
187194
assertThat(response.getPairsList()).hasSize(2);
188195
assertThat(response.getPairs(0).getItem().getPermissionship()).isEqualTo(CheckPermissionResponse.Permissionship.PERMISSIONSHIP_HAS_PERMISSION);
189196
assertThat(response.getPairs(1).getItem().getPermissionship()).isEqualTo(CheckPermissionResponse.Permissionship.PERMISSIONSHIP_HAS_PERMISSION);
190197
}
191198

192199
@Test
193200
public void testBulkImport() throws InterruptedException {
194-
var client = new TestClient();
201+
TestClient client = new TestClient();
195202
writeTestSchema(client);
196203
writeTestTuples(client);
197204

198205
// Validate export
199-
var exportCall = client.permissionsService.exportBulkRelationships(ExportBulkRelationshipsRequest.newBuilder()
206+
Iterator<ExportBulkRelationshipsResponse> exportCall = client.permissionsService.exportBulkRelationships(ExportBulkRelationshipsRequest.newBuilder()
200207
.setConsistency(fullyConsistent)
201208
.build());
202209

203-
var relations = new HashSet<Relationship>();
210+
HashSet<Relationship> relations = new HashSet<Relationship>();
204211
exportCall.forEachRemaining(response ->
205212
relations.addAll(response.getRelationshipsList()));
206213

207214
assertThat(relations).hasSize(4);
208215

209216
// Note that this has a different preshared key
210217
// Validate import
211-
var emptyClient = new TestClient();
218+
TestClient emptyClient = new TestClient();
212219
writeTestSchema(emptyClient);
213220

214221
final CountDownLatch done = new CountDownLatch(1);
@@ -236,20 +243,20 @@ public void onCompleted() {
236243
}
237244

238245
// Do the import
239-
var importObserver = new ImportBulkObserver();
240-
var wrappedObserver = client.asyncPermissionsService.importBulkRelationships(importObserver);
246+
ImportBulkObserver importObserver = new ImportBulkObserver();
247+
StreamObserver<ImportBulkRelationshipsRequest> wrappedObserver = client.asyncPermissionsService.importBulkRelationships(importObserver);
241248
wrappedObserver.onNext(ImportBulkRelationshipsRequest.newBuilder()
242249
.addAllRelationships(relations).build());
243250
wrappedObserver.onCompleted();
244251

245252
done.await();
246253

247254
// Validate that everything was loaded
248-
var postImportExportCall = client.permissionsService.exportBulkRelationships(ExportBulkRelationshipsRequest.newBuilder()
255+
Iterator<ExportBulkRelationshipsResponse> postImportExportCall = client.permissionsService.exportBulkRelationships(ExportBulkRelationshipsRequest.newBuilder()
249256
.setConsistency(fullyConsistent)
250257
.build());
251258

252-
var importedRelations = new HashSet<Relationship>();
259+
HashSet<Relationship> importedRelations = new HashSet<Relationship>();
253260
postImportExportCall.forEachRemaining(response ->
254261
importedRelations.addAll(response.getRelationshipsList()));
255262

@@ -260,10 +267,10 @@ public void onCompleted() {
260267

261268

262269
private TestTuples writeTestTuples(TestClient client) {
263-
var emilia = SubjectReference.newBuilder().setObject(ObjectReference.newBuilder().setObjectId("emilia").setObjectType("user").build()).build();
264-
var beatrice = SubjectReference.newBuilder().setObject(ObjectReference.newBuilder().setObjectId("beatrice").setObjectType("user").build()).build();
265-
var postOne = ObjectReference.newBuilder().setObjectId("post-one").setObjectType("post").build();
266-
var postTwo = ObjectReference.newBuilder().setObjectId("post-two").setObjectType("post").build();
270+
SubjectReference emilia = SubjectReference.newBuilder().setObject(ObjectReference.newBuilder().setObjectId("emilia").setObjectType("user").build()).build();
271+
SubjectReference beatrice = SubjectReference.newBuilder().setObject(ObjectReference.newBuilder().setObjectId("beatrice").setObjectType("user").build()).build();
272+
ObjectReference postOne = ObjectReference.newBuilder().setObjectId("post-one").setObjectType("post").build();
273+
ObjectReference postTwo = ObjectReference.newBuilder().setObjectId("post-two").setObjectType("post").build();
267274
WriteRelationshipsRequest.Builder builder = WriteRelationshipsRequest.newBuilder()
268275
.addUpdates(
269276
RelationshipUpdate.newBuilder()
@@ -306,22 +313,18 @@ private TestTuples writeTestTuples(TestClient client) {
306313
}
307314

308315
private void writeTestSchema(TestClient client) {
309-
String schema = """
310-
caveat likes_harry_potter(likes bool) {
311-
likes == true
312-
}
313-
314-
definition post {
315-
relation writer: user
316-
relation reader: user
317-
relation caveated_reader: user with likes_harry_potter
318-
319-
permission write = writer
320-
permission view = reader + writer
321-
permission view_as_fan = caveated_reader + writer
322-
}
323-
definition user {}
324-
""";
316+
String schema = "caveat likes_harry_potter(likes bool) {\n"
317+
+ "likes == true\n"
318+
+ "}\n"
319+
+ "definition post {\n"
320+
+ "relation writer: user\n"
321+
+ "relation reader: user\n"
322+
+ "relation caveated_reader: user with likes_harry_potter\n"
323+
+ "permission write = writer\n"
324+
+ "permission view = reader + writer\n"
325+
+ "permission view_as_fan = caveated_reader + writer\n"
326+
+ "}\n"
327+
+ "definition user {}";
325328
writeSchema(client, schema);
326329
}
327330

0 commit comments

Comments
 (0)