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  }