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 }