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

     1  package console
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	consolemocks "github.com/goravel/framework/contracts/console/mocks"
     9  	"github.com/goravel/framework/support/file"
    10  )
    11  
    12  func TestFactoryMakeCommand(t *testing.T) {
    13  	factoryMakeCommand := &FactoryMakeCommand{}
    14  	mockContext := &consolemocks.Context{}
    15  	mockContext.On("Argument", 0).Return("").Once()
    16  	assert.Nil(t, factoryMakeCommand.Handle(mockContext))
    17  
    18  	mockContext.On("Argument", 0).Return("UserFactory").Once()
    19  	assert.Nil(t, factoryMakeCommand.Handle(mockContext))
    20  	assert.True(t, file.Exists("database/factories/user_factory.go"))
    21  	assert.True(t, file.Contain("database/factories/user_factory.go", "package factories"))
    22  	assert.True(t, file.Contain("database/factories/user_factory.go", "type UserFactory struct"))
    23  	assert.Nil(t, file.Remove("database"))
    24  
    25  	mockContext.On("Argument", 0).Return("subdir/DemoFactory").Once()
    26  	assert.Nil(t, factoryMakeCommand.Handle(mockContext))
    27  	assert.True(t, file.Exists("database/factories/subdir/demo_factory.go"))
    28  	assert.True(t, file.Contain("database/factories/subdir/demo_factory.go", "package subdir"))
    29  	assert.True(t, file.Contain("database/factories/subdir/demo_factory.go", "type DemoFactory struct"))
    30  	assert.Nil(t, file.Remove("database"))
    31  }