Procházet zdrojové kódy

AppendixImage Controllers test

Andrew Grant před 1 měsícem
rodič
revize
0f47139771

+ 89 - 0
src/test/java/scot/carricksoftware/grants/controllers/images/appendiximages/AppendixImageFormControllerSaveOrUpdateTest.java

@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) Andrew Grant of Carrick Software 29/03/2025, 13:55. All rights reserved.
+ *
+ */
+
+package scot.carricksoftware.grants.controllers.images.appendiximages;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+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.appendiximage.CapitaliseAppendixImageCommand;
+import scot.carricksoftware.grants.commands.images.AppendixImageCommand;
+import scot.carricksoftware.grants.commands.images.AppendixImageCommandImpl;
+import scot.carricksoftware.grants.controllers.images.appendixImages.AppendixImageFormControllerImpl;
+import scot.carricksoftware.grants.converters.images.appendiximage.AppendixImageCommandConverterImpl;
+import scot.carricksoftware.grants.converters.images.appendiximage.AppendixImageConverterImpl;
+import scot.carricksoftware.grants.services.images.appendiximage.AppendixImageService;
+import scot.carricksoftware.grants.services.images.image.ImageService;
+import scot.carricksoftware.grants.validators.images.AppendixImageCommandValidatorImpl;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
+
+
+@ExtendWith(MockitoExtension.class)
+public class AppendixImageFormControllerSaveOrUpdateTest {
+    
+    private AppendixImageFormControllerImpl appendixImageController;
+
+    @Mock
+    private AppendixImageService appendixImageServiceMock;
+
+    @Mock
+    private AppendixImageCommandConverterImpl appendixImageCommandConverterMock;
+
+    @Mock
+    private AppendixImageConverterImpl appendixImageConverterMock;
+
+    @Mock
+    private ImageService imageServiceMock;
+
+    @Mock
+    private CapitaliseAppendixImageCommand capitaliseAppendixImageCommandMock;
+
+    @Mock
+    Model modelMock;
+
+    @Mock
+    BindingResult bindingResultMock;
+
+    @Mock
+    private AppendixImageCommandValidatorImpl appendixImageCommandValidatorImplMock;
+
+    private AppendixImageCommand appendixImageCommand;
+
+
+    @BeforeEach
+    public void setUp() {
+        appendixImageController = new AppendixImageFormControllerImpl(appendixImageServiceMock,
+                appendixImageCommandConverterMock,
+                appendixImageConverterMock,
+                appendixImageCommandValidatorImplMock,
+                imageServiceMock,
+                capitaliseAppendixImageCommandMock);
+        appendixImageCommand = new AppendixImageCommandImpl();
+    }
+
+    @Test
+    public void saveOrUpdateNoErrorsTest() {
+        Long id = 4L;
+        appendixImageCommand.setId(id);
+        when(appendixImageServiceMock.saveAppendixImageCommand(any(AppendixImageCommand.class))).thenReturn(appendixImageCommand);
+        assertEquals("redirect:/appendixImage/4/show", appendixImageController.saveOrUpdate(appendixImageCommand, bindingResultMock, modelMock));
+    }
+
+    @Test
+    public void saveOrUpdateErrorsTest() {
+        Long id = 4L;
+        appendixImageCommand.setId(id);
+        when(bindingResultMock.hasErrors()).thenReturn(true);
+        assertEquals("images/appendixImage/form", appendixImageController.saveOrUpdate(appendixImageCommand, bindingResultMock, modelMock));
+    }
+
+}

+ 114 - 0
src/test/java/scot/carricksoftware/grants/controllers/images/appendiximages/AppendixImageFormControllerTest.java

