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

Function TestEnqueue

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

TestEnqueue validates the Enqueue functionality.

(t *testing.T)

Source from the content-addressed store, hash-verified

69
70// TestEnqueue validates the Enqueue functionality.
71func TestEnqueue(t *testing.T) {
72 t.Log("Given the need to test Enqueue functionality.")
73 {
74 const items = 5
75 t.Logf("\tTest 0:\tWhen enqueuing %d items", items)
76 {
77 q, err := queue.New(items)
78 if err != nil {
79 t.Fatalf("\t%s\tTest 0:\tShould be able to create a queue for %d items : %v", failed, items, err)
80 }
81 t.Logf("\t%s\tTest 0:\tShould be able to create a queue for %d items.", succeed, items)
82
83 var orgData string
84 for i := 0; i < items; i++ {
85 name := fmt.Sprintf("Name%d", i)
86 orgData += name
87 if err := q.Enqueue(&queue.Data{Name: name}); err != nil {
88 t.Fatalf("\t%s\tTest 0:\tShould be able to enqueue item %d in the queue : %v", failed, i, err)
89 }
90 }
91
92 if q.Count != items {
93 t.Logf("\t%s\tTest 0:\tShould be able to enqueue %d items.", failed, items)
94 t.Fatalf("\t\tTest 0:\tGot %d, Expected %d.", q.Count, items)
95 }
96 t.Logf("\t%s\tTest 0:\tShould be able to enqueue %d items.", succeed, items)
97
98 var data string
99 f := func(d *queue.Data) error {
100 data += d.Name
101 return nil
102 }
103 if err := q.Operate(f); err != nil {
104 t.Fatalf("\t%s\tTest 0:\tShould be able to operate on the queue : %v", failed, err)
105 }
106 t.Logf("\t%s\tTest 0:\tShould be able to operate on the queue.", succeed)
107
108 if data != orgData {
109 t.Logf("\t%s\tTest 0:\tShould be able to traverse over %d items in FIFO order.", failed, items)
110 t.Fatalf("\t\tTest 0:\tGot %s, Expected %s.", data, orgData)
111 }
112 t.Logf("\t%s\tTest 0:\tShould be able to traverse over %d items in FIFO order.", succeed, items)
113 }
114 }
115}
116
117// TestDequeue validates the Dequeue functionality.
118func TestDequeue(t *testing.T) {

Callers

nothing calls this directly

Calls 3

NewFunction · 0.92
EnqueueMethod · 0.45
OperateMethod · 0.45

Tested by

no test coverage detected