S3ResourceId implements ResourceId { static S3ResourceId fromComponents(String bucket, String key) { if (!key.startsWith("/")) { key = "/" + key; } return new S3ResourceId(bucket, key, null, null); } private  S3ResourceId(
      String bucket, String key, @Nullable Long size, @Nullable Date lastModified); @Override ResourceId resolve(String other, ResolveOptions resolveOptions); @Override ResourceId getCurrentDirectory(); @Override String getScheme(); @Nullable @Override String getFilename(); @Override boolean isDirectory(); @Override String toString(); @Override boolean equals(@Nullable Object obj); @Override int hashCode();  }
@Test public void testInvalidBucket() { thrown.expect(IllegalArgumentException.class); S3ResourceId.fromComponents("invalid/", ""); }