github.com/goravel/framework@v1.13.9/queue/config_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 ) 10 11 type ConfigTestSuite struct { 12 suite.Suite 13 config *Config 14 mockConfig *configmock.Config 15 } 16 17 func TestConfigTestSuite(t *testing.T) { 18 suite.Run(t, new(ConfigTestSuite)) 19 } 20 21 func (s *ConfigTestSuite) SetupTest() { 22 s.mockConfig = &configmock.Config{} 23 s.config = NewConfig(s.mockConfig) 24 } 25 26 func (s *ConfigTestSuite) TestQueue() { 27 tests := []struct { 28 name string 29 setup func() 30 connection string 31 queue string 32 expectQueueName string 33 }{ 34 { 35 name: "success when connection and queue are empty", 36 setup: func() { 37 s.mockConfig.On("GetString", "app.name").Return("").Once() 38 s.mockConfig.On("GetString", "queue.default").Return("redis").Once() 39 s.mockConfig.On("GetString", "queue.connections.redis.queue", "default").Return("queue").Once() 40 }, 41 expectQueueName: "goravel_queues:queue", 42 }, 43 { 44 name: "success when connection and queue aren't empty", 45 setup: func() { 46 s.mockConfig.On("GetString", "app.name").Return("app").Once() 47 }, 48 connection: "redis", 49 queue: "queue", 50 expectQueueName: "app_queues:queue", 51 }, 52 } 53 54 for _, test := range tests { 55 s.Run(test.name, func() { 56 test.setup() 57 queueName := s.config.Queue(test.connection, test.queue) 58 s.Equal(test.expectQueueName, queueName) 59 s.mockConfig.AssertExpectations(s.T()) 60 }) 61 } 62 } 63 64 func (s *ConfigTestSuite) TestRedis() { 65 s.mockConfig.On("GetString", "queue.connections.redis.connection").Return("default").Once() 66 s.mockConfig.On("GetString", "database.redis.default.host").Return("127.0.0.1").Once() 67 s.mockConfig.On("GetString", "database.redis.default.password").Return("").Once() 68 s.mockConfig.On("GetInt", "database.redis.default.port").Return(6379).Once() 69 s.mockConfig.On("GetInt", "database.redis.default.database").Return(0).Once() 70 s.mockConfig.On("GetString", "queue.connections.redis.queue", "default").Return("default").Once() 71 s.mockConfig.On("GetString", "app.name").Return("goravel").Once() 72 73 redisConfig, database, queue := s.config.Redis("redis") 74 75 s.Equal("127.0.0.1:6379", redisConfig) 76 s.Equal(0, database) 77 s.Equal("goravel_queues:default", queue) 78 }