25
25
import seedu .address .logic .commands .ListCommand ;
26
26
import seedu .address .logic .commands .StartCommand ;
27
27
import seedu .address .logic .parser .exceptions .ParseException ;
28
+ import seedu .address .model .exceptions .InvalidScopeException ;
28
29
import seedu .address .model .project .NameContainsKeywordsPredicate ;
29
30
import seedu .address .model .project .Project ;
31
+ import seedu .address .model .project .Status ;
30
32
import seedu .address .testutil .EditProjectDescriptorBuilder ;
31
33
import seedu .address .testutil .ProjectBuilder ;
32
34
import seedu .address .testutil .ProjectUtil ;
@@ -38,20 +40,20 @@ public class MainCatalogueParserTest {
38
40
@ Test
39
41
public void parseCommand_add () throws Exception {
40
42
Project project = new ProjectBuilder ().build ();
41
- AddCommand command = (AddCommand ) parser .parseCommand (ProjectUtil .getAddCommand (project ));
43
+ AddCommand command = (AddCommand ) parser .parseCommand (ProjectUtil .getAddCommand (project ), Status . CATALOGUE );
42
44
assertEquals (new AddCommand (project ), command );
43
45
}
44
46
45
47
@ Test
46
48
public void parseCommand_clear () throws Exception {
47
- assertTrue (parser .parseCommand (ClearCommand .COMMAND_WORD ) instanceof ClearCommand );
48
- assertTrue (parser .parseCommand (ClearCommand .COMMAND_WORD + " 3" ) instanceof ClearCommand );
49
+ assertTrue (parser .parseCommand (ClearCommand .COMMAND_WORD , Status . CATALOGUE ) instanceof ClearCommand );
50
+ assertTrue (parser .parseCommand (ClearCommand .COMMAND_WORD + " 3" , Status . CATALOGUE ) instanceof ClearCommand );
49
51
}
50
52
51
53
@ Test
52
54
public void parseCommand_delete () throws Exception {
53
55
DeleteCommand command = (DeleteCommand ) parser .parseCommand (
54
- DeleteCommand .COMMAND_WORD + " " + INDEX_FIRST_PROJECT .getOneBased ());
56
+ DeleteCommand .COMMAND_WORD + " " + INDEX_FIRST_PROJECT .getOneBased (), Status . CATALOGUE );
55
57
assertEquals (new DeleteCommand (INDEX_FIRST_PROJECT ), command );
56
58
}
57
59
@@ -60,57 +62,124 @@ public void parseCommand_edit() throws Exception {
60
62
Project project = new ProjectBuilder ().build ();
61
63
EditProjectDescriptor descriptor = new EditProjectDescriptorBuilder (project ).build ();
62
64
EditCommand command = (EditCommand ) parser .parseCommand (EditCommand .COMMAND_WORD + " "
63
- + INDEX_FIRST_PROJECT .getOneBased () + " " + ProjectUtil .getEditProjectDescriptorDetails (descriptor ));
65
+ + INDEX_FIRST_PROJECT .getOneBased () + " " + ProjectUtil .getEditProjectDescriptorDetails (descriptor ),
66
+ Status .CATALOGUE );
64
67
assertEquals (new EditCommand (INDEX_FIRST_PROJECT , descriptor ), command );
65
68
}
66
69
67
70
@ Test
68
71
public void parseCommand_exit () throws Exception {
69
- assertTrue (parser .parseCommand (ExitCommand .COMMAND_WORD ) instanceof ExitCommand );
70
- assertTrue (parser .parseCommand (ExitCommand .COMMAND_WORD + " 3" ) instanceof ExitCommand );
72
+ assertTrue (parser .parseCommand (ExitCommand .COMMAND_WORD , Status .CATALOGUE ) instanceof ExitCommand );
73
+ assertTrue (parser .parseCommand (ExitCommand .COMMAND_WORD + " 3" , Status .CATALOGUE ) instanceof ExitCommand );
74
+ assertTrue (parser .parseCommand (ExitCommand .COMMAND_WORD , Status .PROJECT ) instanceof ExitCommand );
75
+ assertTrue (parser .parseCommand (ExitCommand .COMMAND_WORD + " 3" , Status .PROJECT ) instanceof ExitCommand );
71
76
}
72
77
73
78
@ Test
74
79
public void parseCommand_find () throws Exception {
75
80
List <String > keywords = Arrays .asList ("foo" , "bar" , "baz" );
76
81
FindCommand command = (FindCommand ) parser .parseCommand (
77
- FindCommand .COMMAND_WORD + " " + keywords .stream ().collect (Collectors .joining (" " )));
82
+ FindCommand .COMMAND_WORD + " " + keywords .stream ().collect (Collectors .joining (" " )), Status . CATALOGUE );
78
83
assertEquals (new FindCommand (new NameContainsKeywordsPredicate (keywords )), command );
79
84
}
80
85
81
86
@ Test
82
87
public void parseCommand_help () throws Exception {
83
- assertTrue (parser .parseCommand (HelpCommand .COMMAND_WORD ) instanceof HelpCommand );
84
- assertTrue (parser .parseCommand (HelpCommand .COMMAND_WORD + " 3" ) instanceof HelpCommand );
88
+ assertTrue (parser .parseCommand (HelpCommand .COMMAND_WORD , Status .CATALOGUE ) instanceof HelpCommand );
89
+ assertTrue (parser .parseCommand (HelpCommand .COMMAND_WORD + " 3" , Status .CATALOGUE ) instanceof HelpCommand );
90
+ assertTrue (parser .parseCommand (HelpCommand .COMMAND_WORD , Status .PROJECT ) instanceof HelpCommand );
91
+ assertTrue (parser .parseCommand (HelpCommand .COMMAND_WORD + " 3" , Status .PROJECT ) instanceof HelpCommand );
85
92
}
86
93
87
94
@ Test
88
95
public void parseCommand_list () throws Exception {
89
- assertTrue (parser .parseCommand (ListCommand .COMMAND_WORD ) instanceof ListCommand );
90
- assertTrue (parser .parseCommand (ListCommand .COMMAND_WORD + " 3" ) instanceof ListCommand );
96
+ assertTrue (parser .parseCommand (ListCommand .COMMAND_WORD , Status . CATALOGUE ) instanceof ListCommand );
97
+ assertTrue (parser .parseCommand (ListCommand .COMMAND_WORD + " 3" , Status . CATALOGUE ) instanceof ListCommand );
91
98
}
92
99
93
100
@ Test
94
101
public void parseCommand_start () throws Exception {
95
102
StartCommand command = (StartCommand ) parser .parseCommand (
96
- StartCommand .COMMAND_WORD + " " + INDEX_FIRST_PROJECT .getOneBased ());
103
+ StartCommand .COMMAND_WORD + " " + INDEX_FIRST_PROJECT .getOneBased (), Status . CATALOGUE );
97
104
assertEquals (new StartCommand (INDEX_FIRST_PROJECT ), command );
98
105
}
99
106
100
107
@ Test
101
108
public void parseCommand_leave () throws Exception {
102
- assertTrue (parser .parseCommand (LeaveCommand .COMMAND_WORD ) instanceof LeaveCommand );
103
- assertTrue (parser .parseCommand (LeaveCommand .COMMAND_WORD + " 3" ) instanceof LeaveCommand );
109
+ assertTrue (parser .parseCommand (LeaveCommand .COMMAND_WORD , Status . PROJECT ) instanceof LeaveCommand );
110
+ assertTrue (parser .parseCommand (LeaveCommand .COMMAND_WORD + " 3" , Status . PROJECT ) instanceof LeaveCommand );
104
111
}
105
112
106
113
@ Test
107
114
public void parseCommand_unrecognisedInput_throwsParseException () {
108
115
assertThrows (ParseException .class , String .format (MESSAGE_INVALID_COMMAND_FORMAT , HelpCommand .MESSAGE_USAGE ), ()
109
- -> parser .parseCommand ("" ));
116
+ -> parser .parseCommand ("" , Status . CATALOGUE ));
110
117
}
111
118
112
119
@ Test
113
120
public void parseCommand_unknownCommand_throwsParseException () {
114
- assertThrows (ParseException .class , MESSAGE_UNKNOWN_COMMAND , () -> parser .parseCommand ("unknownCommand" ));
121
+ assertThrows (ParseException .class , MESSAGE_UNKNOWN_COMMAND , () -> parser .parseCommand ("unknownCommand" ,
122
+ Status .CATALOGUE ));
123
+ }
124
+
125
+ @ Test
126
+ public void parseCommand_invalidScope_throwsInvalidScopeException () {
127
+ try {
128
+ Project project = new ProjectBuilder ().build ();
129
+ parser .parseCommand (ProjectUtil .getAddCommand (project ), Status .PROJECT );
130
+ } catch (Exception e ) {
131
+ assertEquals (new InvalidScopeException (Status .CATALOGUE , Status .PROJECT ), e );
132
+ }
133
+
134
+ try {
135
+ parser .parseCommand (ClearCommand .COMMAND_WORD , Status .PROJECT );
136
+ } catch (Exception e ) {
137
+ assertEquals (new InvalidScopeException (Status .CATALOGUE , Status .PROJECT ), e );
138
+ }
139
+
140
+ try {
141
+ parser .parseCommand (
142
+ DeleteCommand .COMMAND_WORD + " " + INDEX_FIRST_PROJECT .getOneBased (), Status .PROJECT );
143
+ } catch (Exception e ) {
144
+ assertEquals (new InvalidScopeException (Status .CATALOGUE , Status .PROJECT ), e );
145
+ }
146
+
147
+ try {
148
+ Project project = new ProjectBuilder ().build ();
149
+ EditProjectDescriptor descriptor = new EditProjectDescriptorBuilder (project ).build ();
150
+ parser .parseCommand (EditCommand .COMMAND_WORD + " " + INDEX_FIRST_PROJECT .getOneBased ()
151
+ + " " + ProjectUtil .getEditProjectDescriptorDetails (descriptor ),
152
+ Status .PROJECT );
153
+ } catch (Exception e ) {
154
+ assertEquals (new InvalidScopeException (Status .CATALOGUE , Status .PROJECT ), e );
155
+ }
156
+
157
+ try {
158
+ List <String > keywords = Arrays .asList ("foo" , "bar" , "baz" );
159
+ parser .parseCommand (
160
+ FindCommand .COMMAND_WORD + " " + keywords .stream ().collect (Collectors .joining (" " )),
161
+ Status .CATALOGUE );
162
+ } catch (Exception e ) {
163
+ assertEquals (new InvalidScopeException (Status .CATALOGUE , Status .PROJECT ), e );
164
+ }
165
+
166
+ try {
167
+ parser .parseCommand (ListCommand .COMMAND_WORD , Status .PROJECT );
168
+ } catch (Exception e ) {
169
+ assertEquals (new InvalidScopeException (Status .CATALOGUE , Status .PROJECT ), e );
170
+ }
171
+
172
+ try {
173
+ parser .parseCommand (
174
+ StartCommand .COMMAND_WORD + " " + INDEX_FIRST_PROJECT .getOneBased (), Status .PROJECT );
175
+ } catch (Exception e ) {
176
+ assertEquals (new InvalidScopeException (Status .CATALOGUE , Status .PROJECT ), e );
177
+ }
178
+
179
+ try {
180
+ parser .parseCommand (LeaveCommand .COMMAND_WORD , Status .CATALOGUE );
181
+ } catch (Exception e ) {
182
+ assertEquals (new InvalidScopeException (Status .PROJECT , Status .CATALOGUE ), e );
183
+ }
115
184
}
116
185
}
0 commit comments