@@ -2,6 +2,7 @@ package bucket
22
33import (
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