Skip to content

Commit 9826e41

Browse files
authored
Merge pull request #5644 from effective-webwork/sorted-import-configurations
Return import configurations sorted by title
2 parents bbae957 + 478c7ad commit 9826e41

File tree

2 files changed

+71
-1
lines changed

2 files changed

+71
-1
lines changed

Kitodo/src/main/java/org/kitodo/production/services/data/ImportConfigurationService.java

+11-1
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,18 @@ public List<ImportConfiguration> getAllFileUploadConfigurations() throws DAOExce
139139
return getAllImportConfigurations(ImportConfigurationType.FILE_UPLOAD);
140140
}
141141

142+
/**
143+
* Load and return all ImportConfigurations sorted by title.
144+
* @return list of all ImportConfigurations sorted by title
145+
* @throws DAOException when ImportConfigurations could not be loaded
146+
*/
147+
public List<ImportConfiguration> getAll() throws DAOException {
148+
return super.getAll().stream().sorted(Comparator.comparing(ImportConfiguration::getTitle))
149+
.collect(Collectors.toList());
150+
}
151+
142152
private List<ImportConfiguration> getAllImportConfigurations(ImportConfigurationType type) throws DAOException {
143-
return getAll().stream()
153+
return super.getAll().stream()
144154
.filter(importConfiguration -> type.name()
145155
.equals(importConfiguration.getConfigurationType()))
146156
.sorted(Comparator.comparing(ImportConfiguration::getTitle))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
* (c) Kitodo. Key to digital objects e. V. <[email protected]>
3+
*
4+
* This file is part of the Kitodo project.
5+
*
6+
* It is licensed under GNU General Public License version 3 or later.
7+
*
8+
* For the full copyright and license information, please read the
9+
* GPL3-License.txt file that was distributed with this source code.
10+
*/
11+
12+
package org.kitodo.production.services.data;
13+
14+
import static org.junit.Assert.assertEquals;
15+
16+
import java.util.List;
17+
18+
import org.junit.AfterClass;
19+
import org.junit.BeforeClass;
20+
import org.junit.Test;
21+
import org.kitodo.MockDatabase;
22+
import org.kitodo.data.database.beans.ImportConfiguration;
23+
import org.kitodo.data.database.exceptions.DAOException;
24+
import org.kitodo.production.services.ServiceManager;
25+
26+
public class ImportConfigurationIT {
27+
28+
/**
29+
* Insert test mapping files and import configurations into database.
30+
*/
31+
@BeforeClass
32+
public static void prepareDatabase() throws Exception {
33+
MockDatabase.startNode();
34+
MockDatabase.insertMappingFiles();
35+
MockDatabase.insertImportConfigurations();
36+
MockDatabase.setUpAwaitility();
37+
}
38+
39+
/**
40+
* Verifies that ImportConfigurations are returned in alphabetical order by ImportConfigurationService.
41+
* @throws DAOException when loading of ImportConfigurations fails
42+
*/
43+
@Test
44+
public void shouldGetAllImportConfigurationsSortedAlphabetically() throws DAOException {
45+
List<ImportConfiguration> configs = ServiceManager.getImportConfigurationService().getAll();
46+
assertEquals("Wrong number of import configurations", Long.valueOf(3), Long.valueOf(configs.size()));
47+
assertEquals("Wrong first import configuration", "GBV", configs.get(0).getTitle());
48+
assertEquals("Wrong last import configuration", "Kalliope", configs.get(2).getTitle());
49+
}
50+
51+
/**
52+
* Clean up test database.
53+
*/
54+
@AfterClass
55+
public static void cleanDatabase() throws Exception {
56+
MockDatabase.stopNode();
57+
MockDatabase.cleanDatabase();
58+
}
59+
60+
}

0 commit comments

Comments
 (0)