MCPcopy Create free account
hub / github.com/ardanlabs/gotraining / TestDequeue

Function TestDequeue

topics/go/algorithms/data/queue/queue_test.go:118–161  ·  view source on GitHub ↗

TestDequeue validates the Dequeue functionality.

(t *testing.T)

Source from the content-addressed store, hash-verified

116
117// TestDequeue validates the Dequeue functionality.
118func TestDequeue(t *testing.T) {
119 t.Log("Given the need to test Dequeue functionality.")
120 {
121 const items = 5
122 t.Logf("\tTest 0:\tWhen dequeuing %d items", items)
123 {
124 q, err := queue.New(items)
125 if err != nil {
126 t.Fatalf("\t%s\tTest 0:\tShould be able to create a queue for %d items : %v", failed, items, err)
127 }
128 t.Logf("\t%s\tTest 0:\tShould be able to create a queue for %d items.", succeed, items)
129
130 var orgData string
131 for i := 0; i < items; i++ {
132 name := fmt.Sprintf("Name%d", i)
133 orgData += name
134 if err := q.Enqueue(&queue.Data{Name: name}); err != nil {
135 t.Fatalf("\t%s\tTest 0:\tShould be able to enqueue item %d in the queue : %v", failed, i+1, err)
136 }
137 }
138
139 if q.Count != items {
140 t.Logf("\t%s\tTest 0:\tShould be able to enqueue %d items.", failed, items)
141 t.Fatalf("\t\tTest 0:\tGot %d, Expected %d.", q.Count, items)
142 }
143 t.Logf("\t%s\tTest 0:\tShould be able to enqueue %d items.", succeed, items)
144
145 var data string
146 for i := 0; i < items; i++ {
147 d, err := q.Dequeue()
148 if err != nil {
149 t.Fatalf("\t%s\tTest 0:\tShould be able to dequeue an item from the queue : %d, %v", failed, i+1, err)
150 }
151 data += d.Name
152 }
153
154 if data != orgData {
155 t.Logf("\t%s\tTest 0:\tShould be able to dequeue over %d items in FIFO order.", failed, items)
156 t.Fatalf("\t\tTest 0:\tGot %s, Expected %s.", data, orgData)
157 }
158 t.Logf("\t%s\tTest 0:\tShould be able to dequeue over %d items in FIFO order.", succeed, items)
159 }
160 }
161}
162
163// TestEnqueueFull validates the Enqueue functionality when full.
164func TestEnqueueFull(t *testing.T) {

Callers

nothing calls this directly

Calls 3

NewFunction · 0.92
EnqueueMethod · 0.45
DequeueMethod · 0.45

Tested by

no test coverage detected