Skip to content

Commit 9a0feee

Browse files
authored
Merge pull request #61 from THD-Spatial-AI/testing/test-coverage
test: enhance test readability with Given-When-Then structure
2 parents af2bddf + 8731955 commit 9a0feee

3 files changed

Lines changed: 85 additions & 28 deletions

File tree

internal/process/queue_test.go

Lines changed: 70 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,10 @@ import (
2929
)
3030

3131
func TestJobQueue_NewQueueEmpty(t *testing.T) {
32+
// When
3233
queue := NewJobQueue()
3334

35+
// Then
3436
if !queue.IsEmpty() {
3537
t.Errorf("Expected new queue to be empty, but it was not")
3638
}
@@ -41,88 +43,128 @@ func TestJobQueue_NewQueueEmpty(t *testing.T) {
4143
}
4244

4345
func TestJobQueue_Enqueue(t *testing.T) {
46+
// Given
4447
queue := NewJobQueue()
4548
job := NewJob([]int64{1}, nil)
4649

50+
// When
4751
queue.Enqueue(job)
4852

53+
// Then
4954
if queue.Len() != 1 {
5055
t.Errorf("Expected queue length to be 1 after enqueue, but got %d", queue.Len())
5156
}
5257
}
5358

5459
func TestJobQueue_Dequeue(t *testing.T) {
60+
// Given
5561
queue := NewJobQueue()
5662
job1 := NewJob([]int64{1}, nil)
5763
job2 := NewJob([]int64{2}, nil)
58-
5964
queue.Enqueue(job1)
6065
queue.Enqueue(job2)
6166

67+
// When
6268
dequeuedJob_1 := queue.Dequeue()
6369

70+
// Then
6471
if dequeuedJob_1 != job1 {
6572
t.Errorf("Expected first dequeued job to be job1, but got a different job")
6673
}
67-
6874
if queue.Len() != 1 {
6975
t.Errorf("Expected queue length to be 1 after dequeue, but got %d", queue.Len())
7076
}
7177

78+
// When
7279
dequeuedJob_2 := queue.Dequeue()
7380

81+
// Then
7482
if dequeuedJob_2 != job2 {
7583
t.Errorf("Expected dequeued job to be job2, but got a different job")
7684
}
7785

86+
// When
7887
dequeuedJob_3 := queue.Dequeue()
7988

89+
// Then
8090
if dequeuedJob_3 != nil {
8191
t.Errorf("Expected dequeued job to be nil when queue is empty, but got a job")
8292
}
8393
}
8494

8595
func TestJobQueue_IsEmpty(t *testing.T) {
86-
queue := NewJobQueue()
87-
88-
if !queue.IsEmpty() {
89-
t.Errorf("Expected new queue to be empty, but it was not")
90-
}
91-
92-
job := NewJob([]int64{1}, nil)
93-
queue.Enqueue(job)
94-
95-
if queue.IsEmpty() {
96-
t.Errorf("Expected queue to not be empty after enqueue, but it was")
97-
}
96+
t.Run("given new queue, when IsEmpty called, then returns true", func(t *testing.T) {
97+
// Given
98+
queue := NewJobQueue()
99+
100+
// When
101+
result := queue.IsEmpty()
102+
103+
// Then
104+
if !result {
105+
t.Errorf("Expected new queue to be empty, but it was not")
106+
}
107+
})
108+
109+
t.Run("given queue with one job, when IsEmpty called, then returns false", func(t *testing.T) {
110+
// Given
111+
queue := NewJobQueue()
112+
job := NewJob([]int64{1}, nil)
113+
queue.Enqueue(job)
114+
115+
// When
116+
result := queue.IsEmpty()
117+
118+
// Then
119+
if result {
120+
t.Errorf("Expected queue to not be empty after enqueue, but it was")
121+
}
122+
})
98123
}
99124

100125
func TestJobQueue_Peek(t *testing.T) {
101-
queue := NewJobQueue()
102-
job := NewJob([]int64{1}, nil)
103-
104-
if queue.Peek() != nil {
105-
t.Errorf("Expected Peek to return nil for empty queue, but got a job")
106-
}
107-
108-
queue.Enqueue(job)
109-
110-
if queue.Peek() != job {
111-
t.Errorf("Expected Peek to return the enqueued job, but got a different job")
112-
}
126+
t.Run("given empty queue, when Peek called, then returns nil", func(t *testing.T) {
127+
// Given
128+
queue := NewJobQueue()
129+
130+
// When
131+
result := queue.Peek()
132+
133+
// Then
134+
if result != nil {
135+
t.Errorf("Expected Peek to return nil for empty queue, but got a job")
136+
}
137+
})
138+
139+
t.Run("given queue with one job, when Peek called, then returns the job without removing it", func(t *testing.T) {
140+
// Given
141+
queue := NewJobQueue()
142+
job := NewJob([]int64{1}, nil)
143+
queue.Enqueue(job)
144+
145+
// When
146+
result := queue.Peek()
147+
148+
// Then
149+
if result != job {
150+
t.Errorf("Expected Peek to return the enqueued job, but got a different job")
151+
}
152+
})
113153
}
114154

115155
func TestJobQueue_Clear(t *testing.T) {
156+
// Given
116157
queue := NewJobQueue()
117158
job := NewJob([]int64{1}, nil)
118-
119159
queue.Enqueue(job)
160+
161+
// When
120162
queue.Clear()
121163

164+
// Then
122165
if !queue.IsEmpty() {
123166
t.Errorf("Expected queue to be empty after Clear, but it was not")
124167
}
125-
126168
if queue.Len() != 0 {
127169
t.Errorf("Expected queue length to be 0 after Clear, but got %d", queue.Len())
128170
}

internal/process/runner_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,13 @@ func TestIsDeadLockError(t *testing.T) {
3939

4040
for _, tc := range cases {
4141
t.Run(tc.name, func(t *testing.T) {
42+
// Given
43+
// (error is defined in the test table above)
44+
45+
// When
4246
got := isDeadlockError(tc.err)
4347

48+
// Then
4449
if got != tc.want {
4550
t.Errorf("isDeadlockError(%v) = %v; want %v", tc.err, got, tc.want)
4651
}

internal/process/sql_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,13 @@ func TestGetSQLParameterMap(t *testing.T) {
119119
}
120120
for _, testCase := range cases {
121121
t.Run(testCase.name, func(t *testing.T) {
122+
// Given
123+
// (params are defined in the test table above)
124+
125+
// When
122126
got := getSQLParameterMap(testCase.params)
127+
128+
// Then
123129
if !reflect.DeepEqual(got, testCase.want) {
124130
t.Fatalf("expected %v, got %v", testCase.want, got)
125131
}
@@ -185,9 +191,13 @@ func TestReplaceParameters(t *testing.T) {
185191

186192
for _, testCase := range cases {
187193
t.Run(testCase.name, func(t *testing.T) {
194+
// Given
195+
// (sqlScript and params are defined in the test table above)
188196

197+
// When
189198
got := replaceParameters(testCase.sqlScript, testCase.params)
190199

200+
// Then
191201
if got != testCase.want {
192202
t.Fatalf("expected %q, got %q", testCase.want, got)
193203
}

0 commit comments

Comments
 (0)