-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathqueuerTask_test.go
More file actions
117 lines (97 loc) · 3.89 KB
/
queuerTask_test.go
File metadata and controls
117 lines (97 loc) · 3.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package queuer
import (
"context"
"testing"
"github.com/siherrmann/queuer/helper"
"github.com/siherrmann/queuer/model"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestAddTask(t *testing.T) {
helper.SetTestDatabaseConfigEnvs(t, dbPort)
testQueuer := NewQueuer("TestQueuer", 100)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
testQueuer.StartWithoutWorker(ctx, cancel, true)
t.Run("Successfully add task", func(t *testing.T) {
task := func() {}
newTask := testQueuer.AddTask(task)
require.NotNil(t, newTask, "expected task to be created")
assert.Equal(t, "github.com/siherrmann/queuer.TestAddTask.func1.1", newTask.Name, "expected task name to match the function name")
updatedWorker, err := testQueuer.GetWorker(testQueuer.worker.RID)
require.NoError(t, err, "expected no error when getting updated worker")
assert.Equal(t, 1, len(updatedWorker.AvailableTasks), "expected worker to have one available task")
assert.Contains(t, updatedWorker.AvailableTasks, newTask.Name, "expected task to be added to worker's available tasks")
})
t.Run("Panics on nil task", func(t *testing.T) {
var newTask *model.Task
defer func() {
r := recover()
assert.NotNil(t, r, "expected panic for nil task")
assert.Nil(t, newTask, "expected no task to be created for nil task")
}()
var task func()
newTask = testQueuer.AddTask(task)
})
t.Run("Panics on already existing task", func(t *testing.T) {
task := func() {}
testQueuer.AddTask(task)
var newTask *model.Task
defer func() {
r := recover()
assert.NotNil(t, r, "expected panic for already existing task")
assert.Nil(t, newTask, "expected no task to be created for already existing task")
}()
// Try to add the same task again
newTask = testQueuer.AddTask(task)
})
}
func TestAddTaskWithName(t *testing.T) {
helper.SetTestDatabaseConfigEnvs(t, dbPort)
testQueuer := NewQueuer("TestQueuer", 100)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
testQueuer.StartWithoutWorker(ctx, cancel, true)
t.Run("Successfully add task with name", func(t *testing.T) {
task := func() {}
newTask := testQueuer.AddTaskWithName(task, "CustomTaskName")
require.NotNil(t, newTask, "expected task to be created")
assert.Equal(t, "CustomTaskName", newTask.Name, "expected task name to match the provided name")
updatedWorker, err := testQueuer.GetWorker(testQueuer.worker.RID)
require.NoError(t, err, "expected no error when getting updated worker")
assert.Equal(t, 1, len(updatedWorker.AvailableTasks), "expected worker to have one available task")
assert.Contains(t, updatedWorker.AvailableTasks, newTask.Name, "expected task to be added to worker's available tasks")
})
t.Run("Panics on nil task with name", func(t *testing.T) {
var newTask *model.Task
defer func() {
r := recover()
assert.NotNil(t, r, "expected panic for nil task with name")
assert.Nil(t, newTask, "expected no task to be created for nil task")
}()
var task func()
newTask = testQueuer.AddTaskWithName(task, "CustomTaskName")
})
t.Run("Panics on empty task name", func(t *testing.T) {
var newTask *model.Task
defer func() {
r := recover()
assert.NotNil(t, r, "expected panic for empty task name")
assert.Nil(t, newTask, "expected no task to be created for empty task name")
}()
task := func() {}
newTask = testQueuer.AddTaskWithName(task, "")
})
t.Run("Panics on already existing task with name", func(t *testing.T) {
task := func() {}
testQueuer.AddTaskWithName(task, "ExistingTaskName")
var newTask *model.Task
defer func() {
r := recover()
assert.NotNil(t, r, "expected panic for already existing task with name")
assert.Nil(t, newTask, "expected no task to be created for already existing task with name")
}()
// Try to add the same task with the same name again
newTask = testQueuer.AddTaskWithName(task, "ExistingTaskName")
})
}