github.com/goravel/framework@v1.13.9/database/console/migrate_creator_test.go (about)

     1  package console
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  
     9  	configmock "github.com/goravel/framework/contracts/config/mocks"
    10  	"github.com/goravel/framework/support/carbon"
    11  	"github.com/goravel/framework/support/file"
    12  )
    13  
    14  func TestCreate(t *testing.T) {
    15  	mockConfig := &configmock.Config{}
    16  	mockConfig.On("GetString", "database.default").Return("mysql").Times(3)
    17  	mockConfig.On("GetString", "database.connections.mysql.driver").Return("mysql").Once()
    18  	mockConfig.On("GetString", "database.connections.mysql.charset").Return("utf8mb4").Twice()
    19  	now := carbon.Now()
    20  	carbon.SetTestNow(carbon.Now())
    21  
    22  	migrateCreator := NewMigrateCreator(mockConfig)
    23  	assert.Nil(t, migrateCreator.Create("create_users_table", "users", true))
    24  	assert.True(t, file.Exists(fmt.Sprintf("database/migrations/%s_%s.%s.sql", now.ToShortDateTimeString(), "create_users_table", "up")))
    25  	assert.True(t, file.Exists(fmt.Sprintf("database/migrations/%s_%s.%s.sql", now.ToShortDateTimeString(), "create_users_table", "down")))
    26  	assert.Nil(t, file.Remove("database"))
    27  	carbon.UnsetTestNow()
    28  
    29  	mockConfig.AssertExpectations(t)
    30  }
    31  
    32  func TestPopulateStub(t *testing.T) {
    33  	mockConfig := &configmock.Config{}
    34  	mockConfig.On("GetString", "database.default").Return("mysql").Twice()
    35  	mockConfig.On("GetString", "database.connections.mysql.charset").Return("utf8mb4").Twice()
    36  
    37  	migrateCreator := NewMigrateCreator(mockConfig)
    38  	assert.Equal(t, "DummyTable ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;", migrateCreator.populateStub("DummyTable ENGINE = InnoDB DEFAULT CHARSET = DummyDatabaseCharset;", ""))
    39  	assert.Equal(t, "users ENGINE = InnoDB DEFAULT CHARSET = utf8mb4;", migrateCreator.populateStub("DummyTable ENGINE = InnoDB DEFAULT CHARSET = DummyDatabaseCharset;", "users"))
    40  	mockConfig.AssertExpectations(t)
    41  }