BucketAccessServiceImpl implements BucketAccessService { @Override public AbsoluteLocation<PublicResource> publicAccessFor(UserID user, PublicResource resource) { log.debug("get public access for user {} and bucket {}", user, resource.location()); return new AbsoluteLocation<>(resource); } @Inject // Just declaring dependency, so no-op operations can user runtime-delegations, lazy // because there is circular construction time dependency for `withSystemAccess`  BucketAccessServiceImpl(Lazy<StorageKeyStoreOperations> storageKeyStoreOperations); @Override AbsoluteLocation<PrivateResource> privateAccessFor(UserIDAuth user, PrivateResource resource); @Override AbsoluteLocation<PublicResource> publicAccessFor(UserID user, PublicResource resource); @Override AbsoluteLocation withSystemAccess(AbsoluteLocation resource);  }
@Test void publicAccessFor() { assertThat(bucketAccessService.publicAccessFor( auth.getUserID(), BasePublicResource.forAbsolutePublic(ABSOLUTE_BUCKET).getResource()).location().asURI() ).asString().isEqualTo(ABSOLUTE_BUCKET); }