-
Notifications
You must be signed in to change notification settings - Fork 71
Expand file tree
/
Copy pathtasks_test.go
More file actions
51 lines (38 loc) · 1.94 KB
/
tasks_test.go
File metadata and controls
51 lines (38 loc) · 1.94 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
package scheduler
import (
"context"
"testing"
"github.com/cybertec-postgresql/pg_timetable/internal/config"
"github.com/cybertec-postgresql/pg_timetable/internal/log"
"github.com/cybertec-postgresql/pg_timetable/internal/pgengine"
"github.com/pashagolub/pgxmock/v5"
"github.com/stretchr/testify/assert"
)
func TestExecuteTask(t *testing.T) {
mock, err := pgxmock.NewPool() //
assert.NoError(t, err)
pge := pgengine.NewDB(mock, "--log-database-level=none")
mocksch := New(pge, log.Init(config.LoggingOpts{LogLevel: "panic", LogDBLevel: "none"}))
et := func(task string, params []string) (err error) {
err = mocksch.executeBuiltinTask(context.TODO(), &pgengine.ChainTask{Command: task}, params)
return
}
assert.Error(t, et("foo", []string{}))
assert.Error(t, et("Sleep", []string{"foo"}))
assert.NoError(t, et("Sleep", []string{"1"}))
assert.NoError(t, et("NoOp", []string{}))
assert.NoError(t, et("NoOp", []string{"foo", "bar"}))
assert.NoError(t, et("Log", []string{"foo"}))
assert.Error(t, et("CopyFromFile", []string{"foo"}), "Invalid json")
assert.Error(t, et("CopyFromFile", []string{`{"sql": "COPY", "filename": "foo"}`}), "Acquire() should fail")
assert.Error(t, et("CopyToFile", []string{"foo"}), "Invalid json")
assert.Error(t, et("CopyToFile", []string{`{"sql": "COPY", "filename": "foo"}`}), "Acquire() should fail")
assert.Error(t, et("SendMail", []string{"foo"}), "Invalid json")
assert.Error(t, et("SendMail", []string{`{"ServerHost":"smtp.example.com","ServerPort":587,"Username":"user"}`}))
assert.Error(t, et("Download", []string{"foo"}), "Invalid json")
assert.EqualError(t, et("Download", []string{`{"workersnum": 0, "fileurls": [] }`}),
"files to download are not specified", "Download with empty files should fail")
assert.Error(t, et("Download", []string{`{"workersnum": 0, "fileurls": ["http://foo.bar"], "destpath": "" }`}),
"Downlod incorrect url should fail")
assert.NoError(t, et("Shutdown", []string{}))
}