aboutsummaryrefslogtreecommitdiffstats
path: root/todolist/parser_test.go
diff options
context:
space:
mode:
authorQuey-Liang Kao <s101062801@m101.nthu.edu.tw>2017-09-21 12:16:10 -0500
committerGitHub <noreply@github.com>2017-09-21 12:16:10 -0500
commit902d0f825abc3a18278aadc2a8c3cd45dd8d308d (patch)
treec08037986e9981ebd8e56fe8dd851fa99fcd4c32 /todolist/parser_test.go
parent06211d84da190ab9a5e174db9f52672b69f9b3e4 (diff)
parenta716a04c831e4fb23cdd558756d8f393e4ef8d73 (diff)
Merge pull request #89 from NonerKao/note
Add new feature: notes for todos
Diffstat (limited to 'todolist/parser_test.go')
-rw-r--r--todolist/parser_test.go90
1 files changed, 90 insertions, 0 deletions
diff --git a/todolist/parser_test.go b/todolist/parser_test.go
index 476edaa..313ad9f 100644
--- a/todolist/parser_test.go
+++ b/todolist/parser_test.go
@@ -74,6 +74,96 @@ func TestParseContexts(t *testing.T) {
}
}
+func TestParseAddNote(t *testing.T) {
+ parser := &Parser{}
+ todo := parser.ParseNewTodo("add write the test functions")
+
+ b1 := parser.ParseAddNote(todo, "an 1 TestPasrseAddNote")
+ b2 := parser.ParseAddNote(todo, "an 1 TestPasrseDeleteNote")
+ b3 := parser.ParseAddNote(todo, "an 1 TestPasrseEditNote")
+
+ if !b1 || !b2 || !b3 {
+ t.Error("Fail adding notes, expected 3 notes but", len(todo.Notes))
+ }
+}
+
+func TestParseDeleteNote(t *testing.T) {
+ parser := &Parser{}
+ todo := parser.ParseNewTodo("add buy notebook")
+
+ todo.Notes = append(todo.Notes, "ASUStek")
+ todo.Notes = append(todo.Notes, "Apple")
+ todo.Notes = append(todo.Notes, "Dell")
+ todo.Notes = append(todo.Notes, "Acer")
+
+ b1 := parser.ParseDeleteNote(todo, "dn 1 1")
+ b2 := parser.ParseDeleteNote(todo, "dn 1 1")
+
+ if !b1 || !b2 {
+ t.Error("Fail deleting notes, expected 2 notes left but", len(todo.Notes))
+ }
+
+ if todo.Notes[0] != "ASUStek" || todo.Notes[1] != "Acer" {
+ t.Error("Fail deleting notes,", todo.Notes[0], "and", todo.Notes[1], "are left")
+ }
+}
+
+func TestParseEditNote(t *testing.T) {
+ parser := &Parser{}
+ todo := parser.ParseNewTodo("add record the weather")
+
+ todo.Notes = append(todo.Notes, "Aug 29 Wed")
+ todo.Notes = append(todo.Notes, "Cloudy")
+ todo.Notes = append(todo.Notes, "40°C")
+ todo.Notes = append(todo.Notes, "Tokyo")
+
+ parser.ParseEditNote(todo, "en 1 0 Aug 29 Tue")
+ if todo.Notes[0] != "Aug 29 Tue" {
+ t.Error("Fail editing notes, note 0 should be \"Aug 29 Tue\" but got", todo.Notes[0])
+ }
+
+ parser.ParseEditNote(todo, "en 1 1 Sunny")
+ if todo.Notes[1] != "Sunny" {
+ t.Error("Fail editing notes, note 1 should be \"Sunny\" but got", todo.Notes[1])
+ }
+
+ parser.ParseEditNote(todo, "en 1 2 22°C")
+ if todo.Notes[2] != "22°C" {
+ t.Error("Fail editing notes, note 2 should be \"22°C\" but got", todo.Notes[2])
+ }
+
+ parser.ParseEditNote(todo, "en 1 3 Seoul")
+ if todo.Notes[3] != "Seoul" {
+ t.Error("Fail editing notes, note 3 should be \"Seoul\" but got", todo.Notes[3])
+ }
+}
+
+func TestHandleNotes(t *testing.T) {
+ parser := &Parser{}
+ todo := parser.ParseNewTodo("add search engine survey")
+
+ if !parser.ParseAddNote(todo, "an 1 www.google.com") {
+ t.Error("Expected Notes to be added")
+ }
+ if todo.Notes[0] != "www.google.com" {
+ t.Error("Expected note 1 to be 'www.google.com' but got", todo.Notes[0])
+ }
+
+ if !parser.ParseEditNote(todo, "en 1 0 www.duckduckgo.com") {
+ t.Error("Expected Notes to be editted")
+ }
+ if todo.Notes[0] != "www.duckduckgo.com" {
+ t.Error("Expected note 1 to be 'www.duckduckgo.com' but got", todo.Notes[0])
+ }
+
+ if !parser.ParseDeleteNote(todo, "dn 1 0") {
+ t.Error("Expected Notes to be deleted")
+ }
+ if len(todo.Notes) != 0 {
+ t.Error("Expected no note")
+ }
+}
+
func TestDueToday(t *testing.T) {
assert := assert.New(t)
parser := &Parser{}