Pārlūkot izejas kodu

Merge pull request #591 from csmith/master

Add a JUnit rule for using JimFS.
pull/594/head
Greg Holmes 9 gadus atpakaļ
vecāks
revīzija
e51d890e50

+ 24
- 22
test/com/dmdirc/commandparser/aliases/ActionAliasMigratorTest.java Parādīt failu

@@ -22,14 +22,13 @@
22 22
 
23 23
 package com.dmdirc.commandparser.aliases;
24 24
 
25
-import com.google.common.jimfs.Configuration;
26
-import com.google.common.jimfs.Jimfs;
25
+import com.dmdirc.tests.JimFsRule;
27 26
 
28 27
 import java.io.IOException;
29
-import java.nio.file.FileSystem;
30 28
 import java.nio.file.Files;
31 29
 
32 30
 import org.junit.Before;
31
+import org.junit.Rule;
33 32
 import org.junit.Test;
34 33
 import org.junit.runner.RunWith;
35 34
 import org.mockito.Mock;
@@ -39,35 +38,38 @@ import static org.junit.Assert.assertFalse;
39 38
 import static org.junit.Assert.assertTrue;
40 39
 import static org.mockito.Mockito.verify;
41 40
 
41
+@SuppressWarnings("resource")
42 42
 @RunWith(MockitoJUnitRunner.class)
43 43
 public class ActionAliasMigratorTest {
44 44
 
45
+    @Rule public final JimFsRule jimFsRule = new JimFsRule();
46
+
45 47
     @Mock private AliasFactory aliasFactory;
46 48
     @Mock private AliasManager aliasManager;
47 49
 
48
-    private FileSystem fs;
49 50
     private ActionAliasMigrator migrator1;
50 51
     private ActionAliasMigrator migrator2;
51 52
     private ActionAliasMigrator migrator3;
52 53
 
53 54
     @Before
54 55
     public void setup() throws IOException {
55
-        fs = Jimfs.newFileSystem(Configuration.unix());
56
-
57
-        Files.createDirectories(fs.getPath("test1/aliases"));
58
-        Files.createDirectories(fs.getPath("test2/other-stuff/aliases"));
59
-        Files.createDirectories(fs.getPath("test3/aliases"));
56
+        Files.createDirectories(jimFsRule.getFileSystem().getPath("test1/aliases"));
57
+        Files.createDirectories(jimFsRule.getFileSystem().getPath("test2/other-stuff/aliases"));
58
+        Files.createDirectories(jimFsRule.getFileSystem().getPath("test3/aliases"));
60 59
 
61 60
         Files.copy(getClass().getResource("op-greater-0").openStream(),
62
-                fs.getPath("test1/aliases/op"));
61
+                jimFsRule.getFileSystem().getPath("test1/aliases/op"));
63 62
         Files.copy(getClass().getResource("unset-equals-2").openStream(),
64
-                fs.getPath("test1/aliases/unset"));
63
+                jimFsRule.getFileSystem().getPath("test1/aliases/unset"));
65 64
         Files.copy(getClass().getResource("no-trigger").openStream(),
66
-                fs.getPath("test3/aliases/bad"));
67
-
68
-        migrator1 = new ActionAliasMigrator(fs.getPath("test1"), aliasFactory, aliasManager);
69
-        migrator2 = new ActionAliasMigrator(fs.getPath("test2"), aliasFactory, aliasManager);
70
-        migrator3 = new ActionAliasMigrator(fs.getPath("test3"), aliasFactory, aliasManager);
65
+                jimFsRule.getFileSystem().getPath("test3/aliases/bad"));
66
+
67
+        migrator1 = new ActionAliasMigrator(jimFsRule.getFileSystem().getPath("test1"),
68
+                aliasFactory, aliasManager);
69
+        migrator2 = new ActionAliasMigrator(jimFsRule.getFileSystem().getPath("test2"),
70
+                aliasFactory, aliasManager);
71
+        migrator3 = new ActionAliasMigrator(jimFsRule.getFileSystem().getPath("test3"),
72
+                aliasFactory, aliasManager);
71 73
     }
