Browse Source

Fix IdentityManager extraction, test.

Change-Id: Iad1d54ecebb7b3e5d13318ca2550ebc540cbd62b
Reviewed-on: http://gerrit.dmdirc.com/4044
Reviewed-by: Greg Holmes <greg@dmdirc.com>
Automatic-Compile: DMDirc Build Manager
pull/1/head
Chris Smith 9 years ago
parent
commit
252f6702d1

+ 5
- 7
src/com/dmdirc/config/IdentityManager.java View File

@@ -36,8 +36,8 @@ import com.dmdirc.updater.Version;
36 36
 import com.dmdirc.util.collections.MapList;
37 37
 import com.dmdirc.util.collections.WeakMapList;
38 38
 import com.dmdirc.util.io.ConfigFile;
39
+import com.dmdirc.util.io.FileUtils;
39 40
 import com.dmdirc.util.io.InvalidConfigFileException;
40
-import com.dmdirc.util.resourcemanager.ResourceManager;
41 41
 
42 42
 import java.io.IOException;
43 43
 import java.nio.file.DirectoryStream;
@@ -227,9 +227,8 @@ public class IdentityManager implements IdentityFactory, IdentityController {
227 227
      */
228 228
     private void extractFormatters() {
229 229
         try {
230
-            ResourceManager.getResourceManager().extractResource(
231
-                    "com/dmdirc/config/defaults/default/formatter",
232
-                    identitiesDirectory + "default/", false);
230
+            FileUtils.copyResources(getClass().getResource("defaults/default/formatter"),
231
+                    identitiesDirectory.resolve("default"));
233 232
         } catch (IOException ex) {
234 233
             eventBus.publishAsync(new UserErrorEvent(ErrorLevel.MEDIUM, null,
235 234
                     "Unable to extract default formatters: " + ex.getMessage(), ""));
@@ -243,9 +242,8 @@ public class IdentityManager implements IdentityFactory, IdentityController {
243 242
      */
244 243
     private void extractIdentities(final String target) {
245 244
         try {
246
-            ResourceManager.getResourceManager().extractResources(
247
-                    "com/dmdirc/config/defaults/" + target,
248
-                    identitiesDirectory + target, false);
245
+            FileUtils.copyResources(getClass().getResource("defaults/" + target),
246
+                    identitiesDirectory);
249 247
         } catch (IOException ex) {
250 248
             eventBus.publishAsync(new UserErrorEvent(ErrorLevel.MEDIUM, null,
251 249
                     "Unable to extract default identities: " + ex.getMessage(), ""));

+ 28
- 2
test/com/dmdirc/config/IdentityManagerTest.java View File

@@ -48,13 +48,13 @@ public class IdentityManagerTest {
48 48
 
49 49
     @Mock private DMDircMBassador eventBus;
50 50
 
51
-    private FileSystem fs;
52 51
     private Path baseDirectory;
53 52
     private Path identitiesDirectory;
54 53
 
55 54
     @Before
55
+    @SuppressWarnings("resource")
56 56
     public void setUp() throws Exception {
57
-        fs = Jimfs.newFileSystem(Configuration.unix());
57
+        final FileSystem fs = Jimfs.newFileSystem(Configuration.unix());
58 58
         baseDirectory = fs.getPath("config");
59 59
         identitiesDirectory = baseDirectory.resolve("identities");
60 60
     }
@@ -102,4 +102,30 @@ public class IdentityManagerTest {
102 102
         assertTrue(Files.isDirectory(identitiesDirectory.resolve("default")));
103 103
     }
104 104
 
105
+    @Test
106
+    public void testExtractsDefaults() throws InvalidIdentityFileException {
107
+        final IdentityManager identityManager = new IdentityManager(
108
+                baseDirectory, identitiesDirectory, eventBus);
109
+        identityManager.initialise();
110
+
111
+        assertTrue(Files.isDirectory(identitiesDirectory.resolve("default")));
112
+        assertTrue(Files.exists(identitiesDirectory.resolve("default").resolve("defaults")));
113
+        assertTrue(Files.exists(identitiesDirectory.resolve("default").resolve("formatter")));
114
+    }
115
+
116
+    @Test
117
+    public void testAlwaysUpdatesFormatter() throws InvalidIdentityFileException, IOException {
118
+        final Path formatterPath = identitiesDirectory.resolve("default").resolve("formatter");
119
+
120
+        Files.createDirectories(identitiesDirectory.resolve("default"));
121
+        Files.createFile(formatterPath);
122
+
123
+        final IdentityManager identityManager = new IdentityManager(
124
+                baseDirectory, identitiesDirectory, eventBus);
125
+        identityManager.initialise();
126
+
127
+        assertTrue(Files.exists(formatterPath));
128
+        assertTrue(Files.size(formatterPath) > 0);
129
+    }
130
+
105 131
 }

Loading…
Cancel
Save