@Test
@InSequence(4)
public void testOptionsAndMetadata() throws IOException {
GcsFilename filename = new GcsFilename(bucket, OBJECT_NAME + "4");
GcsFileOptions option = new GcsFileOptions.Builder()
.acl("public-read")
.cacheControl("Cache-Control: public, max-age=3600")
.contentEncoding("Content-Encoding: gzip")
.contentDisposition("Content-Disposition: attachment")
.mimeType("text/html")
.addUserMetadata("userKey", "UserMetadata")
.build();
GcsOutputChannel writeChannel = gcsService.createOrReplace(filename, option);
try (PrintWriter out = new PrintWriter(Channels.newWriter(writeChannel, "UTF8"))) {
out.println(CONTENT);
out.flush();
}
GcsFileMetadata metaData = gcsService.getMetadata(filename);
GcsFileOptions option2 = metaData.getOptions();
try {
assertEquals(filename, metaData.getFilename());
} finally {
gcsService.delete(filename);
}
assertEquals("Cache-Control: public, max-age=3600", option2.getCacheControl());
assertEquals("Content-Encoding: gzip", option2.getContentEncoding());
assertEquals("Content-Disposition: attachment", option2.getContentDisposition());
assertEquals("text/html", option2.getMimeType());
assertEquals("Content-Encoding: gzip", option2.getContentEncoding());
Map<String, String> userMetadata = option2.getUserMetadata();
assertEquals(1, userMetadata.size());
String key = userMetadata.keySet().iterator().next();
assertEquals("UserMetadata", userMetadata.get(key));
assertEquals("public-read", option2.getAcl());
}