Pārlūkot izejas kodu

ConvertToBase64

Andrew Grant 2 mēneši atpakaļ
vecāks
revīzija
1bd565a515

+ 5 - 7
src/main/java/scot/carricksoftware/grants/controllers/images/images/ImageFormControllerImpl.java

@@ -20,13 +20,13 @@ import org.springframework.web.multipart.MultipartFile;
 import scot.carricksoftware.grants.commands.images.ImageCommand;
 import scot.carricksoftware.grants.commands.images.ImageCommandImpl;
 import scot.carricksoftware.grants.constants.*;
+import scot.carricksoftware.grants.converters.images.ConvertToBase64;
 import scot.carricksoftware.grants.converters.images.image.ImageCommandConverterImpl;
 import scot.carricksoftware.grants.converters.images.image.ImageConverterImpl;
 import scot.carricksoftware.grants.services.images.image.ImageService;
 import scot.carricksoftware.grants.validators.images.ImageCommandValidator;
 
 import java.io.IOException;
-import java.util.Base64;
 
 @SuppressWarnings("LoggingSimilarMessage")
 @Controller
@@ -38,18 +38,20 @@ public class ImageFormControllerImpl implements ImageFormController {
     private final ImageCommandConverterImpl imageCommandConverter;
     private final ImageConverterImpl imageConverter;
     private final ImageCommandValidator imageCommandValidator;
+    private final ConvertToBase64 convertToBase64;
 
 
     public ImageFormControllerImpl(ImageService imageService,
                                    ImageCommandConverterImpl imageCommandConverter,
                                    ImageConverterImpl imageConverter,
-                                   ImageCommandValidator imageCommandValidator) {
+                                   ImageCommandValidator imageCommandValidator, ConvertToBase64 convertToBase64) {
         this.imageService = imageService;
         this.imageCommandConverter = imageCommandConverter;
 
 
         this.imageConverter = imageConverter;
         this.imageCommandValidator = imageCommandValidator;
+        this.convertToBase64 = convertToBase64;
     }
 
     @SuppressWarnings("SameReturnValue")
@@ -77,11 +79,10 @@ public class ImageFormControllerImpl implements ImageFormController {
         logger.debug("ImageFormControllerImpl::saveOrUpdate");
 
         imageCommand.setFileName(file.getOriginalFilename());
-        imageCommand.setImageData(convertToBase64(file.getBytes()));
+        imageCommand.setImageData(convertToBase64.convert(file.getBytes()));
 
         imageCommandValidator.validate(imageCommand, bindingResult);
 
-
         if (bindingResult.hasErrors()) {
             bindingResult.getAllErrors().forEach(error -> logger.debug(error.getDefaultMessage()));
             return ViewConstants.IMAGE_FORM;
@@ -102,8 +103,5 @@ public class ImageFormControllerImpl implements ImageFormController {
         return ViewConstants.IMAGE_FORM;
     }
 
-    private String convertToBase64(byte[] byteData) {
-        return Base64.getMimeEncoder().encodeToString(byteData);
-    }
 }
 

+ 11 - 0
src/main/java/scot/carricksoftware/grants/converters/images/ConvertToBase64.java

@@ -0,0 +1,11 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grants.converters.images;
+
+public interface ConvertToBase64 {
+    String convert(byte[] byteData);
+}
+

+ 19 - 0
src/main/java/scot/carricksoftware/grants/converters/images/ConvertToBase64Impl.java

@@ -0,0 +1,19 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grants.converters.images;
+
+import org.springframework.stereotype.Component;
+
+import java.util.Base64;
+
+@Component
+public class ConvertToBase64Impl implements ConvertToBase64 {
+
+    @Override
+    public String convert(byte[] byteData) {
+        return Base64.getMimeEncoder().encodeToString(byteData);
+    }
+}

+ 6 - 1
src/test/java/scot/carricksoftware/grants/controllers/images/images/ImageFormControllerSaveOrUpdateTest.java

@@ -13,6 +13,7 @@ import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
 import scot.carricksoftware.grants.commands.images.ImageCommand;
 import scot.carricksoftware.grants.commands.images.ImageCommandImpl;
+import scot.carricksoftware.grants.converters.images.ConvertToBase64;
 import scot.carricksoftware.grants.converters.images.image.ImageCommandConverterImpl;
 import scot.carricksoftware.grants.converters.images.image.ImageConverterImpl;
 import scot.carricksoftware.grants.services.images.image.ImageService;
@@ -46,6 +47,9 @@ public class ImageFormControllerSaveOrUpdateTest {
     @Mock
     private ImageCommandValidator imageCommandValidatorMock;
 
+    @Mock
+    ConvertToBase64 convertToBase64Mock;
+
     @SuppressWarnings({"FieldCanBeLocal", "unused"})
     private ImageCommand imageCommand;
 
@@ -55,7 +59,8 @@ public class ImageFormControllerSaveOrUpdateTest {
         imageController = new ImageFormControllerImpl(imageServiceMock,
                 imageCommandConverterMock,
                 imageConverterMock,
-                imageCommandValidatorMock);
+                imageCommandValidatorMock,
+                convertToBase64Mock);
         imageCommand = new ImageCommandImpl();
     }
 

+ 6 - 1
src/test/java/scot/carricksoftware/grants/controllers/images/images/ImageFormControllerTest.java

@@ -14,6 +14,7 @@ import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.ui.Model;
 import scot.carricksoftware.grants.constants.ImageAttributeConstants;
+import scot.carricksoftware.grants.converters.images.ConvertToBase64;
 import scot.carricksoftware.grants.converters.images.image.ImageCommandConverterImpl;
 import scot.carricksoftware.grants.converters.images.image.ImageConverterImpl;
 import scot.carricksoftware.grants.domains.images.Image;
@@ -45,6 +46,9 @@ public class ImageFormControllerTest {
     @Mock
     private Model modelMock;
 
+    @Mock
+    private ConvertToBase64 convertToBase64Mock;
+
     @Mock
     private ImageCommandValidator imageCommandValidatorMock;
 
@@ -54,7 +58,8 @@ public class ImageFormControllerTest {
         imageController = new ImageFormControllerImpl(imageServiceMock,
                 imageCommandConverterMock,
                 imageConverterMock,
-                imageCommandValidatorMock);
+                imageCommandValidatorMock,
+                convertToBase64Mock);
     }
 
     @Test

+ 6 - 1
src/test/java/scot/carricksoftware/grants/controllers/images/images/ImageFormControllerValidationTest.java

@@ -12,6 +12,7 @@ import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.ui.Model;
+import scot.carricksoftware.grants.converters.images.ConvertToBase64;
 import scot.carricksoftware.grants.converters.images.image.ImageCommandConverterImpl;
 import scot.carricksoftware.grants.converters.images.image.ImageConverterImpl;
 import scot.carricksoftware.grants.services.images.image.ImageService;
@@ -42,12 +43,16 @@ public class ImageFormControllerValidationTest {
     @Mock
     Model modelMock;
 
+    @Mock
+    ConvertToBase64 convertToBase64Mock;
+
     @BeforeEach
     public void setUp() {
         imageController = new ImageFormControllerImpl(imageServiceMock,
                 imageCommandConverterMock,
                 imageConverterMock,
-                imageCommandValidatorMock);
+                imageCommandValidatorMock,
+                convertToBase64Mock);
     }
 
     @Test