@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) Andrew Grant of Carrick Software 29/03/2025, 13:55. All rights reserved.
+ *
+ */
+
+package scot.carricksoftware.grants.controllers.images.appendiximages;
+
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+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.appendiximage.CapitaliseAppendixImageCommand;
+import scot.carricksoftware.grants.commands.images.AppendixImageCommand;
+import scot.carricksoftware.grants.commands.images.AppendixImageCommandImpl;
+import scot.carricksoftware.grants.constants.ImageAttributeConstants;
+import scot.carricksoftware.grants.controllers.images.appendixImages.AppendixImageFormControllerImpl;
+import scot.carricksoftware.grants.converters.images.appendiximage.AppendixImageCommandConverterImpl;
+import scot.carricksoftware.grants.converters.images.appendiximage.AppendixImageConverterImpl;
+import scot.carricksoftware.grants.domains.images.AppendixImage;
+import scot.carricksoftware.grants.services.images.appendiximage.AppendixImageService;
+import scot.carricksoftware.grants.services.images.image.ImageService;
+import scot.carricksoftware.grants.validators.images.AppendixImageCommandValidatorImpl;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.atLeast;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static scot.carricksoftware.grants.GenerateRandomNumberValues.GetRandomLong;
+
+
+@ExtendWith(MockitoExtension.class)
+public class AppendixImageFormControllerTest {
+    
+    private AppendixImageFormControllerImpl appendixImageController;
+
+    @Mock
+    private AppendixImageService appendixImageServiceMock;
+
+    @Mock
+    private AppendixImageCommandConverterImpl appendixImageCommandConverterMock;
+
+    @Mock
+    private AppendixImageConverterImpl appendixImageConverterMock;
+
+    @Mock
+    private Model modelMock;
+
+    @Mock
+    private AppendixImageCommandValidatorImpl appendixImageCommandValidatorImplMock;
+
+    @Mock
+    private ImageService imageServiceMock;
+
+    @Mock
+    private CapitaliseAppendixImageCommand capitaliseAppendixImageCommandMock;
+
+
+    @BeforeEach
+    public void setUp() {
+        appendixImageController = new AppendixImageFormControllerImpl(appendixImageServiceMock,
+                appendixImageCommandConverterMock,
+                appendixImageConverterMock,
+                appendixImageCommandValidatorImplMock,
+                imageServiceMock,
+                capitaliseAppendixImageCommandMock);
+    }
+
+    @Test
+    public void getNewAppendixImageTest() {
+        ArgumentCaptor<Object> objectCaptor = ArgumentCaptor.forClass(Object.class);
+        ArgumentCaptor<String> stringCaptor = ArgumentCaptor.forClass(String.class);
+        assertEquals("images/appendixImage/form", appendixImageController.getNewAppendixImage(modelMock));
+        verify(modelMock, atLeast(2)).addAttribute(stringCaptor.capture(), objectCaptor.capture());
+
+        boolean foundAppendixImageCommand = false;
+
+        for (int i = 0; i < stringCaptor.getAllValues().size(); i++) {
+            if (stringCaptor.getAllValues().get(i).equals("appendixImageCommand")) {
+                if (objectCaptor.getAllValues().get(i).getClass().getSimpleName().equals("AppendixImageCommandImpl")) {
+                    foundAppendixImageCommand = true;
+                }
+            }
+        }
+        assertTrue(foundAppendixImageCommand);
+    }
+
+    @Test
+    public void appendixImageEditTestEditTest() {
+        Long id = GetRandomLong();
+        AppendixImage appendixImage = new AppendixImage();
+        when(appendixImageServiceMock.findById(id)).thenReturn(appendixImage);
+
+        assertEquals("images/appendixImage/form", appendixImageController.appendixImageEdit(id + "", modelMock));
+        verify(modelMock).addAttribute(ImageAttributeConstants.APPENDIX_IMAGE_COMMAND, appendixImage);
+    }
+
+    @Test
+    public void showByIdTest() {
+        Long id = GetRandomLong();
+        AppendixImage appendixImage = new AppendixImage();
+        AppendixImageCommand appendixImageCommand = new AppendixImageCommandImpl();
+
+        when(appendixImageServiceMock.findById(id)).thenReturn(appendixImage);
+        when(appendixImageConverterMock.convert(appendixImage)).thenReturn(appendixImageCommand);
+        assertEquals("images/appendixImage/form", appendixImageController.showById(id + "", modelMock));
+        verify(modelMock).addAttribute(ImageAttributeConstants.APPENDIX_IMAGE_COMMAND, appendixImageCommand);
+    }
+
+}

+ 87 - 0
src/test/java/scot/carricksoftware/grants/controllers/images/appendiximages/AppendixImageFormControllerValidationTest.java

