You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
zk/internal/adapter/sqlite/metadata_dao_test.go

56 lines
1.3 KiB
Go

package sqlite
import (
"testing"
"github.com/zk-org/zk/internal/util/test/assert"
)
func TestMetadataDAOGetUnknown(t *testing.T) {
testMetadataDAO(t, func(tx Transaction, dao *MetadataDAO) {
res, err := dao.Get("unknown")
assert.Nil(t, err)
assert.Equal(t, res, "")
})
}
func TestMetadataDAOGetExisting(t *testing.T) {
testMetadataDAO(t, func(tx Transaction, dao *MetadataDAO) {
res, err := dao.Get("a_metadata")
assert.Nil(t, err)
assert.Equal(t, res, "value")
})
}
func TestMetadataDAOSetUnknown(t *testing.T) {
testMetadataDAO(t, func(tx Transaction, dao *MetadataDAO) {
res, err := dao.Get("new_metadata")
assert.Nil(t, err)
assert.Equal(t, res, "")
err = dao.Set("new_metadata", "pamplemousse")
assert.Nil(t, err)
res, err = dao.Get("new_metadata")
assert.Nil(t, err)
assert.Equal(t, res, "pamplemousse")
})
}
func TestMetadataDAOSetExisting(t *testing.T) {
testMetadataDAO(t, func(tx Transaction, dao *MetadataDAO) {
err := dao.Set("a_metadata", "new_value")
assert.Nil(t, err)
res, err := dao.Get("a_metadata")
assert.Nil(t, err)
assert.Equal(t, res, "new_value")
})
}
func testMetadataDAO(t *testing.T, callback func(tx Transaction, dao *MetadataDAO)) {
testTransaction(t, func(tx Transaction) {
callback(tx, NewMetadataDAO(tx))
})
}