Переглянути джерело

Fix sort order of people
Closes #10

Andrew Grant 3 місяців тому
батько
коміт
29cf5e0aa3

+ 2 - 1
src/main/java/scot/carricksoftware/grantswriter/repositories/people/ReadOnlyRepository.java

@@ -5,6 +5,7 @@
 
 package scot.carricksoftware.grantswriter.repositories.people;
 
+import org.springframework.data.domain.Sort;
 import org.springframework.data.repository.NoRepositoryBean;
 import org.springframework.data.repository.Repository;
 
@@ -13,5 +14,5 @@ import java.util.List;
 @NoRepositoryBean
 public interface ReadOnlyRepository<T, ID> extends Repository<T, ID> {
 
-    List<T> findAll();
+    List<T> findAll(Sort sort);
 }

+ 8 - 1
src/main/java/scot/carricksoftware/grantswriter/services/people/PersonServiceImpl.java

@@ -7,6 +7,7 @@ package scot.carricksoftware.grantswriter.services.people;
 
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
+import org.springframework.data.domain.Sort;
 import org.springframework.stereotype.Service;
 import scot.carricksoftware.grantswriter.domains.people.Person;
 import scot.carricksoftware.grantswriter.repositories.people.PersonRepository;
@@ -29,9 +30,15 @@ public class PersonServiceImpl implements PersonService {
     public List<Person> findAll() {
         logger.debug("PersonServiceImpl::findAll");
         List<Person> result = new ArrayList<>();
-        Iterable<Person> personIterable = personRepository.findAll();
+        Iterable<Person> personIterable = personRepository.findAll(getSort());
         personIterable.forEach(result::add);
         return result;
     }
 
+    private Sort getSort() {
+        return Sort.by(
+                Sort.Order.asc("lastName"),
+                Sort.Order.asc("firstName"));
+    }
+
 }

+ 8 - 5
src/test/java/scot/carricksoftware/grantswriter/services/people/PersonServiceTest.java

@@ -9,6 +9,7 @@ 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.springframework.data.domain.Sort;
 import org.springframework.test.context.junit.jupiter.SpringExtension;
 import scot.carricksoftware.grantswriter.domains.people.Person;
 import scot.carricksoftware.grantswriter.repositories.people.PersonRepository;
@@ -33,17 +34,19 @@ class PersonServiceTest {
         service = new PersonServiceImpl(personRepositoryMock);
     }
 
-    @Test
-    void constructorTest() {
-        assertNotNull(service);
-    }
 
     @Test
     public void testFindAll() {
         List<Person> people = new ArrayList<>();
         people.add(GetRandomPerson());
-        when(personRepositoryMock.findAll()).thenReturn(people);
+        when(personRepositoryMock.findAll(getSort())).thenReturn(people);
         assertEquals(people, service.findAll());
     }
 
+    private Sort getSort() {
+        return Sort.by(
+                Sort.Order.asc("lastName"),
+                Sort.Order.asc("firstName"));
+    }
+
 }