forked from goravel/framework
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig_test.go
78 lines (67 loc) · 2.22 KB
/
config_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package queue
import (
"testing"
"github.com/stretchr/testify/suite"
configmock "github.com/goravel/framework/mocks/config"
)
type ConfigTestSuite struct {
suite.Suite
config *Config
mockConfig *configmock.Config
}
func TestConfigTestSuite(t *testing.T) {
suite.Run(t, new(ConfigTestSuite))
}
func (s *ConfigTestSuite) SetupTest() {
s.mockConfig = &configmock.Config{}
s.config = NewConfig(s.mockConfig)
}
func (s *ConfigTestSuite) TestQueue() {
tests := []struct {
name string
setup func()
connection string
queue string
expectQueueName string
}{
{
name: "success when connection and queue are empty",
setup: func() {
s.mockConfig.On("GetString", "app.name").Return("").Once()
s.mockConfig.On("GetString", "queue.default").Return("redis").Once()
s.mockConfig.On("GetString", "queue.connections.redis.queue", "default").Return("queue").Once()
},
expectQueueName: "goravel_queues:queue",
},
{
name: "success when connection and queue aren't empty",
setup: func() {
s.mockConfig.On("GetString", "app.name").Return("app").Once()
},
connection: "redis",
queue: "queue",
expectQueueName: "app_queues:queue",
},
}
for _, test := range tests {
s.Run(test.name, func() {
test.setup()
queueName := s.config.Queue(test.connection, test.queue)
s.Equal(test.expectQueueName, queueName)
s.mockConfig.AssertExpectations(s.T())
})
}
}
func (s *ConfigTestSuite) TestRedis() {
s.mockConfig.On("GetString", "queue.connections.redis.connection").Return("default").Once()
s.mockConfig.On("GetString", "database.redis.default.host").Return("127.0.0.1").Once()
s.mockConfig.On("GetString", "database.redis.default.password").Return("").Once()
s.mockConfig.On("GetInt", "database.redis.default.port").Return(6379).Once()
s.mockConfig.On("GetInt", "database.redis.default.database").Return(0).Once()
s.mockConfig.On("GetString", "queue.connections.redis.queue", "default").Return("default").Once()
s.mockConfig.On("GetString", "app.name").Return("goravel").Once()
redisConfig, database, queue := s.config.Redis("redis")
s.Equal("127.0.0.1:6379", redisConfig)
s.Equal(0, database)
s.Equal("goravel_queues:default", queue)
}