From 74efb78c7ce69618760ec5889650915ccf6d3034 Mon Sep 17 00:00:00 2001 From: Jan Hicken Date: Wed, 1 May 2024 12:55:49 +0200 Subject: [PATCH] Add test for mime types set on blobs --- .../janhicken/maven/wagon/gs/GSWagonTest.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/test/java/io/github/janhicken/maven/wagon/gs/GSWagonTest.java b/src/test/java/io/github/janhicken/maven/wagon/gs/GSWagonTest.java index 8635fee..c1db4c8 100644 --- a/src/test/java/io/github/janhicken/maven/wagon/gs/GSWagonTest.java +++ b/src/test/java/io/github/janhicken/maven/wagon/gs/GSWagonTest.java @@ -1,6 +1,7 @@ package io.github.janhicken.maven.wagon.gs; import com.google.api.services.storage.model.StorageObject; +import com.google.cloud.storage.BlobId; import com.google.cloud.storage.StorageOptions; import com.google.cloud.storage.contrib.nio.testing.LocalStorageHelper; import com.google.cloud.storage.spi.v1.StorageRpc; @@ -12,12 +13,15 @@ public class GSWagonTest extends StreamingWagonTestCase { + protected static final String BUCKET_NAME = "test-bucket"; + protected static final String PREFIX = "repo"; + final StorageOptions storageOptions = LocalStorageHelper.getOptions(); final GSWagon wagon = new GSWagon(storageOptions); @Override protected String getTestRepositoryUrl() { - return "gs://test-bucket/repo"; + return BlobId.of(BUCKET_NAME, PREFIX).toGsUtilUri(); } @Override @@ -49,4 +53,30 @@ public void testLookupByProtocol() throws Exception { String.format("Expected an instance of GSWagon, got: %s", result.getClass().getName()), result instanceof GSWagon); } + + public void testMimeType() throws Exception { + final var rpc = (StorageRpc) storageOptions.getRpc(); + setupWagonTestingFixtures(); + setupRepositories(); + + final var expectedMimeTypes = + Map.of( + "jar", "application/java-archive", + "pom", "application/xml", + "asc", "text/plain", + "sha1", "text/plain"); + for (final var expectedMimeType : expectedMimeTypes.entrySet()) { + final var resourceName = "mime_test." + expectedMimeType.getKey(); + putFile(resourceName, resourceName, "foo"); + + final var storageObject = new StorageObject(); + storageObject.setBucket(BUCKET_NAME); + storageObject.setName(PREFIX + '/' + resourceName); + final var ret = rpc.get(storageObject, Map.of()); + assertEquals( + "Unexpected content type for " + resourceName, + expectedMimeType.getValue(), + ret.getContentType()); + } + } }