github.com/goravel/framework@v1.13.9/http/console/controller_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 TestControllerMakeCommand(t *testing.T) {
    13  	controllerMakeCommand := &ControllerMakeCommand{}
    14  	mockContext := &consolemocks.Context{}
    15  	mockContext.On("Argument", 0).Return("").Once()
    16  	err := controllerMakeCommand.Handle(mockContext)
    17  	assert.EqualError(t, err, "Not enough arguments (missing: name) ")
    18  
    19  	mockContext.On("Argument", 0).Return("UsersController").Once()
    20  	mockContext.On("OptionBool", "resource").Return(false).Once()
    21  	err = controllerMakeCommand.Handle(mockContext)
    22  	assert.Nil(t, err)
    23  	assert.True(t, file.Exists("app/http/controllers/users_controller.go"))
    24  
    25  	mockContext.On("Argument", 0).Return("User/AuthController").Once()
    26  	mockContext.On("OptionBool", "resource").Return(false).Once()
    27  	err = controllerMakeCommand.Handle(mockContext)
    28  	assert.Nil(t, err)
    29  	assert.True(t, file.Exists("app/http/controllers/User/auth_controller.go"))
    30  	assert.True(t, file.Contain("app/http/controllers/User/auth_controller.go", "package User"))
    31  	assert.True(t, file.Contain("app/http/controllers/User/auth_controller.go", "type AuthController struct"))
    32  	assert.True(t, file.Contain("app/http/controllers/User/auth_controller.go", "func (r *AuthController) Index(ctx http.Context) http.Response {"))
    33  	assert.Nil(t, file.Remove("app"))
    34  }
    35  
    36  func TestResourceControllerMakeCommand(t *testing.T) {
    37  	controllerMakeCommand := &ControllerMakeCommand{}
    38  	mockContext := &consolemocks.Context{}
    39  	mockContext.On("Argument", 0).Return("User/AuthController").Once()
    40  	mockContext.On("OptionBool", "resource").Return(true).Once()
    41  	err := controllerMakeCommand.Handle(mockContext)
    42  	assert.Nil(t, err)
    43  	assert.True(t, file.Exists("app/http/controllers/User/auth_controller.go"))
    44  	assert.True(t, file.Contain("app/http/controllers/User/auth_controller.go", "package User"))
    45  	assert.True(t, file.Contain("app/http/controllers/User/auth_controller.go", "type AuthController struct"))
    46  	assert.True(t, file.Contain("app/http/controllers/User/auth_controller.go", "func (r *AuthController) Index(ctx http.Context) http.Response {"))
    47  	assert.True(t, file.Contain("app/http/controllers/User/auth_controller.go", "func (r *AuthController) Show(ctx http.Context) http.Response {"))
    48  	assert.True(t, file.Contain("app/http/controllers/User/auth_controller.go", "func (r *AuthController) Store(ctx http.Context) http.Response {"))
    49  	assert.True(t, file.Contain("app/http/controllers/User/auth_controller.go", "func (r *AuthController) Update(ctx http.Context) http.Response {"))
    50  	assert.True(t, file.Contain("app/http/controllers/User/auth_controller.go", "func (r *AuthController) Destroy(ctx http.Context) http.Response {"))
    51  	assert.Nil(t, file.Remove("app"))
    52  }