Fixed a bug with adding multiple lists in (), cleaned up tests some more

pull/14/head
Sam Bosley 13 years ago
parent 06381f4fb5
commit 6eb564ff00

@ -29,14 +29,15 @@ public class TitleParser {
priorityHelper(task); priorityHelper(task);
} }
public static String trimParenthesis(String pattern){ public static String[] trimParenthesisAndSplit(String pattern){
if (pattern.charAt(0) == '#' || pattern.charAt(0) == '@') { if (pattern.charAt(0) == '#' || pattern.charAt(0) == '@') {
pattern = pattern.substring(1); pattern = pattern.substring(1);
} }
if ('(' == pattern.charAt(0)) { if ('(' == pattern.charAt(0)) {
return pattern.substring(1, pattern.length()-2); String lists = pattern.substring(1, pattern.length()-1);
return lists.split("\\s+");
} }
return pattern; return new String[] { pattern };
} }
public static void listHelper(Task task, ArrayList<String> tags) { public static void listHelper(Task task, ArrayList<String> tags) {
String inputText = task.getValue(Task.TITLE); String inputText = task.getValue(Task.TITLE);
@ -46,12 +47,20 @@ public class TitleParser {
while(true) { while(true) {
Matcher m = tagPattern.matcher(inputText); Matcher m = tagPattern.matcher(inputText);
if(m.find()) { if(m.find()) {
tags.add(TitleParser.trimParenthesis(m.group(2))); String[] splitTags = TitleParser.trimParenthesisAndSplit(m.group(2));
if (splitTags != null) {
for (String tag : splitTags)
tags.add(tag);
}
} else { } else {
m = contextPattern.matcher(inputText); m = contextPattern.matcher(inputText);
if(m.find()) { if(m.find()) {
tags.add(TitleParser.trimParenthesis(m.group(2))); String[] splitTags = TitleParser.trimParenthesisAndSplit(m.group(2));
}else{ if (splitTags != null) {
for (String tag : splitTags)
tags.add(tag);
}
} else{
break; break;
} }
} }

@ -39,7 +39,6 @@ public class TitleParserTest extends DatabaseTestCase {
public void testMonthDate() { public void testMonthDate() {
TaskService taskService = new TaskService(); TaskService taskService = new TaskService();
Task task = new Task(); Task task = new Task();
Task nothing = new Task();
String[] titleMonthStrings = { String[] titleMonthStrings = {
"Jan.", "January", "Jan.", "January",
"Feb.", "February", "Feb.", "February",
@ -66,7 +65,6 @@ public class TitleParserTest extends DatabaseTestCase {
public void testMonthSlashDay() { public void testMonthSlashDay() {
TaskService taskService = new TaskService(); TaskService taskService = new TaskService();
Task task = new Task(); Task task = new Task();
Task nothing = new Task();
for (int i = 1; i < 13; i++) { for (int i = 1; i < 13; i++) {
String testTitle = "Jog on " + i + "/12/13"; String testTitle = "Jog on " + i + "/12/13";
insertTitleAddTask(testTitle, task, taskService); insertTitleAddTask(testTitle, task, taskService);
@ -80,7 +78,6 @@ public class TitleParserTest extends DatabaseTestCase {
public void testArmyTime() { public void testArmyTime() {
TaskService taskService = new TaskService(); TaskService taskService = new TaskService();
Task task = new Task(); Task task = new Task();
Task nothing = new Task();
String testTitle = "Jog on 23:21."; String testTitle = "Jog on 23:21.";
insertTitleAddTask(testTitle, task, taskService); insertTitleAddTask(testTitle, task, taskService);
Date date = new Date(task.getValue(Task.DUE_DATE)); Date date = new Date(task.getValue(Task.DUE_DATE));
@ -91,7 +88,6 @@ public class TitleParserTest extends DatabaseTestCase {
public void test_AM_PM() { public void test_AM_PM() {
TaskService taskService = new TaskService(); TaskService taskService = new TaskService();
Task task = new Task(); Task task = new Task();
Task nothing = new Task();
String testTitle = "Jog at 8:33 PM."; String testTitle = "Jog at 8:33 PM.";
insertTitleAddTask(testTitle, task, taskService); insertTitleAddTask(testTitle, task, taskService);
Date date = new Date(task.getValue(Task.DUE_DATE)); Date date = new Date(task.getValue(Task.DUE_DATE));
@ -102,7 +98,6 @@ public class TitleParserTest extends DatabaseTestCase {
public void test_at_hour() { public void test_at_hour() {
TaskService taskService = new TaskService(); TaskService taskService = new TaskService();
Task task = new Task(); Task task = new Task();
Task nothing = new Task();
String testTitle = "Jog at 8 PM."; String testTitle = "Jog at 8 PM.";
insertTitleAddTask(testTitle, task, taskService); insertTitleAddTask(testTitle, task, taskService);
Date date = new Date(task.getValue(Task.DUE_DATE)); Date date = new Date(task.getValue(Task.DUE_DATE));
@ -113,7 +108,6 @@ public class TitleParserTest extends DatabaseTestCase {
public void test_oclock_AM() { public void test_oclock_AM() {
TaskService taskService = new TaskService(); TaskService taskService = new TaskService();
Task task = new Task(); Task task = new Task();
Task nothing = new Task();
String testTitle = "Jog at 8 o'clock AM."; String testTitle = "Jog at 8 o'clock AM.";
insertTitleAddTask(testTitle, task, taskService); insertTitleAddTask(testTitle, task, taskService);
Date date = new Date(task.getValue(Task.DUE_DATE)); Date date = new Date(task.getValue(Task.DUE_DATE));
@ -124,7 +118,6 @@ public class TitleParserTest extends DatabaseTestCase {
public void test_several_forms_of_eight() { public void test_several_forms_of_eight() {
TaskService taskService = new TaskService(); TaskService taskService = new TaskService();
Task task = new Task(); Task task = new Task();
Task nothing = new Task();
String[] testTitles = { String[] testTitles = {
"Jog 8 AM", "Jog 8 AM",
"Jog 8 o'clock AM", "Jog 8 o'clock AM",
@ -141,7 +134,6 @@ public class TitleParserTest extends DatabaseTestCase {
public void test_several_forms_of_1230PM() { public void test_several_forms_of_1230PM() {
TaskService taskService = new TaskService(); TaskService taskService = new TaskService();
Task task = new Task(); Task task = new Task();
Task nothing = new Task();
String[] testTitles = { String[] testTitles = {
"Jog 12:30 PM", "Jog 12:30 PM",
"at 12:30 PM", "at 12:30 PM",
@ -515,14 +507,16 @@ public class TitleParserTest extends DatabaseTestCase {
"#(a cool tag)", "#(a cool tag)",
"#(cool)" "#(cool)"
}; };
TaskService taskService = new TaskService();
Task task = new Task(); Task task = new Task();
for (String acceptedString:acceptedStrings){ for (String acceptedString:acceptedStrings){
task = new Task(); task = new Task();
task.setValue(Task.TITLE, "Jog " + acceptedString); //test at end of task. should set importance. task.setValue(Task.TITLE, "Jog " + acceptedString); //test at end of task. should set importance.
ArrayList<String> tags = new ArrayList<String>(); ArrayList<String> tags = new ArrayList<String>();
TitleParser.listHelper(task, tags); TitleParser.listHelper(task, tags);
assertTrue("test pound at failed for string: " + acceptedString + " for tags: " + tags.toString(),tags.contains(TitleParser.trimParenthesis(acceptedString))); String[] splitTags = TitleParser.trimParenthesisAndSplit(acceptedString);
for (String tag : splitTags) {
assertTrue("test pound at failed for string: " + acceptedString + " for tags: " + tags.toString(),tags.contains(tag));
}
} }
} }
@ -534,14 +528,16 @@ public class TitleParserTest extends DatabaseTestCase {
"@(a cool tag)", "@(a cool tag)",
"@(cool)" "@(cool)"
}; };
TaskService taskService = new TaskService();
Task task = new Task(); Task task = new Task();
for (String acceptedString:acceptedStrings){ for (String acceptedString:acceptedStrings){
task = new Task(); task = new Task();
task.setValue(Task.TITLE, "Jog " + acceptedString); //test at end of task. should set importance. task.setValue(Task.TITLE, "Jog " + acceptedString); //test at end of task. should set importance.
ArrayList<String> tags = new ArrayList<String>(); ArrayList<String> tags = new ArrayList<String>();
TitleParser.listHelper(task, tags); TitleParser.listHelper(task, tags);
assertTrue("testTagsAt failed for string: " + acceptedString+ " for tags: " + tags.toString(),tags.contains(TitleParser.trimParenthesis(acceptedString))); String[] splitTags = TitleParser.trimParenthesisAndSplit(acceptedString);
for (String tag : splitTags) {
assertTrue("testTagsAt failed for string: " + acceptedString+ " for tags: " + tags.toString(), tags.contains(tag));
}
} }
} }

Loading…
Cancel
Save