@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) Andrew Grant of Carrick Software 29/03/2025, 13:55. All rights reserved.
+ *
+ */
+
+package scot.carricksoftware.grants.controllers.images.appendiximages;
+
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+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.appendiximage.CapitaliseAppendixImageCommand;
+import scot.carricksoftware.grants.commands.images.AppendixImageCommand;
+import scot.carricksoftware.grants.controllers.images.appendixImages.AppendixImageFormControllerImpl;
+import scot.carricksoftware.grants.converters.images.appendiximage.AppendixImageCommandConverterImpl;
+import scot.carricksoftware.grants.converters.images.appendiximage.AppendixImageConverterImpl;
+import scot.carricksoftware.grants.services.images.appendiximage.AppendixImageService;
+import scot.carricksoftware.grants.services.images.image.ImageService;
+import scot.carricksoftware.grants.validators.images.AppendixImageCommandValidatorImpl;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+
+@ExtendWith(MockitoExtension.class)
+public class AppendixImageFormControllerValidationTest {
+    
+    private AppendixImageFormControllerImpl appendixImageController;
+
+    @Mock
+    private AppendixImageService appendixImageServiceMock;
+
+    @Mock
+    private AppendixImageCommandConverterImpl appendixImageCommandConverterMock;
+
+    @Mock
+    private AppendixImageConverterImpl appendixImageConverterMock;
+
+    @Mock
+    private AppendixImageCommand appendixImageCommandMock;
+
+    @Mock
+    private BindingResult bindingResultMock;
+
+    @Mock
+    private ImageService imageServiceMocK;
+
+    @Mock
+    private AppendixImageCommandValidatorImpl appendixImageCommandValidatorImplMock;
+
+    @Mock
+    private CapitaliseAppendixImageCommand capitaliseAppendixImageCommandMock;
+
+    @Mock
+    Model modelMock;
+
+    @BeforeEach
+    public void setUp() {
+        appendixImageController = new AppendixImageFormControllerImpl(appendixImageServiceMock,
+                appendixImageCommandConverterMock,
+                appendixImageConverterMock,
+                appendixImageCommandValidatorImplMock,
+                imageServiceMocK,
+                capitaliseAppendixImageCommandMock);
+    }
+
+
+    @Test
+    public void saveOrUpdateValidationTest() {
+        when(appendixImageServiceMock.saveAppendixImageCommand(any())).thenReturn(appendixImageCommandMock);
+        appendixImageController.saveOrUpdate(appendixImageCommandMock, bindingResultMock, modelMock);
+        verify(appendixImageCommandValidatorImplMock).validate(appendixImageCommandMock, bindingResultMock);
+    }
+
+    @Test
+    public void saveOrUpdateCapitalisationTest() {
+        when(appendixImageServiceMock.saveAppendixImageCommand(any())).thenReturn(appendixImageCommandMock);
+        appendixImageController.saveOrUpdate(appendixImageCommandMock, bindingResultMock, modelMock);
+        verify(capitaliseAppendixImageCommandMock).capitalise(appendixImageCommandMock);
+    }
+
+}

+ 125 - 0
src/test/java/scot/carricksoftware/grants/controllers/images/appendiximages/AppendixImageTextListControllerTest.java

