Browse Source

Images Attribute added to peron form controller functions test

Andrew Grant 2 months ago
parent
commit
ab834b7497

+ 0 - 1
src/main/java/scot/carricksoftware/grants/domains/people/Person.java

@@ -27,7 +27,6 @@ import java.util.List;
 @Entity
 public class Person extends BaseEntity {
 
-    @SuppressWarnings("JpaDataSourceORMInspection")
     @ManyToOne
     @JoinColumn(name = "`image_id`")
     private Image image;

+ 4 - 9
src/test/java/scot/carricksoftware/grants/bootstrap/DataLoadPlacesTest.java

@@ -26,17 +26,12 @@ public class DataLoadPlacesTest {
     private DataLoadPlaces dataLoadPlaces;
 
 
-    @Mock
-    private CountryServiceImpl countryServiceMock;
+    @Mock private CountryServiceImpl countryServiceMock;
+    @Mock private RegionServiceImpl regionServiceMock;
+    @Mock private PlaceServiceImpl placeServiceMock;
+    @Mock private OrganisationServiceImpl organisationServiceMock;
 
-    @Mock
-    private RegionServiceImpl regionServiceMock;
 
-    @Mock
-    private PlaceServiceImpl placeServiceMock;
-
-    @Mock
-    private OrganisationServiceImpl organisationServiceMock;
 
     @BeforeEach
     public void setUp() {

+ 28 - 20
src/test/java/scot/carricksoftware/grants/controllers/people/PersonFormControllerTest.java

@@ -9,6 +9,8 @@ package scot.carricksoftware.grants.controllers.people;
 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.Captor;
 import org.mockito.Mock;
 import org.mockito.junit.jupiter.MockitoExtension;
 import org.springframework.ui.Model;
@@ -23,7 +25,10 @@ import scot.carricksoftware.grants.services.images.image.ImageService;
 import scot.carricksoftware.grants.services.people.PersonService;
 import scot.carricksoftware.grants.validators.people.PersonCommandValidator;
 
+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;
@@ -31,7 +36,6 @@ import static scot.carricksoftware.grants.GenerateRandomPeopleValues.GetRandomPe
 import static scot.carricksoftware.grants.GenerateRandomPeopleValues.GetRandomPersonCommand;
 
 
-@SuppressWarnings("CommentedOutCode")
 @ExtendWith(MockitoExtension.class)
 public class PersonFormControllerTest {
 
@@ -40,32 +44,30 @@ public class PersonFormControllerTest {
 
     @Mock
     private PersonService personServiceMock;
-
     @Mock
     private PersonCommandConverterImpl personCommandConverterMock;
-
     @Mock
     private PersonConverterImpl personConverterMock;
-
     @Mock
     private CapitalisePerson capitalisePersonMock;
-
     @Mock
     private BMDCache bmdCacheMock;
-
     @Mock
     private Model modelMock;
-
     @Mock
     private ImageService imageServiceMock;
-
     @Mock
-    PersonCommandValidator personCommandValidatorMock;
+    private PersonCommandValidator personCommandValidatorMock;
 
+    @Captor
+    ArgumentCaptor<String> keyCaptor;
+    @Captor
+    ArgumentCaptor<Object> valueCaptor;
 
     @BeforeEach
     public void setUp() {
-        personController = new PersonFormControllerImpl(personServiceMock,
+        personController = new PersonFormControllerImpl(
+                personServiceMock,
                 personCommandConverterMock,
                 personConverterMock,
                 capitalisePersonMock,
@@ -74,18 +76,24 @@ public class PersonFormControllerTest {
                 imageServiceMock);
     }
 
-//    @Test
-//    public void getNewPersonTest() {
-//        ArgumentCaptor<Object> objectCaptor = ArgumentCaptor.forClass(Object.class);
-//        ArgumentCaptor<String> stringCaptor = ArgumentCaptor.forClass(String.class);
-//        assertEquals("person/form", personController.getNewPerson(modelMock));
-//        verify(modelMock).addAttribute(stringCaptor.capture(), objectCaptor.capture());
-//        assertEquals("personCommand", stringCaptor.getValue());
-//        assertEquals("PersonCommandImpl", objectCaptor.getValue().getClass().getSimpleName());
-//    }
+    @Test
+    public void getNewPersonTest() {
+        personController.getNewPerson(modelMock);
+        verify(modelMock, times(2)).addAttribute(keyCaptor.capture(), valueCaptor.capture());
+        List<String> keys = keyCaptor.getAllValues();
+        List<Object> values = valueCaptor.getAllValues();
+        for (int i = 0; i < values.size(); i++) {
+            if (values.get(i).getClass().getSimpleName().equals("LinkedList")) {
+                assertEquals("images", keys.get(i));
+            }
+            if (values.get(i).getClass().getSimpleName().equals("PersonCommandImpl")) {
+                assertEquals("personCommand", keys.get(i));
+            }
+        }
+    }
 
     @Test
-    public void personEditTestEditTest() {
+    public void personEditTest() {
         Long id = GetRandomLong();
         Person person = GetRandomPerson();
         when(personServiceMock.findById(id)).thenReturn(person);