| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- package todo_test
- import (
- "os"
- "testing"
- "pragprog.com/rggo/interacting/todo"
- )
- func TestAdd(t *testing.T) {
- l := todo.List{}
- taskName := "New Task"
- l.Add(taskName)
- if l[0].Task != taskName {
- t.Errorf("Task name is not matching. Expected: %q, Got: %q", taskName, l[0].Task)
- }
- }
- func TestComplete(t *testing.T) {
- l := todo.List{}
- taskName := "New Task"
- l.Add(taskName)
- if l[0].Task != taskName {
- t.Errorf("Task name is not matching. Expected: %q, Got: %q", taskName, l[0].Task)
- }
- if l[0].Done {
- t.Errorf("Task should not be completed")
- }
- l.Complete(1)
- if !l[0].Done {
- t.Errorf("Task should be completed")
- }
- }
- func TestDelete(t *testing.T) {
- l := todo.List{}
- tasks := []string{
- "Task 1",
- "Task 2",
- "Task 3",
- }
- for _, task := range tasks {
- l.Add(task)
- }
- if l[0].Task != tasks[0] {
- t.Errorf("Task name is not matching. Expected: %q, Got: %q", tasks[0], l[0].Task)
- }
- l.Delete(2)
- if len(l) != 2 {
- t.Errorf("Expected list length: 2, Got: %d", len(l))
- }
- if l[1].Task != tasks[2] {
- t.Errorf("Task name is not matching. Expected: %q, Got: %q", tasks[2], l[1].Task)
- }
- }
- func TestSaveGet(t *testing.T) {
- l1 := todo.List{}
- l2 := todo.List{}
- taskName := "New Task"
- l1.Add(taskName)
- if l1[0].Task != taskName {
- t.Errorf("Task name is not matching. Expected: %q, Got: %q", taskName, l1[0].Task)
- }
- tf, err := os.CreateTemp("", "")
- if err != nil {
- t.Fatalf("Error creating temp file: %v", err)
- }
- defer os.Remove(tf.Name())
- if err := l1.Save(tf.Name()); err != nil {
- t.Fatalf("Error saving todo list: %v", err)
- }
- if err := l2.Get(tf.Name()); err != nil {
- t.Fatalf("Error getting todo list: %v", err)
- }
- if l1[0].Task != l2[0].Task {
- t.Errorf("Task name is not matching. Expected: %q, Got: %q", l1[0].Task, l2[0].Task)
- }
- }
|