Browse Source

PersonImageCapitalisation

Andrew Grant 1 month ago
parent
commit
f92b97b09b

+ 14 - 0
src/main/java/scot/carricksoftware/grants/capitalisation/images/personimages/CapitalisePersonImage.java

@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grants.capitalisation.images.personimages;
+
+import scot.carricksoftware.grants.commands.images.PersonImageCommand;
+
+public interface CapitalisePersonImage {
+
+    @SuppressWarnings({"unused", "EmptyMethod"})
+    void capitalise(PersonImageCommand command);
+}

+ 31 - 0
src/main/java/scot/carricksoftware/grants/capitalisation/images/personimages/CapitalisePersonImageImpl.java

@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2025.  Andrew Grant Carrick Software. All rights reserved
+ *
+ */
+
+package scot.carricksoftware.grants.capitalisation.images.personimages;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.springframework.stereotype.Component;
+import scot.carricksoftware.grants.capitalisation.CapitaliseString;
+import scot.carricksoftware.grants.commands.images.PersonImageCommand;
+
+@Component
+public class CapitalisePersonImageImpl implements CapitalisePersonImage {
+
+    private static final Logger logger = LogManager.getLogger(CapitalisePersonImageImpl.class);
+
+    private final CapitaliseString capitaliseString;
+
+    public CapitalisePersonImageImpl(CapitaliseString capitaliseString) {
+        this.capitaliseString = capitaliseString;
+    }
+
+    @Override
+    public void capitalise(PersonImageCommand personImageCommand) {
+        logger.debug("CapitalisePersonImage::capitalise");
+        personImageCommand.setCaption(capitaliseString.capitalise(personImageCommand.getCaption()));
+    }
+
+}

+ 9 - 1
src/main/java/scot/carricksoftware/grants/controllers/images/personImages/PersonImageFormControllerImpl.java

@@ -15,6 +15,7 @@ import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
+import scot.carricksoftware.grants.capitalisation.images.personimages.CapitalisePersonImage;
 import scot.carricksoftware.grants.commands.images.PersonImageCommand;
 import scot.carricksoftware.grants.commands.images.PersonImageCommandImpl;
 import scot.carricksoftware.grants.constants.*;
@@ -37,12 +38,17 @@ public class PersonImageFormControllerImpl implements PersonImageFormController
     private final PersonImageCommandValidatorImpl personImageCommandValidatorImpl;
     private final PersonService personService;
     private final ImageService imageService;
+    private final CapitalisePersonImage capitalisePersonImage;
 
 
     public PersonImageFormControllerImpl(PersonImageService personImageService,
                                          PersonImageCommandConverterImpl personImageCommandConverter,
                                          PersonImageConverterImpl personImageConverter,
-                                         PersonImageCommandValidatorImpl personImageCommandValidatorImpl, PersonService personService, ImageService imageService) {
+                                         PersonImageCommandValidatorImpl personImageCommandValidatorImpl,
+                                         PersonService personService,
+                                         ImageService imageService,
+                                         CapitalisePersonImage capitalisePersonImage) {
+
         this.personImageService = personImageService;
         this.personImageCommandConverter = personImageCommandConverter;
 
@@ -51,6 +57,7 @@ public class PersonImageFormControllerImpl implements PersonImageFormController
         this.personImageCommandValidatorImpl = personImageCommandValidatorImpl;
         this.personService = personService;
         this.imageService = imageService;
+        this.capitalisePersonImage = capitalisePersonImage;
     }
 
     @SuppressWarnings("SameReturnValue")
