Pārlūkot izejas kodu

Make migrator use Path properly.

Finish unit tests.

Change-Id: I5dba46bccd147283d8389dcc3d2a4aadf4d827be
Reviewed-on: http://gerrit.dmdirc.com/4002
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Greg Holmes <greg@dmdirc.com>
pull/1/head
Chris Smith 9 gadus atpakaļ
vecāks
revīzija
2c2e7d6a6b

+ 8
- 5
src/com/dmdirc/commandparser/aliases/ActionAliasMigrator.java Parādīt failu

@@ -102,8 +102,7 @@ public class ActionAliasMigrator implements Migrator {
102 102
      */
103 103
     private boolean migrate(final Path file) {
104 104
         try {
105
-            // TODO: Make ConfigFile take a Path.
106
-            final ConfigFile configFile = new ConfigFile(file.toFile());
105
+            final ConfigFile configFile = new ConfigFile(file);
107 106
             configFile.read();
108 107
 
109 108
             final String response = Joiner.on('\n').join(configFile.getFlatDomain("response"));
@@ -149,9 +148,13 @@ public class ActionAliasMigrator implements Migrator {
149 148
     private int getArguments(final ConfigFile configFile) throws NumberFormatException {
150 149
         for (Map<String, String> section : configFile.getKeyDomains().values()) {
151 150
             if (section.containsKey("comparison")
152
-                    && section.containsKey("target")
153
-                    && "INT_GREATER".equals(section.get("comparison"))) {
154
-                return 1 + Integer.valueOf(section.get("target"));
151
+                    && section.containsKey("target")) {
152
+                if ("INT_GREATER".equals(section.get("comparison"))) {
153
+                    return 1 + Integer.valueOf(section.get("target"));
154
+                }
155
+                if ("INT_EQUALS".equals(section.get("comparison"))) {
156
+                    return Integer.valueOf(section.get("target"));
157
+                }
155 158
             }
156 159
         }
157 160
         return 0;

+ 29
- 0
test-res/com/dmdirc/commandparser/aliases/no-trigger Parādīt failu

@@ -0,0 +1,29 @@
1
+# This is a DMDirc configuration file.
2
+# Written on: Sun Nov 25 13:32:17 GMT 2007
3
+
4
+# This section indicates which sections below take key/value
5
+# pairs, rather than a simple list. It should be placed above
6
+# any sections that take key/values.
7
+keysections:
8
+  condition 0
9
+  condition 1
10
+
11
+triggers:
12
+  UNKNOWN_COMMAND
13
+
14
+response:
15
+  /mode ooooooooooooooo $1-
16
+
17
+format:
18
+
19
+condition 0:
20
+  argument=2
21
+  component=STRINGARRAY_LENGTH
22
+  target=0
23
+  comparison=INT_GREATER
24
+
25
+condition 1:
26
+  argument=2
27
+  component=STRINGARRAY_LENGTH
28
+  target=16
29
+  comparison=INT_LESS

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

@@ -32,7 +32,6 @@ import java.nio.file.FileSystem;
32 32
 import java.nio.file.Files;
33 33
 
34 34
 import org.junit.Before;
35
-import org.junit.Ignore;
36 35
 import org.junit.Test;
37 36
 import org.junit.runner.RunWith;
38 37
 import org.mockito.Mock;
@@ -40,32 +39,41 @@ import org.mockito.runners.MockitoJUnitRunner;
40 39
 
41 40
 import static org.junit.Assert.assertFalse;
42 41
 import static org.junit.Assert.assertTrue;
42
+import static org.mockito.Mockito.verify;
43 43
 
44 44
 @RunWith(MockitoJUnitRunner.class)
45 45
 public class ActionAliasMigratorTest {
46 46
 
47
-    @Mock private AliasManager aliasManager;
48 47
     @Mock private AliasFactory aliasFactory;
48
+    @Mock private AliasManager aliasManager;
49 49
     @Mock private DMDircMBassador eventBus;
50 50
 
51 51
     private FileSystem fs;
52 52
     private ActionAliasMigrator migrator1;
53 53
     private ActionAliasMigrator migrator2;
54
+    private ActionAliasMigrator migrator3;
54 55
 
55 56
     @Before
56 57
     public void setup() throws IOException {
57 58
         fs = Jimfs.newFileSystem(Configuration.unix());
59
+
58 60
         Files.createDirectories(fs.getPath("test1/aliases"));
59 61
         Files.createDirectories(fs.getPath("test2/other-stuff/aliases"));
62
+        Files.createDirectories(fs.getPath("test3/aliases"));
63
+
60 64
         Files.copy(getClass().getResource("op-greater-0").openStream(),
61 65
                 fs.getPath("test1/aliases/op"));
62 66
         Files.copy(getClass().getResource("unset-equals-2").openStream(),
63 67
                 fs.getPath("test1/aliases/unset"));
68
+        Files.copy(getClass().getResource("no-trigger").openStream(),
69
+                fs.getPath("test3/aliases/bad"));
64 70
 
65 71
         migrator1 = new ActionAliasMigrator(fs.getPath("test1"), aliasFactory,
66 72
                 aliasManager, eventBus);
67 73
         migrator2 = new ActionAliasMigrator(fs.getPath("test2"), aliasFactory,
68 74
                 aliasManager, eventBus);
75
+        migrator3 = new ActionAliasMigrator(fs.getPath("test3"), aliasFactory,
76
+                aliasManager, eventBus);
69 77
     }
70 78
 
71 79
     @Test
@@ -75,7 +83,6 @@ public class ActionAliasMigratorTest {
75 83
     }
76 84
 
77 85
     @Test
78
-    @Ignore("Converts to a file, throws UnsupportedOperationException under JimFs")
79 86
     public void testDeletesFilesAfterMigration() {
80 87
         migrator1.migrate();
81 88
         assertFalse(Files.exists(fs.getPath("test1/aliases/unset")));
@@ -90,4 +97,17 @@ public class ActionAliasMigratorTest {
90 97
         assertTrue(Files.exists(fs.getPath("test2/other-stuff/aliases")));
91 98
     }
92 99
 
100
+    @Test
101
+    public void testMigrationCreatesAliases() {
102
+        migrator1.migrate();
103
+        verify(aliasFactory).createAlias("op", 1, "/mode ooooooooooooooo $1-");
104
+        verify(aliasFactory).createAlias("unset", 2, "/set --unset $1-");
105
+    }
106
+
107
+    @Test
108
+    public void testBadActionsLeftOnDisk() {
109
+        migrator3.migrate();
110
+        assertTrue(Files.exists(fs.getPath("test3/aliases/bad")));
111
+    }
112
+
93 113
 }

Notiek ielāde…
Atcelt
Saglabāt