goyave.dev/goyave/v5@v5.0.0-rc9.0.20240517145003-d3f977d0b9f3/component_test.go (about) 1 package goyave 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/stretchr/testify/require" 8 "goyave.dev/goyave/v5/config" 9 10 _ "goyave.dev/goyave/v5/database/dialect/sqlite" 11 ) 12 13 func TestComponent(t *testing.T) { 14 cfg := config.LoadDefault() 15 cfg.Set("database.connection", "sqlite3") 16 cfg.Set("database.name", "test_component.db") 17 cfg.Set("database.options", "mode=memory") 18 server, err := New(Options{Config: cfg}) 19 require.NoError(t, err) 20 defer func() { 21 assert.NoError(t, server.CloseDB()) 22 }() 23 service := &DummyService{} 24 server.RegisterService(service) 25 26 c := &Component{} 27 c.Init(server) 28 29 s, ok := c.LookupService("dummy") 30 assert.Equal(t, service, s) 31 assert.True(t, ok) 32 33 s = c.Service("dummy") 34 assert.Equal(t, service, s) 35 36 s, ok = c.LookupService("not_a_service") 37 assert.Nil(t, s) 38 assert.False(t, ok) 39 40 assert.Panics(t, func() { 41 server.Service("not_a_service") 42 }) 43 44 assert.Equal(t, server.Logger, c.Logger()) 45 assert.Equal(t, server.config, c.Config()) 46 assert.Equal(t, server.Lang, c.Lang()) 47 assert.Equal(t, server.db, c.DB()) 48 }