TestEnqueueFull validates the Enqueue functionality when full.
(t *testing.T)
| 162 | |
| 163 | // TestEnqueueFull validates the Enqueue functionality when full. |
| 164 | func TestEnqueueFull(t *testing.T) { |
| 165 | t.Log("Given the need to test Enqueue functionality for being full.") |
| 166 | { |
| 167 | const items = 5 |
| 168 | t.Logf("\tTest 0:\tWhen enqueuing %d items", items) |
| 169 | { |
| 170 | q, err := queue.New(items) |
| 171 | if err != nil { |
| 172 | t.Fatalf("\t%s\tTest 0:\tShould be able to create a queue for %d items : %v", failed, items, err) |
| 173 | } |
| 174 | t.Logf("\t%s\tTest 0:\tShould be able to create a queue for %d items.", succeed, items) |
| 175 | |
| 176 | for i := 0; i < items; i++ { |
| 177 | if err := q.Enqueue(&queue.Data{Name: "test"}); err != nil { |
| 178 | t.Fatalf("\t%s\tTest 0:\tShould be able to enqueue item %d in the queue : %v", failed, i+1, err) |
| 179 | } |
| 180 | } |
| 181 | t.Logf("\t%s\tShould be able to enqueue %d items in the queue.", succeed, items) |
| 182 | |
| 183 | if q.Count != items { |
| 184 | t.Logf("\t%s\tTest 0:\tShould be able to see queue is full.", failed) |
| 185 | t.Fatalf("\t\tTest 0:\tGot %d, Expected %d.", q.Count, items) |
| 186 | } |
| 187 | t.Logf("\t%s\tTest 0:\tShould be able to see queue is full.", succeed) |
| 188 | |
| 189 | if err := q.Enqueue(&queue.Data{Name: "test"}); err == nil { |
| 190 | t.Fatalf("\t%s\tTest 0:\tShould not be able to enqueue another item in the queue.", failed) |
| 191 | } |
| 192 | t.Logf("\t%s\tTest 0:\tShould not be able to enqueue another item in the queue.", succeed) |
| 193 | |
| 194 | for i := 0; i < items-1; i++ { |
| 195 | if _, err := q.Dequeue(); err != nil { |
| 196 | t.Fatalf("\t%s\tTest 0:\tShould be able to dequeue item %d from the queue : %v", failed, i+1, err) |
| 197 | } |
| 198 | } |
| 199 | t.Logf("\t%s\tTest 0:\tShould be able to dequeue %d items from the queue.", succeed, items-1) |
| 200 | |
| 201 | for i := 0; i < items-1; i++ { |
| 202 | if err := q.Enqueue(&queue.Data{Name: "test"}); err != nil { |
| 203 | t.Fatalf("\t%s\tTest 0:\tShould be able to enqueue item %d back in the queue : %v", failed, i+1, err) |
| 204 | } |
| 205 | } |
| 206 | t.Logf("\t%s\tTest 0:\tShould be able to enqueue %d items back in the queue.", succeed, items-1) |
| 207 | |
| 208 | if q.Count != items { |
| 209 | t.Logf("\t%s\tTest 0:\tShould be able to see queue is full.", failed) |
| 210 | t.Fatalf("\t\tTest 0:\tGot %d, Expected %d.", q.Count, items) |
| 211 | } |
| 212 | t.Logf("\t%s\tTest 0:\tShould be able to see queue is full.", succeed) |
| 213 | |
| 214 | if err := q.Enqueue(&queue.Data{Name: "test"}); err == nil { |
| 215 | t.Fatalf("\t%s\tTest 0:\tShould not be able to enqueue another item in the queue.", failed) |
| 216 | } |
| 217 | t.Logf("\t%s\tTest 0:\tShould not be able to enqueue another item in the queue.", succeed) |
| 218 | } |
| 219 | } |
| 220 | } |
| 221 |