From 5cc82671357fb777f3d0ad81fd9ab4f05ed8e587 Mon Sep 17 00:00:00 2001 From: usbharu Date: Mon, 16 Sep 2024 01:08:25 +0900 Subject: [PATCH] =?UTF-8?q?test:=20MediaAPI=E3=81=AE=E3=83=86=E3=82=B9?= =?UTF-8?q?=E3=83=88=E3=82=92=E5=BE=A9=E6=B4=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../mastodon/interfaces/api/SpringMediaApi.kt | 14 ++++++++++++++ .../src/test/kotlin/mastodon/media/MediaTest.kt | 2 +- .../src/test/resources/media/400x400.png | Bin 4 files changed, 16 insertions(+), 1 deletion(-) rename {hideout-core => hideout-mastodon}/src/test/resources/media/400x400.png (100%) diff --git a/.gitignore b/.gitignore index ecde199b..99c1c155 100644 --- a/.gitignore +++ b/.gitignore @@ -51,3 +51,4 @@ out/ /http-client.private.env.json /logs/ /hideout-mastodon/logs/ +/hideout-mastodon/files/ diff --git a/hideout-mastodon/src/main/kotlin/dev/usbharu/hideout/mastodon/interfaces/api/SpringMediaApi.kt b/hideout-mastodon/src/main/kotlin/dev/usbharu/hideout/mastodon/interfaces/api/SpringMediaApi.kt index d5bed541..a28dafbb 100644 --- a/hideout-mastodon/src/main/kotlin/dev/usbharu/hideout/mastodon/interfaces/api/SpringMediaApi.kt +++ b/hideout-mastodon/src/main/kotlin/dev/usbharu/hideout/mastodon/interfaces/api/SpringMediaApi.kt @@ -21,9 +21,12 @@ import dev.usbharu.hideout.core.application.media.UploadMediaApplicationService import dev.usbharu.hideout.core.infrastructure.springframework.oauth2.SpringSecurityOauth2PrincipalContextHolder import dev.usbharu.hideout.mastodon.interfaces.api.generated.MediaApi import dev.usbharu.hideout.mastodon.interfaces.api.generated.model.MediaAttachment +import org.slf4j.LoggerFactory +import org.springframework.http.HttpStatus import org.springframework.http.ResponseEntity import org.springframework.stereotype.Controller import org.springframework.web.multipart.MultipartFile +import org.springframework.web.server.ResponseStatusException import java.nio.file.Files @Controller @@ -37,6 +40,13 @@ class SpringMediaApi( description: String?, focus: String?, ): ResponseEntity { + + if (file.size == 0L) { + logger.warn("File is empty.") + throw ResponseStatusException(HttpStatus.BAD_REQUEST, "File is empty.") + } + + val tempFile = Files.createTempFile("hideout-tmp-file", ".tmp") Files.newOutputStream(tempFile).use { outputStream -> @@ -73,4 +83,8 @@ class SpringMediaApi( ) ) } + + companion object { + private val logger = LoggerFactory.getLogger(SpringMediaApi::class.java) + } } diff --git a/hideout-mastodon/src/test/kotlin/mastodon/media/MediaTest.kt b/hideout-mastodon/src/test/kotlin/mastodon/media/MediaTest.kt index 13d2bd55..7e4755d9 100644 --- a/hideout-mastodon/src/test/kotlin/mastodon/media/MediaTest.kt +++ b/hideout-mastodon/src/test/kotlin/mastodon/media/MediaTest.kt @@ -40,7 +40,7 @@ import org.springframework.web.context.WebApplicationContext @SpringBootTest(classes = [SpringApplication::class]) @AutoConfigureMockMvc @Transactional -@Sql("/sql/actors.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_CLASS) +@Sql("/sql/actors.sql","/sql/userdetail.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_CLASS) class MediaTest { @Autowired diff --git a/hideout-core/src/test/resources/media/400x400.png b/hideout-mastodon/src/test/resources/media/400x400.png similarity index 100% rename from hideout-core/src/test/resources/media/400x400.png rename to hideout-mastodon/src/test/resources/media/400x400.png