-
Notifications
You must be signed in to change notification settings - Fork 0
/
default-runner_test.go
55 lines (44 loc) · 982 Bytes
/
default-runner_test.go
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
package sqstransport
import (
"testing"
"time"
"github.com/stretchr/testify/suite"
)
var (
_defaultRunner *defaultRunner
_ Runner = _defaultRunner
)
func Test_defaultRunner(t *testing.T) {
suite.Run(t, new(suiteDefaultRunner))
}
type suiteDefaultRunner struct {
suite.Suite
sut *defaultRunner
}
func (obj *suiteDefaultRunner) SetupTest() {
obj.sut = newDefaultRunner()
}
func (obj *suiteDefaultRunner) Test_Run_should_run_the_job() {
done := make(chan struct{})
obj.sut.Run(func() { close(done) })
obj.Eventually(func() bool {
select {
case <-done:
return true
default:
}
return false
}, time.Millisecond*100, time.Millisecond*10)
}
func (obj *suiteDefaultRunner) Test_Run_should_run_the_job_concurrently() {
done := make(chan struct{})
obj.sut.Run(func() { done <- struct{}{} })
obj.Eventually(func() bool {
select {
case <-done:
return true
default:
}
return false
}, time.Millisecond*100, time.Millisecond*10)
}