package ajax import ( "local/todo-server/server/ajax/list" "local/todo-server/server/ajax/task" "net/http/httptest" "testing" ) func TestAjaxStorageCur(t *testing.T) { ajax := mockAjax() r := httptest.NewRequest("POST", "/?id=abc&list=def", nil) listID, taskID, tags := ajax.Cur(r) if listID != "def" { t.Error(listID) } if taskID != "abc" { t.Error(taskID) } if len(tags) != 0 { t.Error(tags) } } func TestAjaxStorageListLists(t *testing.T) { ajax := mockAjax() ajax.storageSetList(&list.List{UUID: "b", Name: "x"}) ajax.storageSetList(&list.List{UUID: "c", Name: "y"}) ajax.storageSetList(&list.List{UUID: "d", Name: "z"}) filter := func(list *list.List) bool { return list.Name == "x" || list.Name == "y" } if results, err := ajax.storageListLists(); err != nil { t.Error(err) } else if len(results) < 3 { t.Error(results) } if results, err := ajax.storageListLists(filter); err != nil { t.Error(err) } else if len(results) != 2 { t.Error(results) } } func TestAjaxStorageListTasks(t *testing.T) { ajax := mockAjax() ajax.storageSetTask("a", &task.Task{UUID: "b", Title: "x"}) ajax.storageSetTask("a", &task.Task{UUID: "c", Title: "y"}) ajax.storageSetTask("a", &task.Task{UUID: "d", Title: "z"}) filter := func(task *task.Task) bool { return task.Title == "x" || task.Title == "y" } if results, err := ajax.storageListTasks("a"); err != nil { t.Error(err) } else if len(results) != 3 { t.Error(results) } if results, err := ajax.storageListTasks("a", filter); err != nil { t.Error(err) } else if len(results) != 2 { t.Error(results) } } func TestAjaxStorageGetSetDelTask(t *testing.T) { ajax := mockAjax() if _, err := ajax.storageGetTask("b"); err == nil { t.Error(err) } else if err := ajax.storageSetTask("a", &task.Task{UUID: "b", Title: "c"}); err != nil { t.Error(err) } else if task, err := ajax.storageGetTask("b"); err != nil { t.Error(err) } else if task.Title != "c" { t.Error(err) } else if err := ajax.storageDelTask("b"); err != nil { t.Error(err) } else if _, err := ajax.storageGetTask("b"); err == nil { t.Error(err) } } func TestAjaxStorageGetSetDelList(t *testing.T) { ajax := mockAjax() if _, err := ajax.storageGetList("a"); err == nil { t.Error(err) } else if err := ajax.storageSetList(&list.List{UUID: "a", Name: "b"}); err != nil { t.Error(err) } else if List, err := ajax.storageGetList("a"); err != nil { t.Error(err) } else if List.Name != "b" { t.Error(err) } else if err := ajax.storageDelList("a"); err != nil { t.Error(err) } else if _, err := ajax.storageGetList("a"); err == nil { t.Error(err) } }