@@ -79,6 +86,7 @@ public class PersonImageFormControllerImpl implements PersonImageFormController
     public String saveOrUpdate(@Valid @ModelAttribute PersonImageCommand personImageCommand, BindingResult bindingResult, Model model) {
         logger.debug("PersonImageFormControllerImpl::saveOrUpdate");
 
+        capitalisePersonImage.capitalise(personImageCommand);
         personImageCommandValidatorImpl.validate(personImageCommand, bindingResult);
 
         if (bindingResult.hasErrors()) {

+ 5 - 5
src/main/resources/templates/text/personText/form.html

@@ -85,14 +85,14 @@
             </tr>
             <tr>
                 <td style="text-align: right;">
-                    <label for="heading">Heading :&nbsp;</label>
+                    <label for="caption">Heading :&nbsp;</label>
                 </td>
                 <td style="text-align: left;">
-                    <input class="form-control" id="heading"
-                           th:field="*{heading}" type="text">
-                    <div th:if="${#fields.hasErrors('heading')}">
+                    <input class="form-control" id="caption"
+                           th:field="*{caption}" type="text">
+                    <div th:if="${#fields.hasErrors('caption')}">
                         <ul class="text-danger">
-                            <li th:each="err : ${#fields.errors('heading')}" th:text="${err}"/>
+                            <li th:each="err : ${#fields.errors('caption')}" th:text="${err}"/>
                         </ul>
                     </div>
                 </td>

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

@@ -12,6 +12,7 @@ import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
+import scot.carricksoftware.grants.capitalisation.images.personimages.CapitalisePersonImage;
 import scot.carricksoftware.grants.commands.images.PersonImageCommand;
 import scot.carricksoftware.grants.commands.images.PersonImageCommandImpl;
 import scot.carricksoftware.grants.controllers.images.personImages.PersonImageFormControllerImpl;
@@ -48,6 +49,9 @@ public class PersonImageFormControllerSaveOrUpdateTest {
     @Mock
     private ImageService imageServiceMock;
 
+    @Mock
+    private CapitalisePersonImage capitalisePersonImageMock;
+
     @Mock
     Model modelMock;
 
@@ -67,7 +71,8 @@ public class PersonImageFormControllerSaveOrUpdateTest {
                 personImageConverterMock,
                 personImageCommandValidatorImplMock,
                 personServiceMock,
-                imageServiceMock);
+                imageServiceMock,
+                capitalisePersonImageMock);
         personImageCommand = new PersonImageCommandImpl();
     }
 

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

@@ -13,6 +13,7 @@ import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.ui.Model;
+import scot.carricksoftware.grants.capitalisation.images.personimages.CapitalisePersonImage;
 import scot.carricksoftware.grants.commands.images.PersonImageCommand;
 import scot.carricksoftware.grants.constants.ImageAttributeConstants;
 import scot.carricksoftware.grants.controllers.images.personImages.PersonImageFormControllerImpl;
@@ -58,6 +59,9 @@ public class PersonImageFormControllerTest {
     @Mock
     private ImageService imageServiceMock;
 
+    @Mock
+    private CapitalisePersonImage capitalisePersonImageMock;
+
 
     @BeforeEach
     public void setUp() {
@@ -66,7 +70,8 @@ public class PersonImageFormControllerTest {
                 personImageConverterMock,
                 personImageCommandValidatorImplMock,
                 personServiceMock,
-                imageServiceMock);
+                imageServiceMock,
+                capitalisePersonImageMock);
     }
 
     @Test

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

@@ -13,6 +13,7 @@ import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.ui.Model;
 import org.springframework.validation.BindingResult;
+import scot.carricksoftware.grants.capitalisation.images.personimages.CapitalisePersonImage;
 import scot.carricksoftware.grants.commands.images.PersonImageCommand;
 import scot.carricksoftware.grants.controllers.images.personImages.PersonImageFormControllerImpl;
 import scot.carricksoftware.grants.converters.images.personimage.PersonImageCommandConverterImpl;
@@ -58,6 +59,9 @@ public class PersonImageFormControllerValidationTest {
     @Mock
     private PersonImageCommandValidatorImpl personImageCommandValidatorImplMock;
 
+    @Mock
+    private CapitalisePersonImage capitalisePersonImageMock;
+
     @Mock
     Model modelMock;
 
@@ -69,7 +73,8 @@ public class PersonImageFormControllerValidationTest {
                 personImageConverterMock,
                 personImageCommandValidatorImplMock,
                 personServiceMocK,
-                imageServiceMocK);
+                imageServiceMocK,
+                capitalisePersonImageMock);
     }