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

     1  package database
     2  
     3  import (
     4  	"log"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/suite"
     8  
     9  	"github.com/goravel/framework/contracts/database/seeder"
    10  )
    11  
    12  type SeederTestSuite struct {
    13  	suite.Suite
    14  	seederFacade *SeederFacade
    15  }
    16  
    17  func TestSeederTestSuite(t *testing.T) {
    18  	suite.Run(t, new(SeederTestSuite))
    19  }
    20  
    21  func (s *SeederTestSuite) SetupTest() {
    22  	s.seederFacade = NewSeederFacade()
    23  }
    24  
    25  func (s *SeederTestSuite) TestRegister() {
    26  	s.seederFacade.Register([]seeder.Seeder{
    27  		&MockSeeder{},
    28  		&MockSeeder2{},
    29  	})
    30  
    31  	s.Len(s.seederFacade.GetSeeders(), 2)
    32  }
    33  
    34  func (s *SeederTestSuite) TestGetSeeder() {
    35  	s.seederFacade.Register([]seeder.Seeder{
    36  		&MockSeeder{},
    37  		&MockSeeder2{},
    38  	})
    39  
    40  	seeder := s.seederFacade.GetSeeder("mock")
    41  	s.NotNil(seeder)
    42  	s.Equal("mock", seeder.Signature())
    43  }
    44  
    45  func (s *SeederTestSuite) TestGetSeeders() {
    46  	s.seederFacade.Register([]seeder.Seeder{
    47  		&MockSeeder{},
    48  		&MockSeeder2{},
    49  	})
    50  
    51  	seeders := s.seederFacade.GetSeeders()
    52  	s.Len(seeders, 2)
    53  }
    54  
    55  func (s *SeederTestSuite) TestCall() {
    56  	s.seederFacade.Register([]seeder.Seeder{
    57  		&MockSeeder{},
    58  		&MockSeeder2{},
    59  	})
    60  
    61  	s.NoError(s.seederFacade.Call([]seeder.Seeder{
    62  		&MockSeeder{},
    63  		&MockSeeder2{},
    64  	}))
    65  
    66  	s.Len(s.seederFacade.Called, 2)
    67  }
    68  
    69  func (s *SeederTestSuite) TestCallOnce() {
    70  	s.seederFacade.Register([]seeder.Seeder{
    71  		&MockSeeder{},
    72  		&MockSeeder2{},
    73  	})
    74  
    75  	s.NoError(s.seederFacade.CallOnce([]seeder.Seeder{
    76  		&MockSeeder{},
    77  		&MockSeeder2{},
    78  	}))
    79  
    80  	s.Len(s.seederFacade.Called, 2)
    81  }
    82  
    83  func (s *SeederTestSuite) TestCallOnceWithCalled() {
    84  	s.seederFacade.Register([]seeder.Seeder{
    85  		&MockSeeder{},
    86  		&MockSeeder2{},
    87  	})
    88  
    89  	s.seederFacade.Called = []string{"mock"}
    90  	s.NoError(s.seederFacade.CallOnce([]seeder.Seeder{
    91  		&MockSeeder2{},
    92  	}))
    93  
    94  	log.Println(s.seederFacade.Called)
    95  
    96  	s.Len(s.seederFacade.Called, 2)
    97  }
    98  
    99  type MockSeeder struct{}
   100  
   101  func (m *MockSeeder) Signature() string {
   102  	return "mock"
   103  }
   104  
   105  func (m *MockSeeder) Run() error {
   106  	return nil
   107  }
   108  
   109  type MockSeeder2 struct{}
   110  
   111  func (m *MockSeeder2) Signature() string {
   112  	return "mock2"
   113  }
   114  
   115  func (m *MockSeeder2) Run() error {
   116  	return nil
   117  }