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  }