github.com/goravel/framework@v1.13.9/testing/docker/docker_test.go (about)

     1  package docker
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/suite"
     7  
     8  	configmocks "github.com/goravel/framework/contracts/config/mocks"
     9  	foundationmocks "github.com/goravel/framework/contracts/foundation/mocks"
    10  )
    11  
    12  type DockerTestSuite struct {
    13  	suite.Suite
    14  	mockApp *foundationmocks.Application
    15  	docker  *Docker
    16  }
    17  
    18  func TestDockerTestSuite(t *testing.T) {
    19  	suite.Run(t, new(DockerTestSuite))
    20  }
    21  
    22  func (s *DockerTestSuite) SetupTest() {
    23  	s.mockApp = &foundationmocks.Application{}
    24  	s.docker = NewDocker(s.mockApp)
    25  }
    26  
    27  func (s *DockerTestSuite) TestDatabase() {
    28  	mockConfig := &configmocks.Config{}
    29  	mockConfig.On("GetString", "database.default").Return("mysql").Once()
    30  	mockConfig.On("GetString", "database.connections.mysql.driver").Return("mysql").Once()
    31  	s.mockApp.On("MakeConfig").Return(mockConfig).Once()
    32  
    33  	database, err := s.docker.Database()
    34  	s.Nil(err)
    35  	s.NotNil(database)
    36  	databaseImpl := database.(*Database)
    37  	s.Equal("mysql", databaseImpl.connection)
    38  
    39  	mockConfig = &configmocks.Config{}
    40  	mockConfig.On("GetString", "database.connections.postgresql.driver").Return("postgresql").Once()
    41  	s.mockApp.On("MakeConfig").Return(mockConfig).Once()
    42  
    43  	database, err = s.docker.Database("postgresql")
    44  	s.Nil(err)
    45  	s.NotNil(database)
    46  	databaseImpl = database.(*Database)
    47  	s.Equal("postgresql", databaseImpl.connection)
    48  }