@@ -0,0 +1,125 @@
+/*
+ * Copyright (c) Andrew Grant of Carrick Software 29/03/2025, 13:55. All rights reserved.
+ *
+ */
+
+package scot.carricksoftware.grants.controllers.images.appendiximages;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+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.constants.ApplicationConstants;
+import scot.carricksoftware.grants.controllers.ControllerHelper;
+import scot.carricksoftware.grants.controllers.images.appendixImages.AppendixImageListControllerImpl;
+import scot.carricksoftware.grants.domains.images.AppendixImage;
+import scot.carricksoftware.grants.services.images.appendiximage.AppendixImageService;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static scot.carricksoftware.grants.GenerateRandomNumberValues.GetRandomLong;
+
+
+@ExtendWith(MockitoExtension.class)
+public class AppendixImageTextListControllerTest {
+
+    private AppendixImageListControllerImpl controller;
+
+    @Mock
+    private ControllerHelper controllerHelperMock;
+
+    @Mock
+    private AppendixImageService appendixImageServiceMock;
+
+    @Mock
+    private Model modelMock;
+
+    @Mock
+    List<AppendixImage> appendixImageListMock;
+
+    @BeforeEach
+    public void setUp() {
+        controller = new AppendixImageListControllerImpl(controllerHelperMock, appendixImageServiceMock);
+    }
+
+    @Test
+    public void getListPageTest() {
+        when(appendixImageServiceMock.getPagedAppendixImages(0)).thenReturn(appendixImageListMock);
+        assertEquals("images/appendixImage/list", controller.getListPage(modelMock));
+        verify(modelMock).addAttribute("appendixImages", appendixImageListMock);
+        verify(controllerHelperMock).addAttributes(modelMock);
+    }
+
+    @Test
+    public void getLastPageTest() {
+        int page = 25;
+        int count = page * ApplicationConstants.DEFAULT_PAGE_SIZE;
+        when(appendixImageServiceMock.count()).thenReturn((long) count);
+        controller.getLastPage(modelMock);
+        controller.getPreviousPage(modelMock);
+        assertEquals("images/appendixImage/list", controller.getLastPage(modelMock));
+        verify(appendixImageServiceMock, times(2)).getPagedAppendixImages(page);
+    }
+
+    @Test
+    public void placeDeleteTest() {
+        Long id = GetRandomLong();
+        assertEquals("redirect:/appendixImages", controller.appendixImageDelete(Long.toString(id)));
+        verify(appendixImageServiceMock).deleteById(id);
+    }
+
+    @Test
+    public void getFirstPlaceTest() {
+        List<AppendixImage> appendixImageList = new ArrayList<>();
+        appendixImageList.add(new AppendixImage());
+        when(appendixImageServiceMock.getPagedAppendixImages(0)).thenReturn(appendixImageList);
+
+        assertEquals("images/appendixImage/list", controller.getFirstPage(modelMock));
+        assertEquals(0, controller.getPageNumber());
+        verify(modelMock).addAttribute("appendixImages", appendixImageList);
+    }
+
+    @Test
+    public void getNextPlaceTest() {
+        List<AppendixImage> appendixImageList = new ArrayList<>();
+        appendixImageList.add(new AppendixImage());
+        when(appendixImageServiceMock.getPagedAppendixImages(0)).thenReturn(appendixImageList);
+
+        controller.getFirstPage(modelMock);
+        assertEquals("images/appendixImage/list", controller.getNextPage(modelMock));
+        assertEquals(1, controller.getPageNumber());
+        verify(modelMock).addAttribute("appendixImages", appendixImageList);
+
+    }
+
+    @Test
+    public void getPreviousFromFirstTest() {
+        List<AppendixImage> appendixImageList = new ArrayList<>();
+        appendixImageList.add(new AppendixImage());
+        when(appendixImageServiceMock.getPagedAppendixImages(0)).thenReturn(appendixImageList);
+
+        controller.getFirstPage(modelMock);
+        assertEquals("images/appendixImage/list", controller.getPreviousPage(modelMock));
+        assertEquals(0, controller.getPageNumber());
+        verify(modelMock, times(2)).addAttribute("appendixImages", appendixImageList);
+    }
+
+    @Test
+    public void getPreviousFromLastTest() {
+        int page = 25;
+        int count = page * ApplicationConstants.DEFAULT_PAGE_SIZE;
+        when(appendixImageServiceMock.count()).thenReturn((long) count);
+        controller.getLastPage(modelMock);
+        assertEquals("images/appendixImage/list", controller.getPreviousPage(modelMock));
+        assertEquals(24, controller.getPageNumber());
+    }
+
+
+}

+ 1 - 1
src/test/java/scot/carricksoftware/grants/controllers/images/personimages/PersonDocumentTextListControllerTest.java → src/test/java/scot/carricksoftware/grants/controllers/images/personimages/PersonImageTextListControllerTest.java

@@ -27,7 +27,7 @@ import static scot.carricksoftware.grants.GenerateRandomNumberValues.GetRandomLo
 
 
 @ExtendWith(MockitoExtension.class)
-public class PersonDocumentTextListControllerTest {
+public class PersonImageTextListControllerTest {
 
     private PersonImageListControllerImpl controller;