github.com/goravel/framework@v1.13.9/database/console/observer_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 TestObserverMakeCommand(t *testing.T) {
    13  	observerMakeCommand := &ObserverMakeCommand{}
    14  	mockContext := &consolemocks.Context{}
    15  	mockContext.On("Argument", 0).Return("").Once()
    16  	assert.Nil(t, observerMakeCommand.Handle(mockContext))
    17  	assert.False(t, file.Exists("app/observers/user_observer.go"))
    18  
    19  	mockContext.On("Argument", 0).Return("UserObserver").Once()
    20  	assert.Nil(t, observerMakeCommand.Handle(mockContext))
    21  	assert.True(t, file.Exists("app/observers/user_observer.go"))
    22  
    23  	mockContext.On("Argument", 0).Return("User/PhoneObserver").Once()
    24  	assert.Nil(t, observerMakeCommand.Handle(mockContext))
    25  	assert.True(t, file.Exists("app/observers/User/phone_observer.go"))
    26  	assert.True(t, file.Contain("app/observers/User/phone_observer.go", "package User"))
    27  	assert.True(t, file.Contain("app/observers/User/phone_observer.go", "type PhoneObserver struct"))
    28  
    29  	assert.Nil(t, file.Remove("app"))
    30  
    31  	mockContext.AssertExpectations(t)
    32  }