[CST-5699] minor fix on zip export from CLI; add missing ITs to check if the exported zip exists

This commit is contained in:
Francesco Pio Scognamiglio
2022-09-27 13:17:49 +02:00
parent 81fc5d9910
commit 430a0f0eb3
2 changed files with 21 additions and 2 deletions

View File

@@ -43,6 +43,8 @@ public class ItemExportCLI extends ItemExport {
@Override @Override
protected void process(Context context, ItemExportService itemExportService) throws Exception { protected void process(Context context, ItemExportService itemExportService) throws Exception {
setZip(context);
if (zip) { if (zip) {
Iterator<Item> items; Iterator<Item> items;
if (item != null) { if (item != null) {

View File

@@ -7,6 +7,7 @@
*/ */
package org.dspace.app.itemexport; package org.dspace.app.itemexport;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
@@ -19,6 +20,7 @@ import java.util.stream.Collectors;
import org.apache.commons.codec.CharEncoding; import org.apache.commons.codec.CharEncoding;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.io.file.PathUtils; import org.apache.commons.io.file.PathUtils;
import org.apache.commons.lang3.StringUtils;
import org.dspace.AbstractIntegrationTestWithDatabase; import org.dspace.AbstractIntegrationTestWithDatabase;
import org.dspace.builder.BitstreamBuilder; import org.dspace.builder.BitstreamBuilder;
import org.dspace.builder.CollectionBuilder; import org.dspace.builder.CollectionBuilder;
@@ -44,6 +46,7 @@ import org.junit.Test;
*/ */
public class ItemExportCLIIT extends AbstractIntegrationTestWithDatabase { public class ItemExportCLIIT extends AbstractIntegrationTestWithDatabase {
private static final String zipFileName = "saf-export.zip";
private static final String title = "A Tale of Two Cities"; private static final String title = "A Tale of Two Cities";
private static final String dateIssued = "1990"; private static final String dateIssued = "1990";
private static final String titleAlternative = "J'aime les Printemps"; private static final String titleAlternative = "J'aime les Printemps";
@@ -127,10 +130,11 @@ public class ItemExportCLIIT extends AbstractIntegrationTestWithDatabase {
context.restoreAuthSystemState(); context.restoreAuthSystemState();
String[] args = new String[] { "export", "-t", "COLLECTION", String[] args = new String[] { "export", "-t", "COLLECTION",
"-i", collection.getHandle(), "-d", tempDir.toString(), "-z", "saf-export.zip", "-n", "1" }; "-i", collection.getHandle(), "-d", tempDir.toString(), "-z", zipFileName, "-n", "1" };
perfomExportScript(args); perfomExportScript(args);
checkDir(); checkDir();
checkZip(zipFileName);
} }
@Test @Test
@@ -216,10 +220,11 @@ public class ItemExportCLIIT extends AbstractIntegrationTestWithDatabase {
context.restoreAuthSystemState(); context.restoreAuthSystemState();
String[] args = new String[] { "export", "-t", "ITEM", String[] args = new String[] { "export", "-t", "ITEM",
"-i", item.getHandle(), "-d", tempDir.toString(), "-z", "saf-export.zip", "-n", "1" }; "-i", item.getHandle(), "-d", tempDir.toString(), "-z", zipFileName, "-n", "1" };
perfomExportScript(args); perfomExportScript(args);
checkDir(); checkDir();
checkZip(zipFileName);
} }
@Test @Test
@@ -322,6 +327,18 @@ public class ItemExportCLIIT extends AbstractIntegrationTestWithDatabase {
assertTrue(Files.list(tempDir).findAny().isPresent()); assertTrue(Files.list(tempDir).findAny().isPresent());
} }
/**
* Check created export zip
* @param zipFileName
* @throws Exception
*/
private void checkZip(String zipFileName) throws Exception {
assertEquals(1,
Files.list(tempDir)
.filter(b -> StringUtils.equals(b.getFileName().toString(), zipFileName))
.count());
}
/** /**
* Check migration of collection * Check migration of collection
* @throws Exception * @throws Exception