| 79 | } |
| 80 | |
| 81 | func TestResponsesList(t *testing.T) { |
| 82 | rl := NewResponsesList() |
| 83 | rl.Add("200", &Response{Status: 200}). |
| 84 | Add("201", &Response{Status: 201}). |
| 85 | Add("404", &Response{Status: 404}). |
| 86 | Add("500", &Response{Status: 500}) |
| 87 | |
| 88 | t.Run("Len()", func(t *testing.T) { |
| 89 | assert.Equal(t, 4, rl.Len()) |
| 90 | }) |
| 91 | |
| 92 | t.Run("Get()", func(t *testing.T) { |
| 93 | assert.Equal(t, 200, rl.Get("200").Status) |
| 94 | assert.Equal(t, 201, rl.Get("201").Status) |
| 95 | assert.Equal(t, 404, rl.Get("404").Status) |
| 96 | assert.Equal(t, 500, rl.Get("500").Status) |
| 97 | }) |
| 98 | |
| 99 | t.Run("Indexing", func(t *testing.T) { |
| 100 | assert.Equal(t, 200, rl.Cur().Status) |
| 101 | assert.Equal(t, 0, rl.Index()) |
| 102 | |
| 103 | rl.Next() |
| 104 | assert.Equal(t, 201, rl.Cur().Status) |
| 105 | assert.Equal(t, 1, rl.Index()) |
| 106 | |
| 107 | rl.Next() |
| 108 | assert.Equal(t, 404, rl.Cur().Status) |
| 109 | assert.Equal(t, 2, rl.Index()) |
| 110 | |
| 111 | rl.Next() |
| 112 | assert.Equal(t, 500, rl.Cur().Status) |
| 113 | assert.Equal(t, 3, rl.Index()) |
| 114 | |
| 115 | rl.Next() |
| 116 | assert.Equal(t, 200, rl.Cur().Status) |
| 117 | assert.Equal(t, 0, rl.Index()) |
| 118 | |
| 119 | rl.Prev() |
| 120 | assert.Equal(t, 500, rl.Cur().Status) |
| 121 | assert.Equal(t, 3, rl.Index()) |
| 122 | |
| 123 | rl.Prev() |
| 124 | assert.Equal(t, 404, rl.Cur().Status) |
| 125 | assert.Equal(t, 2, rl.Index()) |
| 126 | }) |
| 127 | |
| 128 | t.Run("Del()", func(t *testing.T) { |
| 129 | for _, status := range []string{"200", "201", "404", "500"} { |
| 130 | assert.NotNil(t, rl.Get(status)) |
| 131 | rl.Del(status) |
| 132 | assert.Nil(t, rl.Get(status)) |
| 133 | } |
| 134 | }) |
| 135 | } |
| 136 | |
| 137 | func TestLoadFromJSON(t *testing.T) { |
| 138 | rl := NewResponsesList() |