11
11
12
12
package org .kitodo .production .helper .tasks ;
13
13
14
- import java .io .File ;
15
- import java .lang .reflect .Field ;
16
- import java .util .Arrays ;
14
+ import java .util .LinkedList ;
17
15
import java .util .List ;
18
- import java .util .Objects ;
19
16
20
- import org .apache .commons .io .FileUtils ;
21
17
import org .junit .AfterClass ;
22
18
import org .junit .Assert ;
23
19
import org .junit .BeforeClass ;
24
20
import org .junit .Test ;
25
21
import org .kitodo .MockDatabase ;
26
- import org .kitodo .config .ConfigCore ;
27
22
import org .kitodo .data .database .beans .Project ;
28
23
import org .kitodo .production .services .ServiceManager ;
29
24
import org .kitodo .production .services .data .ProcessService ;
30
25
import org .kitodo .production .services .dataformat .MetsService ;
26
+ import org .kitodo .utils .ProcessTestUtils ;
31
27
32
28
public class MigrationTaskIT {
33
29
34
30
private static final MetsService metsService = ServiceManager .getMetsService ();
35
31
private static final ProcessService processService = ServiceManager .getProcessService ();
36
32
private static Project project ;
33
+ private static List <Integer > dummyProcessIds = new LinkedList <>();
34
+ private static final String METADATA_MIGRATION_SOURCE_FILE = "testMetadataMigrationSourceFile.xml" ;
35
+ private static final String METADATA_MIGRATION_PROCESS_TITLE = "Migration process" ;
36
+ private static int migrationTestProcessId = -1 ;
37
+ private static final int PROJECT_ID = 1 ;
38
+ private static final int MIGRATION_PROJECT_ID = 3 ;
39
+ private static final int TEMPLATE_ID = 1 ;
40
+ private static final int RULESET_ID = 1 ;
37
41
38
42
@ BeforeClass
39
43
public static void prepareDatabase () throws Exception {
40
44
MockDatabase .startNode ();
41
45
MockDatabase .insertProcessesFull ();
42
-
43
- project = ServiceManager .getProjectService ().getById (1 );
44
- moveMetaFileAway (2 , "meta_MigrationTaskIT.tmp" );
45
- createTestMetafile (2 );
46
+ dummyProcessIds = ProcessTestUtils .insertDummyProcesses (PROJECT_ID );
47
+ project = ServiceManager .getProjectService ().getById (MIGRATION_PROJECT_ID );
48
+ migrationTestProcessId = MockDatabase .insertTestProcess (METADATA_MIGRATION_PROCESS_TITLE , MIGRATION_PROJECT_ID ,
49
+ TEMPLATE_ID , RULESET_ID );
50
+ ProcessTestUtils .copyTestMetadataFile (migrationTestProcessId , METADATA_MIGRATION_SOURCE_FILE );
46
51
}
47
52
48
53
@ AfterClass
49
54
public static void cleanDatabase () throws Exception {
55
+ ProcessTestUtils .cleanupDummyProcesses (dummyProcessIds );
56
+ ProcessTestUtils .removeTestProcess (migrationTestProcessId );
50
57
MockDatabase .stopNode ();
51
58
MockDatabase .cleanDatabase ();
52
- cleanUp ();
53
59
}
54
60
55
61
@ Test
@@ -61,55 +67,6 @@ public void testMigrationTask() throws Exception {
61
67
Assert .assertFalse (migrationTask .isAlive ());
62
68
Assert .assertEquals (100 , migrationTask .getProgress ());
63
69
Assert .assertNotNull ("Process migration failed" ,
64
- metsService .loadWorkpiece (processService .getMetadataFileUri (processService .getById (2 ))));
65
- }
66
-
67
- private static void moveMetaFileAway (int recordNumber , String tempFileName ) throws Exception {
68
- File processHome = new File (ConfigCore .getKitodoDataDirectory (), Integer .toString (recordNumber ));
69
- new File (processHome , "meta.xml" ).renameTo (new File (processHome , tempFileName ));
70
- }
71
-
72
- private static void createTestMetafile (int recordNumber ) throws Exception {
73
- List <String > lines = Arrays .asList ("<?xml version=\" 1.0\" encoding=\" UTF-8\" ?>" ,
74
- "<mets:mets xsi:schemaLocation=\" http://www.loc.gov/mods/v3 "
75
- + "http://www.loc.gov/standards/mods/mods.xsd http://www.loc.gov/METS/ http://www.loc.gov/standards/mets/mets.xsd "
76
- + "info:lc/xmlns/premis-v2 http://www.loc.gov/standards/premis/v2/premis-v2-0.xsd http://www.loc.gov/mix/v10 "
77
- + "http://www.loc.gov/standards/mix/mix10/mix10.xsd\" xmlns:mets=\" http://www.loc.gov/METS/\" "
78
- + "xmlns:xsi=\" http://www.w3.org/2001/XMLSchema-instance\" >"
79
- + "<mets:metsHdr CREATEDATE=\" 2018-09-14T07:45:17\" >"
80
- + "<mets:agent OTHERTYPE=\" SOFTWARE\" ROLE=\" CREATOR\" TYPE=\" OTHER\" >"
81
- + "<mets:name>Kitodo - kitodo-ugh-3.0-SNAPSHOT - 18-April-2018 13:20:13</mets:name>"
82
- + "<mets:note>Kitodo</mets:note></mets:agent></mets:metsHdr>"
83
- + "<mets:dmdSec ID=\" DMDLOG_0000\" ><mets:mdWrap MDTYPE=\" MODS\" ><mets:xmlData>"
84
- + "<mods:mods xmlns:mods=\" http://www.loc.gov/mods/v3\" ><mods:extension>"
85
- + "<goobi:goobi xmlns:goobi=\" http://meta.goobi.org/v1.5.1/\" >"
86
- + "<goobi:metadata name=\" TitleDocMain\" >Second process</goobi:metadata>"
87
- + "<goobi:metadata name=\" TitleDocMainShort\" >SecondMetaShort</goobi:metadata>"
88
- + "<goobi:metadata name=\" TSL_ATS\" >Proc</goobi:metadata>"
89
- + "</goobi:goobi></mods:extension></mods:mods></mets:xmlData></mets:mdWrap></mets:dmdSec>"
90
- + "<mets:dmdSec ID=\" DMDPHYS_0000\" ><mets:mdWrap MDTYPE=\" MODS\" ><mets:xmlData>"
91
- + "<mods:mods xmlns:mods=\" http://www.loc.gov/mods/v3\" >"
92
- + "<mods:extension><goobi:goobi xmlns:goobi=\" http://meta.goobi.org/v1.5.1/\" >"
93
- + "<goobi:metadata name=\" pathimagefiles\" >file:/2/images/Sec_Proc_tif</goobi:metadata>"
94
- + "</goobi:goobi></mods:extension></mods:mods></mets:xmlData></mets:mdWrap></mets:dmdSec>"
95
- + "<mets:structMap TYPE=\" LOGICAL\" >"
96
- + "<mets:div DMDID=\" DMDLOG_0000\" ID=\" LOG_0000\" TYPE=\" Monograph\" />" + "</mets:structMap>"
97
- + "<mets:structMap TYPE=\" PHYSICAL\" >"
98
- + "<mets:div DMDID=\" DMDPHYS_0000\" ID=\" PHYS_0000\" TYPE=\" physSequence\" />" + "</mets:structMap>"
99
- + "<mets:structLink>"
100
- + "<mets:smLink xlink:to=\" PHYS_0000\" xlink:from=\" LOG_0000\" xmlns:xlink=\" http://www.w3.org/1999/xlink\" />"
101
- + "</mets:structLink></mets:mets>" );
102
- File processHome = new File (ConfigCore .getKitodoDataDirectory (), "2" );
103
- FileUtils .writeLines (new File (processHome , "meta.xml" ), "UTF-8" , lines );
104
- }
105
-
106
- private static void cleanUp () throws Exception {
107
- File processHome = new File (ConfigCore .getKitodoDataDirectory (), "2" );
108
- File originalMeta = new File (processHome , "meta_MigrationTaskIT.tmp" );
109
- if (originalMeta .exists ()) {
110
- File metaFile = new File (processHome , "meta.xml" );
111
- metaFile .delete ();
112
- originalMeta .renameTo (metaFile );
113
- }
70
+ metsService .loadWorkpiece (processService .getMetadataFileUri (processService .getById (migrationTestProcessId ))));
114
71
}
115
72
}
0 commit comments