Skip to content

Commit

Permalink
Update tests for AddCommand
Browse files Browse the repository at this point in the history
  • Loading branch information
jia1 committed Nov 7, 2016
1 parent 610f9f3 commit 8f13aa9
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 12 deletions.
7 changes: 5 additions & 2 deletions src/main/java/seedu/taskman/logic/commands/AddCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ public class AddCommand extends Command {

public static final String MESSAGE_SUCCESS = "New task added: %1$s";
public static final String MESSAGE_DUPLICATE_EVENT = "This task already exists in TaskMan";

public static final String MESSAGE_ADD_INVALID_COMMAND_FORMAT = MESSAGE_INVALID_COMMAND_FORMAT
+ "\n" + COMMAND_WORD + ": " + MESSAGE_USAGE;

private static final Pattern TASK_ADD_ARGS_FORMAT =
Pattern.compile("" + CommandParser.ArgumentPattern.TITLE
+ CommandParser.ArgumentPattern.OPTIONAL_DEADLINE
Expand Down Expand Up @@ -62,8 +66,7 @@ private AddCommand(String title, String deadline, String schedule, Set<String> t
public static Command prepareAdd(String args) {
final Matcher matcher = TASK_ADD_ARGS_FORMAT.matcher(args.trim());
if (!matcher.matches()) {
return new IncorrectCommand(MESSAGE_INVALID_COMMAND_FORMAT
+ "\n" + COMMAND_WORD + ": " + MESSAGE_USAGE);
return new IncorrectCommand(MESSAGE_ADD_INVALID_COMMAND_FORMAT);
}
try {
return new AddCommand(
Expand Down
30 changes: 25 additions & 5 deletions src/test/java/seedu/taskman/logic/logicmanager/AddETests.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,26 +15,46 @@ public class AddETests extends LogicManagerTestBase {
public void execute_adde_invalidArgsFormat() throws Exception {
// no args
// assertCommandNoStateChange("adde");
assertCommandBehavior(AddECommand.COMMAND_WORD, AddECommand.MESSAGE_ADDE_INVALID_COMMAND_FORMAT);
assertCommandBehavior(
AddECommand.COMMAND_WORD,
AddECommand.MESSAGE_ADDE_INVALID_COMMAND_FORMAT,
new TaskMan(model.getTaskMan())
);

// non-existent flag
// assertCommandNoStateChange("adde x/");
assertCommandBehavior(AddECommand.COMMAND_WORD + " x/", AddECommand.MESSAGE_ADDE_INVALID_COMMAND_FORMAT);
assertCommandBehavior(
AddECommand.COMMAND_WORD + " x/",
AddECommand.MESSAGE_ADDE_INVALID_COMMAND_FORMAT,
new TaskMan(model.getTaskMan())
);

// non-existent flag
// assertCommandNoStateChange("adde d/");
assertCommandBehavior(AddECommand.COMMAND_WORD + " d/", AddECommand.MESSAGE_ADDE_INVALID_COMMAND_FORMAT);
assertCommandBehavior(
AddECommand.COMMAND_WORD + " d/",
AddECommand.MESSAGE_ADDE_INVALID_COMMAND_FORMAT,
new TaskMan(model.getTaskMan())
);
}

@Test
public void execute_adde_invalidTaskData() throws Exception {
// bad schedule
// assertCommandNoStateChange("adde valid title s/invalid schedule");
assertCommandBehavior(AddECommand.COMMAND_WORD + " valid title s/invalid schedule", Schedule.MESSAGE_SCHEDULE_CONSTRAINTS);
assertCommandBehavior(
AddECommand.COMMAND_WORD + " valid title s/invalid schedule",
Schedule.MESSAGE_SCHEDULE_CONSTRAINTS,
new TaskMan(model.getTaskMan())
);

// bad title
// assertCommandNoStateChange("adde []\\[;]");
assertCommandBehavior(AddECommand.COMMAND_WORD + " []\\[;]", Title.MESSAGE_TITLE_CONSTRAINTS);
assertCommandBehavior(
AddECommand.COMMAND_WORD + " []\\[;]",
Title.MESSAGE_TITLE_CONSTRAINTS,
new TaskMan(model.getTaskMan())
);
}

@Test
Expand Down
48 changes: 43 additions & 5 deletions src/test/java/seedu/taskman/logic/logicmanager/AddTests.java
Original file line number Diff line number Diff line change
@@ -1,29 +1,52 @@
package seedu.taskman.logic.logicmanager;

import org.junit.Test;
import seedu.taskman.logic.commands.AddCommand;
import seedu.taskman.model.TaskMan;
import seedu.taskman.model.event.Schedule;
import seedu.taskman.model.event.Task;
import seedu.taskman.model.event.Title;

public class AddTests extends LogicManagerTestBase {
@Test
public void execute_add_invalidArgsFormat() throws Exception {
// no args
assertCommandNoStateChange("add");
// assertCommandNoStateChange("add");
assertCommandBehavior(
AddCommand.COMMAND_WORD,
AddCommand.MESSAGE_ADD_INVALID_COMMAND_FORMAT,
new TaskMan(model.getTaskMan())
);

// non-existent flag
assertCommandNoStateChange("add x/");
// assertCommandNoStateChange("add x/");
assertCommandBehavior(
AddCommand.COMMAND_WORD + " x/",
AddCommand.MESSAGE_ADD_INVALID_COMMAND_FORMAT,
new TaskMan(model.getTaskMan())
);
}

@Test
public void execute_add_invalidTaskData() throws Exception {
// bad deadline
assertCommandNoStateChange("add Valid Title d/invalid Deadline");
// assertCommandNoStateChange("add valid title d/invalid deadline");

// bad schedule
assertCommandNoStateChange("add Valid Title s/invalid Schedule");
// assertCommandNoStateChange("add valid title s/invalid schedule");
assertCommandBehavior(
AddCommand.COMMAND_WORD + " valid title s/invalid schedule",
Schedule.MESSAGE_SCHEDULE_CONSTRAINTS,
new TaskMan(model.getTaskMan())
);

// bad title
assertCommandNoStateChange("add []\\[;]");
// assertCommandNoStateChange("add []\\[;]");
assertCommandBehavior(
AddCommand.COMMAND_WORD + " []\\[;]",
Title.MESSAGE_TITLE_CONSTRAINTS,
new TaskMan(model.getTaskMan())
);
}

@Test
Expand All @@ -34,9 +57,17 @@ public void execute_add_successful() throws Exception {
TaskMan expectedTaskMan = new TaskMan();
expectedTaskMan.addActivity(toBeAdded);

/*
assertCommandStateChange(helper.generateAddCommand(toBeAdded),
expectedTaskMan
);
*/

assertCommandBehavior(
helper.generateAddCommand(toBeAdded),
String.format(AddCommand.MESSAGE_SUCCESS, toBeAdded),
expectedTaskMan
);
}

@Test
Expand All @@ -51,10 +82,17 @@ public void execute_addDuplicate_notAllowed() throws Exception {
model.addActivity(toBeAdded);

// execute command and verify result
/*
assertCommandStateChange(
helper.generateAddCommand(toBeAdded),
expectedTaskMan
);
*/

assertCommandBehavior(
helper.generateAddCommand(toBeAdded),
AddCommand.MESSAGE_DUPLICATE_EVENT,
expectedTaskMan
);
}
}

0 comments on commit 8f13aa9

Please sign in to comment.