|
32 | 32 | package org.scijava.script; |
33 | 33 |
|
34 | 34 | import static org.junit.Assert.assertEquals; |
| 35 | +import static org.junit.Assert.assertTrue; |
35 | 36 | import static org.junit.Assert.fail; |
36 | 37 |
|
| 38 | +import java.io.File; |
| 39 | +import java.io.IOException; |
37 | 40 | import java.io.Reader; |
38 | 41 | import java.io.StringReader; |
39 | 42 | import java.util.Arrays; |
|
50 | 53 | import org.junit.Test; |
51 | 54 | import org.scijava.Context; |
52 | 55 | import org.scijava.plugin.Plugin; |
| 56 | +import org.scijava.test.TestUtils; |
| 57 | +import org.scijava.util.DigestUtils; |
| 58 | +import org.scijava.util.FileUtils; |
53 | 59 |
|
54 | 60 | public class ScriptInfoTest { |
55 | 61 |
|
@@ -89,6 +95,30 @@ public void testParameterParsing() throws Exception { |
89 | 95 | assertEquals(3, ((Integer)output).intValue()); |
90 | 96 | } |
91 | 97 |
|
| 98 | + /** Tests {@link ScriptInfo#getVersion()}. */ |
| 99 | + @Test |
| 100 | + public void testVersion() throws IOException { |
| 101 | + final String script = |
| 102 | + "% @LogService log\n" |
| 103 | + + "% @OUTPUT int output"; |
| 104 | + |
| 105 | + // write script to a temporary directory on disk |
| 106 | + final File tmpDir = TestUtils.createTemporaryDirectory("script-info-test-"); |
| 107 | + final String path = "hello.bsizes"; |
| 108 | + final File scriptFile = new File(tmpDir, path); |
| 109 | + FileUtils.writeFile(scriptFile, DigestUtils.bytes(script)); |
| 110 | + |
| 111 | + // verify that the version is correct |
| 112 | + final ScriptInfo info = new ScriptInfo(context, scriptFile); |
| 113 | + final String version = info.getVersion(); |
| 114 | + final String timestampPattern = "\\d{4}-\\d{2}-\\d{2}-\\d{2}:\\d{2}:\\d{2}"; |
| 115 | + final String sha1 = "28f4a2880d604774ac5d604d35f431047a087c9e"; |
| 116 | + assertTrue(version.matches("^" + timestampPattern + "-" + sha1 + "$")); |
| 117 | + |
| 118 | + // clean up the temporary directory |
| 119 | + FileUtils.deleteRecursively(tmpDir); |
| 120 | + } |
| 121 | + |
92 | 122 | @Plugin(type = ScriptLanguage.class) |
93 | 123 | public static class BindingSizes extends AbstractScriptLanguage { |
94 | 124 |
|
|
0 commit comments