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.datastore;
27
28 import java.io.StringWriter;
29 import java.io.Writer;
30 import java.util.Date;
31 import java.util.HashMap;
32 import java.util.Map;
33
34 import org.apache.commons.io.FileUtils;
35 import org.junit.Assert;
36 import org.junit.Before;
37 import org.junit.Test;
38
39 import fr.ifremer.isisfish.AbstractIsisFishTest;
40 import fr.ifremer.isisfish.IsisFish;
41 import fr.ifremer.isisfish.datastore.CodeSourceStorage.Location;
42 import freemarker.template.Configuration;
43 import freemarker.template.Template;
44
45
46
47
48
49
50
51
52
53
54
55
56 public class ScriptStorageTest extends AbstractIsisFishTest {
57
58 protected Configuration freemarkerConfiguration;
59
60 @Before
61 public void setUp() throws Exception {
62 freemarkerConfiguration = getFreemarkerConfiguration();
63 }
64
65
66
67
68 @Test
69 public void testGetScript() throws Exception {
70 String content1 = "public class test { public static void main(String[]args) {System.out.println(\"The test 1 :)\")} ";
71 String content2 = "public class test { public static void main(String[]args) {System.out.println(\"The test 2 :) with different length :(\")} ";
72
73 ScriptStorage script = ScriptStorage.createScript("test", Location.COMMUNITY);
74 try {
75
76
77
78 Assert.assertFalse(script.exists());
79 Assert.assertEquals("", script.getContent());
80
81 script.setContent(content1);
82 Assert.assertTrue(script.exists());
83
84
85 Assert.assertEquals(content1, script.getContent());
86
87 FileUtils.writeStringToFile(script.getFile(), content2);
88
89 Assert.assertEquals(content2, script.getContent());
90 } finally {
91 script.delete(false);
92 Assert.assertFalse(script.exists());
93 }
94 }
95
96 @Test
97 public void testNewScriptWithCompilation() throws Exception {
98
99 String fileName = "TestScript1";
100
101 ScriptStorage scriptStorage = ScriptStorage.createScript(fileName, Location.COMMUNITY);
102
103
104 Template template = freemarkerConfiguration
105 .getTemplate(ScriptStorage.SCRIPT_TEMPLATE);
106
107
108 Map<String, Object> root = new HashMap<>();
109 root.put("name", fileName);
110 root.put("date", new Date());
111 root.put("author", IsisFish.config.getUserName());
112 root.put("email", IsisFish.config.getUserMail());
113
114
115 Writer out = new StringWriter();
116 template.process(root, out);
117 out.flush();
118 String content = out.toString();
119
120 scriptStorage.setContent(content);
121
122
123 int compileResult = scriptStorage.compile(false, null);
124 Assert.assertEquals(0, compileResult);
125 }
126 }