github.com/gocaveman/caveman@v0.0.0-20191211162744-0ddf99dbdf6e/menus/menusdbr/db-menu-store_test.go (about) 1 package menusdbr 2 3 import ( 4 "testing" 5 6 "github.com/gocaveman/caveman/menus" 7 "github.com/gocaveman/caveman/migrate" 8 "github.com/gocaveman/caveman/migrate/migratedbr" 9 "github.com/gocraft/dbr" 10 "github.com/stretchr/testify/assert" 11 12 _ "github.com/mattn/go-sqlite3" 13 ) 14 15 func initDBTest(t *testing.T) *DBMenuStore { 16 17 assert := assert.New(t) 18 19 dsn := `file:TestDBMenuStore?mode=memory&cache=shared` 20 driver := "sqlite3" 21 22 conn, err := dbr.Open(driver, dsn, nil) 23 assert.NoError(err) 24 25 ver, err := migratedbr.New(driver, dsn) 26 assert.Nil(err) 27 28 runner := migrate.NewRunner(driver, dsn, ver, Migrations) 29 err = runner.RunAllUpToLatest() 30 assert.Nil(err) 31 32 s := &DBMenuStore{ 33 Connection: conn, 34 } 35 36 return s 37 } 38 39 func TestDBMenuStore(t *testing.T) { 40 41 assert := assert.New(t) 42 43 s := initDBTest(t) 44 45 err := s.CreateMenuItem(&menus.MenuItem{ 46 ParentMenuID: "", 47 MenuID: "example1", 48 Title: "The Title Here", 49 Enabled: true, 50 }) 51 assert.NoError(err) 52 53 mi, err := s.ReadMenuItem("example1") 54 assert.NoError(err) 55 assert.Equal("The Title Here", mi.Title) 56 57 mi = &menus.MenuItem{ 58 ParentMenuID: "", 59 MenuID: "example1", 60 Title: "New Title", 61 Enabled: true, 62 } 63 err = s.UpdateMenuItem(mi) 64 assert.NoError(err) 65 66 err = s.DeleteMenuItem("example1") 67 assert.NoError(err) 68 69 err = s.CreateMenuItem(&menus.MenuItem{MenuID: "example1"}) 70 assert.NoError(err) 71 err = s.CreateMenuItem(&menus.MenuItem{MenuID: "example2"}) 72 assert.NoError(err) 73 err = s.CreateMenuItem(&menus.MenuItem{MenuID: "example3"}) 74 assert.NoError(err) 75 76 ids, err := s.FindChildren("") 77 assert.NoError(err) 78 assert.Equal([]string{"example1", "example2", "example3"}, ids) 79 80 }