Bladeren bron

Dont require UI to create aliases.

Change-Id: I01e8bbd9beb0dfd76827455d2939a9e6ff7d74ec
Reviewed-on: http://gerrit.dmdirc.com/3527
Automatic-Compile: DMDirc Build Manager
Reviewed-by: Chris Smith <chris@dmdirc.com>
pull/1/head
Greg Holmes 10 jaren geleden
bovenliggende
commit
dad7b6d865

+ 16
- 6
src/com/dmdirc/commandparser/aliases/CoreAliasDialogModel.java Bestand weergeven

@@ -22,6 +22,7 @@
22 22
 
23 23
 package com.dmdirc.commandparser.aliases;
24 24
 
25
+import com.dmdirc.commandparser.CommandType;
25 26
 import com.dmdirc.interfaces.ui.AliasDialogModel;
26 27
 import com.dmdirc.interfaces.ui.AliasDialogModelListener;
27 28
 import com.dmdirc.util.collections.ListenerList;
@@ -69,18 +70,27 @@ public class CoreAliasDialogModel implements AliasDialogModel {
69 70
     }
70 71
 
71 72
     @Override
72
-    public void addAlias(final Alias alias) {
73
-        Preconditions.checkNotNull(alias);
74
-        aliases.put(alias.getName(), alias);
73
+    public void addAlias(final String name,
74
+            final int minArguments,
75
+            final String substitution) {
76
+        Preconditions.checkNotNull(name);
77
+        Preconditions.checkArgument(!aliases.containsKey(name));
78
+        Preconditions.checkNotNull(substitution);
79
+        Preconditions.checkArgument(minArguments >= 0);
80
+        final Alias alias = new Alias(CommandType.TYPE_GLOBAL, name, minArguments, substitution);
81
+        aliases.put(name, alias);
75 82
         listeners.getCallable(AliasDialogModelListener.class).aliasAdded(alias);
76 83
     }
77 84
 
78 85
     @Override
79
-    public void editAlias(final String name, final Alias alias) {
86
+    public void editAlias(final String name,
87
+            final int minArguments,
88
+            final String substitution) {
80 89
         Preconditions.checkNotNull(name);
81
-        Preconditions.checkNotNull(alias);
90
+        Preconditions.checkNotNull(substitution);
91
+        Preconditions.checkArgument(minArguments >= 0);
82 92
         Preconditions.checkArgument(aliases.containsKey(name));
83
-        Preconditions.checkArgument(name.equals(alias.getName()));
93
+        final Alias alias = new Alias(CommandType.TYPE_GLOBAL, name, minArguments, substitution);
84 94
         aliases.put(name, alias);
85 95
         listeners.getCallable(AliasDialogModelListener.class).aliasEdited(name);
86 96
     }

+ 9
- 7
src/com/dmdirc/interfaces/ui/AliasDialogModel.java Bestand weergeven

@@ -52,21 +52,23 @@ public interface AliasDialogModel {
52 52
     /**
53 53
      * Adds an alias to the model.
54 54
      *
55
-     * @param alias Alias to add.
55
+     * @param name         Name for the new alias
56
+     * @param minArguments Minimum number of arguments for the new alias
57
+     * @param substitution Substitution for the new alias
56 58
      */
57
-    void addAlias(final Alias alias);
59
+    void addAlias(String name, int minArguments, String substitution);
58 60
 
59 61
     /**
60 62
      * Edits the specified alias in the model.
61 63
      *
62
-     * @param name  Name of the alias to edit
63
-     * @param alias Alias to replace it with
64
+     * @param name         Name of the alias to edit
65
+     * @param minArguments Minimum number of arguments for the new alias
66
+     * @param substitution Substitution for the new alias
64 67
      */
65
-    void editAlias(final String name, final Alias alias);
68
+    void editAlias(final String name, int minArguments, String substitution);
66 69
 
67 70
     /**
68
-     * Renames an existing alias in the model. This method should not be used for renaming an alias
69
-     * {@link #renameAlias(String, String)}
71
+     * Renames an existing alias in the model.
70 72
      *
71 73
      * @param oldName Old name for the alias
72 74
      * @param newName New name for the alias

+ 6
- 16
test/com/dmdirc/commandparser/aliases/CoreAliasDialogModelTest.java Bestand weergeven

@@ -87,7 +87,7 @@ public class CoreAliasDialogModelTest {
87 87
         when(aliasModel.getAliases()).thenReturn(aliases);
88 88
         final CoreAliasDialogModel model = new CoreAliasDialogModel(aliasModel);
89 89
         assertEquals(model.getAliases().size(), 0);
90
-        model.addAlias(alias1);
90
+        model.addAlias(alias1.getName(), alias1.getMinArguments(), alias1.getSubstitution());
91 91
         assertEquals(model.getAliases().size(), 1);
92 92
     }
93 93
 
@@ -96,7 +96,7 @@ public class CoreAliasDialogModelTest {
96 96
         when(aliasModel.getAliases()).thenReturn(aliases);
97 97
         final CoreAliasDialogModel model = new CoreAliasDialogModel(aliasModel);
98 98
         model.addListener(listener);
99
-        model.addAlias(alias1);
99
+        model.addAlias(alias1.getName(), alias1.getMinArguments(), alias1.getSubstitution());
100 100
         verify(listener).aliasAdded(alias1);
101 101
     }
102 102
 
@@ -107,27 +107,17 @@ public class CoreAliasDialogModelTest {
107 107
         final CoreAliasDialogModel model = new CoreAliasDialogModel(aliasModel);
108 108
         assertEquals(model.getAliases().size(), 1);
109 109
         assertEquals(model.getAlias("alias1").get().getMinArguments(), 0);
110
-        model.editAlias("alias1", alias2Edited);
110
+        model.editAlias("alias1", alias2Edited.getMinArguments(), alias2Edited.getSubstitution());
111 111
         assertEquals(model.getAlias("alias1").get().getMinArguments(), 1);
112 112
     }
113 113
 
114
-    @Test(expected = IllegalArgumentException.class)
115
-    public void testEditAliasFail() {
116
-        aliases.add(alias1);
117
-        when(aliasModel.getAliases()).thenReturn(aliases);
118
-        final CoreAliasDialogModel model = new CoreAliasDialogModel(aliasModel);
119
-        assertEquals(model.getAliases().size(), 1);
120
-        assertEquals(model.getAlias("alias1").get().getMinArguments(), 0);
121
-        model.editAlias("alias1", alias2);
122
-    }
123
-
124 114
     @Test
125 115
     public void testEditAliasListener() {
126 116
         aliases.add(alias1);
127 117
         when(aliasModel.getAliases()).thenReturn(aliases);
128 118
         final CoreAliasDialogModel model = new CoreAliasDialogModel(aliasModel);
129 119
         model.addListener(listener);
130
-        model.editAlias("alias1", alias2Edited);
120
+        model.editAlias("alias1", alias2Edited.getMinArguments(), alias2Edited.getSubstitution());
131 121
         verify(listener).aliasEdited("alias1");
132 122
     }
133 123
 
@@ -218,9 +208,9 @@ public class CoreAliasDialogModelTest {
218 208
         when(aliasModel.getAliases()).thenReturn(aliases);
219 209
         final CoreAliasDialogModel model = new CoreAliasDialogModel(aliasModel);
220 210
         model.addListener(listener);
221
-        model.addAlias(alias1);
211
+        model.addAlias(alias1.getName(), alias1.getMinArguments(), alias1.getSubstitution());
222 212
         model.removeListener(listener);
223
-        model.addAlias(alias2);
213
+        model.addAlias(alias2.getName(), alias2.getMinArguments(), alias2.getSubstitution());
224 214
         verify(listener).aliasAdded(alias1);
225 215
         verify(listener, never()).aliasAdded(alias2);
226 216
     }

Laden…
Annuleren
Opslaan