github.com/goravel/framework@v1.13.9/testing/docker/mysql_test.go (about) 1 package docker 2 3 import ( 4 "testing" 5 6 "github.com/ory/dockertest/v3" 7 "github.com/stretchr/testify/suite" 8 9 configmocks "github.com/goravel/framework/contracts/config/mocks" 10 "github.com/goravel/framework/contracts/database/orm" 11 ) 12 13 type MysqlTestSuite struct { 14 suite.Suite 15 mockConfig *configmocks.Config 16 mysql *Mysql 17 } 18 19 func TestMysqlTestSuite(t *testing.T) { 20 suite.Run(t, new(MysqlTestSuite)) 21 } 22 23 func (s *MysqlTestSuite) SetupTest() { 24 s.mockConfig = configmocks.NewConfig(s.T()) 25 s.mysql = &Mysql{ 26 config: s.mockConfig, 27 connection: "mysql", 28 } 29 } 30 31 func (s *MysqlTestSuite) TestName() { 32 s.Equal(orm.DriverMysql, s.mysql.Name()) 33 } 34 35 func (s *MysqlTestSuite) TestImage() { 36 s.mockConfig.On("GetString", "database.connections.mysql.database").Return("goravel").Once() 37 s.mockConfig.On("GetString", "database.connections.mysql.username").Return("root").Once() 38 s.mockConfig.On("GetString", "database.connections.mysql.password").Return("123123").Once() 39 40 s.Equal(&dockertest.RunOptions{ 41 Repository: "mysql", 42 Tag: "latest", 43 Env: []string{ 44 "MYSQL_ROOT_PASSWORD=123123", 45 "MYSQL_DATABASE=goravel", 46 }, 47 }, s.mysql.Image()) 48 49 s.mockConfig.On("GetString", "database.connections.mysql.database").Return("goravel").Once() 50 s.mockConfig.On("GetString", "database.connections.mysql.username").Return("goravel").Once() 51 s.mockConfig.On("GetString", "database.connections.mysql.password").Return("123123").Once() 52 53 s.Equal(&dockertest.RunOptions{ 54 Repository: "mysql", 55 Tag: "latest", 56 Env: []string{ 57 "MYSQL_ROOT_PASSWORD=123123", 58 "MYSQL_DATABASE=goravel", 59 "MYSQL_USER=goravel", 60 "MYSQL_PASSWORD=123123", 61 }, 62 }, s.mysql.Image()) 63 }