1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 package fr.ifremer.isisfish;
27
28 import java.io.File;
29
30 import org.apache.commons.io.FileUtils;
31 import org.apache.commons.io.filefilter.HiddenFileFilter;
32 import org.junit.AfterClass;
33 import org.junit.Before;
34 import org.junit.BeforeClass;
35 import org.nuiton.util.FileUtil;
36 import org.nuiton.config.ArgumentsParserException;
37
38 import fr.ifremer.isisfish.datastore.AutoMigrationIsisH2Config;
39 import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
40 import fr.ifremer.isisfish.datastore.DataStorageTestHelper;
41 import freemarker.cache.ClassTemplateLoader;
42 import freemarker.ext.beans.BeansWrapper;
43 import freemarker.template.Configuration;
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 public abstract class AbstractIsisFishTest {
60
61 protected static File dirIsisBase;
62
63
64
65
66
67
68 public static File getTestDirectory() {
69 String tempdir = System.getProperty("java.io.tmpdir");
70
71 File tempdirfile = new File(tempdir);
72 if (!tempdirfile.exists()) {
73 tempdirfile.mkdirs();
74 }
75
76 return tempdirfile;
77 }
78
79
80
81
82
83
84
85
86
87 @BeforeClass
88 public static void init() throws Exception {
89
90 File mavenTestDir = getTestDirectory();
91 dirIsisBase = FileUtil.createTempDirectory("isisdbtest", "", mavenTestDir);
92
93 System.setProperty("user.home", dirIsisBase.getAbsolutePath());
94 System.setProperty(IsisConfig.Option.LAUNCH_UI.key, "false");
95 System.setProperty(IsisConfig.Option.ISIS_HOME_DIRECTORY.key, dirIsisBase.getAbsolutePath());
96 System.setProperty(IsisConfig.Option.SSH_KEY_FILE.key, dirIsisBase.getAbsolutePath() + File.separator + "ssh" + File.separator + "isis_test_dsa");
97
98 IsisFish.init();
99 IsisFish.initVCS();
100 IsisFish.initCommunityVCS();
101
102
103
104 AutoMigrationIsisH2Config.setTestMigrationCallBack();
105
106
107 DataStorageTestHelper.clearAllCache();
108
109 FileUtils.copyDirectory(new File("src/test/resources/test-database").getAbsoluteFile(),
110 IsisFish.config.getDatabaseDirectory(), HiddenFileFilter.VISIBLE);
111 }
112
113
114
115
116
117 @Before
118 public void resetConfig() throws ArgumentsParserException {
119 IsisFish.config = new IsisConfig();
120 IsisFish.config.parse();
121
122
123 Location.OFFICIAL.setDirectory(IsisFish.config.getDatabaseDirectory());
124 Location.COMMUNITY.setDirectory(IsisFish.config.getCommunityDatabaseDirectory());
125 Location.ALL.setDirectory(IsisFish.config.getDatabaseDirectory(), IsisFish.config.getCommunityDatabaseDirectory());
126 }
127
128
129
130
131
132
133 protected static File getCurrentDatabaseDirectory() {
134 return dirIsisBase;
135 }
136
137
138
139
140 @AfterClass
141 public static void clean() {
142 System.clearProperty("user.home");
143 if (dirIsisBase != null) {
144 FileUtils.deleteQuietly(dirIsisBase);
145 dirIsisBase = null;
146 }
147 }
148
149
150
151
152
153
154 protected static Configuration getFreemarkerConfiguration() {
155 Configuration freemarkerConfiguration = new Configuration();
156
157
158
159 freemarkerConfiguration.setDefaultEncoding("utf-8");
160
161
162 ClassTemplateLoader templateLoader = new ClassTemplateLoader(AbstractIsisFishTest.class, "/");
163 freemarkerConfiguration.setTemplateLoader(templateLoader);
164
165 freemarkerConfiguration.setObjectWrapper(new BeansWrapper());
166
167 return freemarkerConfiguration;
168 }
169 }