github.com/goravel/framework@v1.13.9/queue/machinery_test.go (about) 1 package queue 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/suite" 7 8 configmock "github.com/goravel/framework/contracts/config/mocks" 9 logmock "github.com/goravel/framework/contracts/log/mocks" 10 ) 11 12 type MachineryTestSuite struct { 13 suite.Suite 14 mockConfig *configmock.Config 15 mockLog *logmock.Log 16 machinery *Machinery 17 } 18 19 func TestMachineryTestSuite(t *testing.T) { 20 suite.Run(t, new(MachineryTestSuite)) 21 } 22 23 func (s *MachineryTestSuite) SetupTest() { 24 s.mockConfig = &configmock.Config{} 25 s.mockLog = &logmock.Log{} 26 s.machinery = NewMachinery(NewConfig(s.mockConfig), s.mockLog) 27 } 28 29 func (s *MachineryTestSuite) TestServer() { 30 tests := []struct { 31 name string 32 connection string 33 queue string 34 setup func() 35 expectServer bool 36 expectErr bool 37 }{ 38 { 39 name: "sync", 40 connection: "sync", 41 setup: func() { 42 s.mockConfig.On("GetString", "queue.connections.sync.driver").Return("sync").Once() 43 }, 44 }, 45 { 46 name: "redis", 47 connection: "redis", 48 setup: func() { 49 s.mockConfig.On("GetString", "queue.connections.redis.driver").Return("redis").Once() 50 s.mockConfig.On("GetString", "queue.connections.redis.connection").Return("default").Once() 51 s.mockConfig.On("GetString", "database.redis.default.host").Return("127.0.0.1").Once() 52 s.mockConfig.On("GetString", "database.redis.default.password").Return("").Once() 53 s.mockConfig.On("GetInt", "database.redis.default.port").Return(6379).Once() 54 s.mockConfig.On("GetInt", "database.redis.default.database").Return(0).Once() 55 s.mockConfig.On("GetString", "queue.connections.redis.queue", "default").Return("default").Once() 56 s.mockConfig.On("GetString", "app.name").Return("goravel").Once() 57 s.mockConfig.On("GetBool", "app.debug").Return(true).Once() 58 }, 59 expectServer: true, 60 }, 61 { 62 name: "error", 63 connection: "custom", 64 setup: func() { 65 s.mockConfig.On("GetString", "queue.connections.custom.driver").Return("custom").Once() 66 67 }, 68 expectErr: true, 69 }, 70 } 71 72 for _, test := range tests { 73 s.Run(test.name, func() { 74 test.setup() 75 server, err := s.machinery.Server(test.connection, test.queue) 76 s.Equal(test.expectServer, server != nil) 77 s.Equal(test.expectErr, err != nil) 78 s.mockConfig.AssertExpectations(s.T()) 79 }) 80 } 81 }