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  }