Skip to content

Commit ed0b1d2

Browse files
committed
finish bucket testing
1 parent 14717fb commit ed0b1d2

File tree

2 files changed

+69
-2
lines changed

2 files changed

+69
-2
lines changed

bucket/bucket.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
)
1111

1212
const (
13-
DefaultMaxFetchNum = 20
13+
DefaultMaxFetchNum uint64 = 20
1414
)
1515

1616
// Bucket interface to save jobs and repeat is searched

bucket/bucket_test.go

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package bucket
22

33
import (
44
"errors"
5+
"github.com/changsongl/delay-queue/job"
56
lockmock "github.com/changsongl/delay-queue/test/mock/pkg/lock"
67
storemock "github.com/changsongl/delay-queue/test/mock/store"
78
"github.com/golang/mock/gomock"
@@ -16,10 +17,10 @@ func TestBucketCreateJob(t *testing.T){
1617
sm := storemock.NewMockStore(ctrl)
1718
lockMk := lockmock.NewMockLocker(ctrl)
1819

20+
sm.EXPECT().GetLock(gomock.All()).Return(lockMk).AnyTimes()
1921
b := New(sm, 10, "test_bucket")
2022

2123
// case1: no error
22-
sm.EXPECT().GetLock(gomock.All()).Return(lockMk).AnyTimes()
2324
sm.EXPECT().CreateJobInBucket(gomock.Eq("test_bucket_1"), gomock.All(), gomock.All()).Return(nil)
2425
err := b.CreateJob(nil, true)
2526
require.NoError(t, err, "first create should no error")
@@ -30,3 +31,69 @@ func TestBucketCreateJob(t *testing.T){
3031
err = b.CreateJob(nil, true)
3132
require.Equal(t, expectErr, err, "second create should be expect error")
3233
}
34+
35+
func TestBucketGetBuckets(t *testing.T){
36+
ctrl := gomock.NewController(t)
37+
defer ctrl.Finish()
38+
39+
sm := storemock.NewMockStore(ctrl)
40+
lockMk := lockmock.NewMockLocker(ctrl)
41+
42+
sm.EXPECT().GetLock(gomock.All()).Return(lockMk).AnyTimes()
43+
b := New(sm, 2, "test_bucket")
44+
bucketNames := b.GetBuckets()
45+
46+
expectNames := []uint64{
47+
0, 1,
48+
}
49+
50+
for i, bucketName := range bucketNames{
51+
if i > len(expectNames) {
52+
t.Error("it is greater than expecting length")
53+
t.FailNow()
54+
}
55+
56+
require.Equal(t, expectNames[i], bucketName, "bucket names are not equal")
57+
}
58+
}
59+
60+
func TestBucketGetBucketJobs(t *testing.T){
61+
ctrl := gomock.NewController(t)
62+
defer ctrl.Finish()
63+
64+
sm := storemock.NewMockStore(ctrl)
65+
lockMk := lockmock.NewMockLocker(ctrl)
66+
67+
sm.EXPECT().GetLock(gomock.All()).Return(lockMk).AnyTimes()
68+
b := New(sm, 2, "test_bucket")
69+
70+
expectErr := errors.New("error GetReadyJobsInBucket")
71+
sm.EXPECT().GetReadyJobsInBucket(gomock.Eq("test_bucket_0"), gomock.All()).Return(nil, expectErr)
72+
versions, err := b.GetBucketJobs(0)
73+
require.Equal(t, expectErr, err, "it should be expecting")
74+
require.Nil(t, versions, "version names should be nil")
75+
76+
expectNvs := []job.NameVersion{
77+
"nv1", "nv2",
78+
}
79+
sm.EXPECT().GetReadyJobsInBucket(gomock.Eq("test_bucket_1"), gomock.All()).Return(expectNvs, nil)
80+
versions, err = b.GetBucketJobs(1)
81+
require.NoError(t, err, "it should have no error")
82+
require.Equal(t, expectNvs, versions, "version names should be equal")
83+
}
84+
85+
func TestBucketFetchNum(t *testing.T){
86+
ctrl := gomock.NewController(t)
87+
defer ctrl.Finish()
88+
89+
sm := storemock.NewMockStore(ctrl)
90+
lockMk := lockmock.NewMockLocker(ctrl)
91+
92+
sm.EXPECT().GetLock(gomock.All()).Return(lockMk).AnyTimes()
93+
b := New(sm, 2, "test_bucket")
94+
require.Equal(t, DefaultMaxFetchNum, b.GetMaxFetchNum(), "fetch number should be default")
95+
96+
var newNum uint64 = 30
97+
b.SetMaxFetchNum(newNum)
98+
require.Equal(t, newNum, b.GetMaxFetchNum(), "fetch number should be new number")
99+
}

0 commit comments

Comments
 (0)