72 74
 
73 75
     @Test
@@ -79,16 +81,16 @@ public class ActionAliasMigratorTest {
79 81
     @Test
80 82
     public void testDeletesFilesAfterMigration() {
81 83
         migrator1.migrate();
82
-        assertFalse(Files.exists(fs.getPath("test1/aliases/unset")));
83
-        assertFalse(Files.exists(fs.getPath("test1/aliases/op")));
84
-        assertFalse(Files.exists(fs.getPath("test1/aliases")));
85
-        assertTrue(Files.exists(fs.getPath("test1")));
84
+        assertFalse(Files.exists(jimFsRule.getFileSystem().getPath("test1/aliases/unset")));
85
+        assertFalse(Files.exists(jimFsRule.getFileSystem().getPath("test1/aliases/op")));
86
+        assertFalse(Files.exists(jimFsRule.getFileSystem().getPath("test1/aliases")));
87
+        assertTrue(Files.exists(jimFsRule.getFileSystem().getPath("test1")));
86 88
     }
87 89
 
88 90
     @Test
89 91
     public void testLeavesOtherFilesDuringMigration() {
90 92
         migrator2.migrate();
91
-        assertTrue(Files.exists(fs.getPath("test2/other-stuff/aliases")));
93
+        assertTrue(Files.exists(jimFsRule.getFileSystem().getPath("test2/other-stuff/aliases")));
92 94
     }
93 95
 
94 96
     @Test
@@ -101,7 +103,7 @@ public class ActionAliasMigratorTest {
101 103
     @Test
102 104
     public void testBadActionsLeftOnDisk() {
103 105
         migrator3.migrate();
104
-        assertTrue(Files.exists(fs.getPath("test3/aliases/bad")));
106
+        assertTrue(Files.exists(jimFsRule.getFileSystem().getPath("test3/aliases/bad")));
105 107
     }
106 108
 
107 109
 }

+ 6
- 14
test/com/dmdirc/commandparser/aliases/DefaultAliasInstallerTest.java Parādīt failu

@@ -22,16 +22,14 @@
22 22
 
23 23
 package com.dmdirc.commandparser.aliases;
24 24
 
25
-import com.google.common.jimfs.Configuration;
26
-import com.google.common.jimfs.Jimfs;
25
+import com.dmdirc.tests.JimFsRule;
27 26
 
28 27
 import java.io.IOException;
29
-import java.nio.file.FileSystem;
30 28
 import java.nio.file.Files;
31 29
 import java.nio.file.Path;
32 30
 
33
-import org.junit.After;
34 31
 import org.junit.Before;
32
+import org.junit.Rule;
35 33
 import org.junit.Test;
36 34
 import org.junit.runner.RunWith;
37 35
 import org.mockito.runners.MockitoJUnitRunner;
@@ -39,28 +37,22 @@ import org.mockito.runners.MockitoJUnitRunner;
39 37
 import static org.junit.Assert.assertFalse;
40 38
 import static org.junit.Assert.assertTrue;
41 39
 
40
+@SuppressWarnings("resource")
42 41
 @RunWith(MockitoJUnitRunner.class)
43 42
 public class DefaultAliasInstallerTest {
44 43
 
45
-    private FileSystem fs;
44
+    @Rule public final JimFsRule jimFsRule = new JimFsRule();
45
+
46 46
     private Path path;
47 47
 
48 48
     private DefaultAliasInstaller installer;
49 49
 
50 50
     @Before
51 51
     public void setup() {
52
-        fs = Jimfs.newFileSystem(Configuration.unix().toBuilder()
53
-                .setAttributeViews("posix").build());
54
-        path = fs.getPath("aliases.yml");
55
-
52
+        path = jimFsRule.getFileSystem().getPath("aliases.yml");
56 53
         installer = new DefaultAliasInstaller(path);
57 54
     }
58 55
 
59
-    @After
60
-    public void tearDown() throws IOException {
61
-        fs.close();
62
-    }
63
-
64 56
     @Test
65 57
     public void testNeedsMigrationIfFileDoesntExist() {
66 58
         assertTrue(installer.needsMigration());

+ 11
- 10
test/com/dmdirc/commandparser/auto/YamlAutoCommandStoreTest.java Parādīt failu

@@ -22,26 +22,28 @@
22 22
 
23 23
 package com.dmdirc.commandparser.auto;
24 24
 
25
+import com.dmdirc.tests.JimFsRule;
26
+
25 27
 import com.google.common.collect.Sets;
26
-import com.google.common.jimfs.Configuration;
27
-import com.google.common.jimfs.Jimfs;
28 28
 
29 29
 import java.io.IOException;
30
-import java.nio.file.FileSystem;
31 30
 import java.nio.file.Files;
32 31
 import java.util.Optional;
33 32
 import java.util.Set;
34 33
 
35 34
 import org.junit.Before;
35
+import org.junit.Rule;
36 36
 import org.junit.Test;
37 37
 
38 38
 import static junit.framework.TestCase.assertFalse;
39 39
 import static org.junit.Assert.assertEquals;
40 40
 import static org.junit.Assert.assertTrue;
41 41
 
42
+@SuppressWarnings("resource")
42 43
 public class YamlAutoCommandStoreTest {
43 44
 
44
-    private FileSystem fs;
45
+    @Rule public final JimFsRule jimFsRule = new JimFsRule();
46
+
45 47
     private YamlAutoCommandStore ycs;
46 48
     private AutoCommand command;
47 49
     private AutoCommand command1;
@@ -51,9 +53,8 @@ public class YamlAutoCommandStoreTest {
51 53
 
52 54
     @Before
53 55
     public void setup() throws IOException {
54
-        fs = Jimfs.newFileSystem(Configuration.unix());
55 56
         Files.copy(getClass().getResource("readtest.yml").openStream(),
56
-                fs.getPath("readtest.yml"));
57
+                jimFsRule.getFileSystem().getPath("readtest.yml"));
57 58
         command = AutoCommand.create(Optional.ofNullable("server"),
58 59
                 Optional.ofNullable("network"),
59 60
                 Optional.ofNullable("profile"),
@@ -76,7 +77,7 @@ public class YamlAutoCommandStoreTest {
76 77
 
77 78
     @Test
78 79
     public void testReadAutoCommands() {
79
-        ycs = new YamlAutoCommandStore(fs.getPath("readtest.yml"));
80
+        ycs = new YamlAutoCommandStore(jimFsRule.getFileSystem().getPath("readtest.yml"));
80 81
         final Set<AutoCommand> commands = ycs.readAutoCommands();
81 82
         assertTrue("Command 1 not present", commands.contains(command1));
82 83
         assertTrue("Command 2 not present", commands.contains(command2));
@@ -86,13 +87,13 @@ public class YamlAutoCommandStoreTest {
86 87
 
87 88
     @Test
88 89
     public void testWriteAutoCommands() throws IOException {
89
-        ycs = new YamlAutoCommandStore(fs.getPath("store.yml"));
90
+        ycs = new YamlAutoCommandStore(jimFsRule.getFileSystem().getPath("store.yml"));
90 91
         assertEquals(0, ycs.readAutoCommands().size());
91
-        assertFalse(Files.exists(fs.getPath("store.yml")));
92
+        assertFalse(Files.exists(jimFsRule.getFileSystem().getPath("store.yml")));
92 93
         ycs.writeAutoCommands(Sets.newHashSet(command));
93 94
         final Set<AutoCommand> commands = ycs.readAutoCommands();
94 95
         assertTrue("Command not present", commands.contains(command));
95
-        assertTrue(Files.exists(fs.getPath("store.yml")));
96
+        assertTrue(Files.exists(jimFsRule.getFileSystem().getPath("store.yml")));
96 97
     }
97 98
 
98 99
 }

+ 17
- 13
test/com/dmdirc/config/ConfigFileBackedConfigProviderTest.java Parādīt failu

@@ -24,20 +24,19 @@ package com.dmdirc.config;
24 24
 
25 25
 import com.dmdirc.interfaces.config.ConfigChangeListener;
26 26
 import com.dmdirc.interfaces.config.ConfigProvider;
27
+import com.dmdirc.tests.JimFsRule;
27 28
 import com.dmdirc.util.io.InvalidConfigFileException;
28 29
 import com.dmdirc.util.validators.NumericalValidator;
29 30
 import com.dmdirc.util.validators.PermissiveValidator;
30 31
 
31 32
 import com.google.common.collect.Lists;
32
-import com.google.common.jimfs.Configuration;
33
-import com.google.common.jimfs.Jimfs;
34 33
 
35 34
 import java.io.IOException;
36
-import java.nio.file.FileSystem;
37 35
 import java.nio.file.Files;
38 36
 import java.nio.file.StandardCopyOption;
39 37
 
40 38
 import org.junit.Before;
39
+import org.junit.Rule;
41 40
 import org.junit.Test;
42 41
 import org.junit.runner.RunWith;
43 42
 import org.mockito.Mock;
@@ -51,6 +50,7 @@ import static org.mockito.Matchers.anyString;
51 50
 import static org.mockito.Mockito.never;
52 51
 import static org.mockito.Mockito.verify;
53 52
 
53
+@SuppressWarnings("resource")
54 54
 @RunWith(MockitoJUnitRunner.class)
55 55
 public class ConfigFileBackedConfigProviderTest {
56 56
 
@@ -62,33 +62,35 @@ public class ConfigFileBackedConfigProviderTest {
62 62
     public static final PermissiveValidator<String> PERMISSIVE_VALIDATOR =
63 63
             new PermissiveValidator<>();
64 64
 
65
+    @Rule public final JimFsRule jimFsRule = new JimFsRule();
66
+
65 67
     @Mock private IdentityManager identityManager;
66 68
     @Mock private ConfigChangeListener changeListener;
67 69
 
68
-    private FileSystem fs;
69
-
70 70
     @Before
71 71
     public void setUp() throws Exception {
72
-        fs = Jimfs.newFileSystem(Configuration.unix());
73
-
74 72
         for (String file: FILES) {
75
-            Files.copy(getClass().getResourceAsStream(file), fs.getPath(file));
73
+            Files.copy(getClass().getResourceAsStream(file),
74
+                    jimFsRule.getFileSystem().getPath(file));
76 75
         }
77 76
     }
78 77
 
79 78
     @Test(expected = InvalidIdentityFileException.class)
80 79
     public void testNoName() throws IOException, InvalidIdentityFileException {
81
-        new ConfigFileBackedConfigProvider(identityManager, fs.getPath("no-name"), false);
80
+        new ConfigFileBackedConfigProvider(identityManager,
81
+                jimFsRule.getFileSystem().getPath("no-name"), false);
82 82
     }
83 83
 
84 84
     @Test(expected = InvalidIdentityFileException.class)
85 85
     public void testNoTarget() throws IOException, InvalidIdentityFileException {
86
-        new ConfigFileBackedConfigProvider(identityManager, fs.getPath("no-target"), false);
86
+        new ConfigFileBackedConfigProvider(identityManager,
87
+                jimFsRule.getFileSystem().getPath("no-target"), false);
87 88
     }
88 89
 
89 90
     @Test(expected = InvalidIdentityFileException.class)
90 91
     public void testInvalidConfigFile() throws IOException, InvalidIdentityFileException {
91
-        new ConfigFileBackedConfigProvider(identityManager, fs.getPath("invalid-config-file"), false);
92
+        new ConfigFileBackedConfigProvider(identityManager,
93
+                jimFsRule.getFileSystem().getPath("invalid-config-file"), false);
92 94
     }
93 95
 
94 96
     @Test
@@ -311,14 +313,16 @@ public class ConfigFileBackedConfigProviderTest {
311 313
 
312 314
     private void copyFileAndReload(final ConfigProvider provider)
313 315
             throws IOException, InvalidConfigFileException {
314
-        Files.copy(fs.getPath("simple-ircd-extra"), fs.getPath("simple-ircd"),
316
+        Files.copy(jimFsRule.getFileSystem().getPath("simple-ircd-extra"),
317
+                jimFsRule.getFileSystem().getPath("simple-ircd"),
315 318
                 StandardCopyOption.REPLACE_EXISTING);
316 319
         provider.reload();
317 320
     }
318 321
 
319 322
     private ConfigFileBackedConfigProvider getProvider(final String file)
320 323
             throws IOException, InvalidIdentityFileException {
321
-        return new ConfigFileBackedConfigProvider(identityManager, fs.getPath(file), false);
324
+        return new ConfigFileBackedConfigProvider(identityManager,
325
+                jimFsRule.getFileSystem().getPath(file), false);
322 326
     }
323 327
 
324 328
 }

+ 5
- 6
test/com/dmdirc/config/IdentityManagerTest.java Parādīt failu

@@ -24,18 +24,16 @@ package com.dmdirc.config;
24 24
 
25 25
 import com.dmdirc.DMDircMBassador;
26 26
 import com.dmdirc.interfaces.config.ConfigProvider;
27
+import com.dmdirc.tests.JimFsRule;
27 28
 import com.dmdirc.util.ClientInfo;
28 29
 
29
-import com.google.common.jimfs.Configuration;
30
-import com.google.common.jimfs.Jimfs;
31
-
32 30
 import java.io.IOException;
33
-import java.nio.file.FileSystem;
34 31
 import java.nio.file.Files;
35 32
 import java.nio.file.Path;
36 33
 import java.util.Collection;
37 34
 
38 35
 import org.junit.Before;
36
+import org.junit.Rule;
39 37
 import org.junit.Test;
40 38
 import org.junit.runner.RunWith;
41 39
 import org.mockito.Mock;
@@ -47,6 +45,8 @@ import static org.junit.Assert.assertNotNull;
47 45
 @RunWith(MockitoJUnitRunner.class)
48 46
 public class IdentityManagerTest {
49 47
 
48
+    @Rule public final JimFsRule jimFsRule = new JimFsRule();
49
+
50 50
     @Mock private DMDircMBassador eventBus;
51 51
     @Mock private ClientInfo clientInfo;
52 52
 
@@ -56,8 +56,7 @@ public class IdentityManagerTest {
56 56
     @Before
57 57
     @SuppressWarnings("resource")
58 58
     public void setUp() throws Exception {
59
-        final FileSystem fs = Jimfs.newFileSystem(Configuration.unix());
60
-        baseDirectory = fs.getPath("config");
59
+        baseDirectory = jimFsRule.getFileSystem().getPath("config");
61 60
         identitiesDirectory = baseDirectory.resolve("identities");
62 61
     }
63 62
 

+ 13
- 13
test/com/dmdirc/logger/DiskLoggingErrorManagerTest.java Parādīt failu

@@ -26,15 +26,13 @@ import com.dmdirc.DMDircMBassador;
26 26
 import com.dmdirc.config.ConfigBinder;
27 27
 import com.dmdirc.events.UserErrorEvent;
28 28
 import com.dmdirc.interfaces.config.AggregateConfigProvider;
29
+import com.dmdirc.tests.JimFsRule;
29 30
 
30
-import com.google.common.jimfs.Configuration;
31
-import com.google.common.jimfs.Jimfs;
32
-
33
-import java.nio.file.FileSystem;
34 31
 import java.nio.file.Files;
35 32
 import java.nio.file.Path;
36 33
 
37 34
 import org.junit.Before;
35
+import org.junit.Rule;
38 36
 import org.junit.Test;
39 37
 import org.junit.runner.RunWith;
40 38
 import org.mockito.Mock;
@@ -45,29 +43,31 @@ import static org.junit.Assert.assertTrue;
45 43
 import static org.mockito.Mockito.verify;
46 44
 import static org.mockito.Mockito.when;
47 45
 
46
+@SuppressWarnings("resource")
48 47
 @RunWith(MockitoJUnitRunner.class)
49 48
 public class DiskLoggingErrorManagerTest {
50 49
 
50
+    @Rule public final JimFsRule jimFsRule = new JimFsRule();
51
+
51 52
     @Mock private DMDircMBassador eventBus;
52 53
     @Mock private AggregateConfigProvider config;
53 54
     @Mock private ConfigBinder configBinder;
54 55
 
55
-    private FileSystem fileSystem;
56 56
     private DiskLoggingErrorManager instance;
57 57
 
58 58
     @Before
59 59
     public void setUp() throws Exception {
60 60
         when(config.getBinder()).thenReturn(configBinder);
61
-        fileSystem = Jimfs.newFileSystem(Configuration.unix());
62
-        instance = new DiskLoggingErrorManager(fileSystem.getPath("/errors"), eventBus);
61
+        instance = new DiskLoggingErrorManager(jimFsRule.getFileSystem().getPath("/errors"),
62
+                eventBus);
63 63
     }
64 64
 
65 65
     @Test
66 66
     public void testInitialise() throws Exception {
67
-        assertFalse(Files.exists(fileSystem.getPath("/errors")));
67
+        assertFalse(Files.exists(jimFsRule.getFileSystem().getPath("/errors")));
68 68
         instance.initialise(config);
69 69
         verify(configBinder).bind(instance, DiskLoggingErrorManager.class);
70
-        assertTrue(Files.exists(fileSystem.getPath("/errors")));
70
+        assertTrue(Files.exists(jimFsRule.getFileSystem().getPath("/errors")));
71 71
         assertFalse(instance.isDirectoryError());
72 72
     }
73 73
 
@@ -83,9 +83,9 @@ public class DiskLoggingErrorManagerTest {
83 83
         instance.initialise(config);
84 84
         instance.handleLoggingSetting(true);
85 85
         final String logName = error.getTimestamp() + "-" + error.getLevel() + ".log";;
86
-        assertFalse(Files.exists(fileSystem.getPath("/errors", logName)));
86
+        assertFalse(Files.exists(jimFsRule.getFileSystem().getPath("/errors", logName)));
87 87
         instance.handleErrorEvent(error);
88
-        final Path errorPath = fileSystem.getPath("/errors", logName);
88
+        final Path errorPath = jimFsRule.getFileSystem().getPath("/errors", logName);
89 89
         assertTrue(Files.exists(errorPath));
90 90
         assertTrue(Files.readAllLines(errorPath).contains("Level: Medium"));
91 91
     }
@@ -98,9 +98,9 @@ public class DiskLoggingErrorManagerTest {
98 98
         instance.initialise(config);
99 99
         instance.handleLoggingSetting(false);
100 100
         final String logName = error.getTimestamp() + "-" + error.getLevel() + ".log";;
101
-        assertFalse(Files.exists(fileSystem.getPath("/errors", logName)));
101
+        assertFalse(Files.exists(jimFsRule.getFileSystem().getPath("/errors", logName)));
102 102
         instance.handleErrorEvent(error);
103
-        assertFalse(Files.exists(fileSystem.getPath("/errors", logName)));
103
+        assertFalse(Files.exists(jimFsRule.getFileSystem().getPath("/errors", logName)));
104 104
     }
105 105
 
106 106
     @Test

+ 63
- 0
test/com/dmdirc/tests/JimFsRule.java Parādīt failu

@@ -0,0 +1,63 @@
1
+/*
2
+ * Copyright (c) 2006-2015 DMDirc Developers
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+
23
+package com.dmdirc.tests;
24
+
25
+import com.google.common.jimfs.Configuration;
26
+import com.google.common.jimfs.Jimfs;
27
+
28
+import java.nio.file.FileSystem;
29
+
30
+import javax.annotation.WillCloseWhenClosed;
31
+
32
+import org.junit.rules.TestRule;
33
+import org.junit.runner.Description;
34
+import org.junit.runners.model.Statement;
35
+
36
+/**
37
+ * JUnit rule to create a JimFS file system and automatically close it on completion.
38
+ */
39
+public class JimFsRule implements TestRule {
40
+
41
+    private FileSystem fileSystem;
42
+
43
+    @Override
44
+    public Statement apply(final Statement base, final Description description) {
45
+        return new Statement() {
46
+            @Override
47
+            public void evaluate() throws Throwable {
48
+                fileSystem = Jimfs.newFileSystem(Configuration.unix());
49
+                try {
50
+                    base.evaluate();
51
+                } finally {
52
+                    fileSystem.close();
53
+                }
54
+            }
55
+        };
56
+    }
57
+
58
+    @WillCloseWhenClosed
59
+    public FileSystem getFileSystem() {
60
+        return fileSystem;
61
+    }
62
+
63
+}

+ 21
- 13
test/com/dmdirc/util/URLBuilderTest.java Parādīt failu

@@ -26,19 +26,17 @@ import com.dmdirc.DMDircMBassador;
26 26
 import com.dmdirc.plugins.PluginInfo;
27 27
 import com.dmdirc.plugins.PluginManager;
28 28
 import com.dmdirc.plugins.PluginMetaData;
29
+import com.dmdirc.tests.JimFsRule;
29 30
 import com.dmdirc.ui.themes.ThemeManager;
30 31
 
31
-import com.google.common.jimfs.Configuration;
32
-import com.google.common.jimfs.Jimfs;
33
-
34 32
 import java.net.MalformedURLException;
35 33
 import java.net.URL;
36
-import java.nio.file.FileSystem;
37 34
 
38 35
 import javax.inject.Provider;
39 36
 
40 37
 import org.junit.Assert;
41 38
 import org.junit.Before;
39
+import org.junit.Rule;
42 40
 import org.junit.Test;
43 41
 import org.junit.runner.RunWith;
44 42
 import org.mockito.Matchers;
@@ -50,6 +48,8 @@ import static org.mockito.Mockito.when;
50 48
 @RunWith(MockitoJUnitRunner.class)
51 49
 public class URLBuilderTest {
52 50
 
51
+    @Rule public final JimFsRule jimFsRule = new JimFsRule();
52
+
53 53
     @Mock private Provider<PluginManager> pluginManagerProvider;
54 54
     @Mock private Provider<ThemeManager> themeManagerProvider;
55 55
     @Mock private PluginManager pluginManager;
@@ -59,14 +59,15 @@ public class URLBuilderTest {
59 59
     @Mock private DMDircMBassador eventBus;
60 60
 
61 61
     @Before
62
+    @SuppressWarnings("resource")
62 63
     public void setup() throws MalformedURLException {
63
-        final FileSystem fs = Jimfs.newFileSystem(Configuration.unix());
64 64
         when(pluginManagerProvider.get()).thenReturn(pluginManager);
65 65
         when(themeManagerProvider.get()).thenReturn(themeManager);
66 66
         when(pluginManager.getPluginInfoByName(Matchers.anyString())).thenReturn(pluginInfo);
67 67
         when(themeManager.getDirectory()).thenReturn("/themes/");
68 68
         when(pluginInfo.getMetaData()).thenReturn(pluginMetaData);
69
-        when(pluginMetaData.getPluginPath()).thenReturn(fs.getPath("file://testPlugin"));
69
+        when(pluginMetaData.getPluginPath()).thenReturn(
70
+                jimFsRule.getFileSystem().getPath("file://testPlugin"));
70 71
     }
71 72
 
72 73
     @Test
@@ -94,7 +95,8 @@ public class URLBuilderTest {
94 95
     public void testGetUrlForJarFile() throws MalformedURLException {
95 96
         final URLBuilder urlBuilder
96 97
                 = new URLBuilder(pluginManagerProvider, themeManagerProvider);
97
-        Assert.assertEquals(new URL("jar:file:/jarFile!/test"), urlBuilder.getUrlForJarFile("jarFile", "test"));
98
+        Assert.assertEquals(new URL("jar:file:/jarFile!/test"),
99
+                urlBuilder.getUrlForJarFile("jarFile", "test"));
98 100
     }
99 101
 
100 102
     @Test
@@ -124,14 +126,16 @@ public class URLBuilderTest {
124 126
     public void testGetUrlForThemeResource() throws MalformedURLException {
125 127
         final URLBuilder urlBuilder
126 128
                 = new URLBuilder(pluginManagerProvider, themeManagerProvider);
127
-        Assert.assertEquals(new URL("jar:file:/themes/testTheme.zip!/testFile"), urlBuilder.getUrlForThemeResource("testTheme", "testFile"));
129
+        Assert.assertEquals(new URL("jar:file:/themes/testTheme.zip!/testFile"),
130
+                urlBuilder.getUrlForThemeResource("testTheme", "testFile"));
128 131
     }
129 132
 
130 133
     @Test
131 134
     public void testGetUrlForPluginResource() throws MalformedURLException {
132 135
         final URLBuilder urlBuilder
133 136
                 = new URLBuilder(pluginManagerProvider, themeManagerProvider);
134
-        Assert.assertEquals(new URL("jar:file:/testPlugin!/testFile"), urlBuilder.getUrlForPluginResource("testPlugin", "testFile"));
137
+        Assert.assertEquals(new URL("jar:file:/testPlugin!/testFile"),
138
+                urlBuilder.getUrlForPluginResource("testPlugin", "testFile"));
135 139
     }
136 140
 
137 141
     @Test
@@ -147,7 +151,8 @@ public class URLBuilderTest {
147 151
     public void testGetUrlJar() throws MalformedURLException {
148 152
         final URLBuilder urlBuilder
149 153
                 = new URLBuilder(pluginManagerProvider, themeManagerProvider);
150
-        Assert.assertEquals(new URL("jar:file:/jarFile!/testFile"), urlBuilder.getUrl("jar://jarFile:testFile"));
154
+        Assert.assertEquals(new URL("jar:file:/jarFile!/testFile"),
155
+                urlBuilder.getUrl("jar://jarFile:testFile"));
151 156
     }
152 157
 
153 158
     @Test
@@ -161,7 +166,8 @@ public class URLBuilderTest {
161 166
     public void testGetUrlZip() throws MalformedURLException {
162 167
         final URLBuilder urlBuilder
163 168
                 = new URLBuilder(pluginManagerProvider, themeManagerProvider);
164
-        Assert.assertEquals(new URL("jar:file:/zipFile!/testFile"), urlBuilder.getUrl("zip://zipFile:testFile"));
169
+        Assert.assertEquals(new URL("jar:file:/zipFile!/testFile"),
170
+                urlBuilder.getUrl("zip://zipFile:testFile"));
165 171
     }
166 172
 
167 173
     @Test
@@ -175,7 +181,8 @@ public class URLBuilderTest {
175 181
     public void testGetUrlPlugin() throws MalformedURLException {
176 182
         final URLBuilder urlBuilder
177 183
                 = new URLBuilder(pluginManagerProvider, themeManagerProvider);
178
-        Assert.assertEquals(new URL("jar:file:/testPlugin!/testFile"), urlBuilder.getUrl("plugin://pluginFile:testFile"));
184
+        Assert.assertEquals(new URL("jar:file:/testPlugin!/testFile"),
185
+                urlBuilder.getUrl("plugin://pluginFile:testFile"));
179 186
     }
180 187
 
181 188
     @Test
@@ -189,7 +196,8 @@ public class URLBuilderTest {
189 196
     public void testGetUrlTheme() throws MalformedURLException {
190 197
         final URLBuilder urlBuilder
191 198
                 = new URLBuilder(pluginManagerProvider, themeManagerProvider);
192
-        Assert.assertEquals(new URL("jar:file:/themes/themeFile.zip!/testFile"), urlBuilder.getUrl("theme://themeFile:testFile"));
199
+        Assert.assertEquals(new URL("jar:file:/themes/themeFile.zip!/testFile"),
200
+                urlBuilder.getUrl("theme://themeFile:testFile"));
193 201
     }
194 202
 
195 203
     @Test

Notiek ielāde…
Atcelt
Saglabāt