1 Star 0 Fork 0

liwen_test_sync_group / dsunit

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
dataset_test.go 2.64 KB
一键复制 编辑 原始数据 按行查看 历史
adrianwit 提交于 2018-05-22 14:58 . patched nil values
package dsunit_test
import (
"github.com/stretchr/testify/assert"
"github.com/viant/assertly"
"github.com/viant/dsunit"
"github.com/viant/toolbox"
"path"
"strings"
"testing"
)
func TestNewDataset(t *testing.T) {
{
dataset := dsunit.NewDataset("table1",
map[string]interface{}{
assertly.IndexByDirective: []string{"id"},
dsunit.AutoincrementDirective: "id",
},
map[string]interface{}{},
map[string]interface{}{
"id": 1,
"username": "Dudi",
"active": true,
"comments": "abc",
"@source@": "pk:1",
},
map[string]interface{}{
"id": 2,
"username": "Bogi",
"active": false,
"email": "a@as.ws",
})
assert.Equal(t, "table1", dataset.Table)
assert.True(t, dataset.Records.Autoincrement())
assert.True(t, dataset.Records.ShouldDeleteAll())
assert.Equal(t, []string{"id"}, dataset.Records.UniqueKeys())
assert.Equal(t, []string{"active", "comments", "email", "id", "username"}, dataset.Records.Columns())
context := toolbox.NewContext()
records, err := dataset.Records.Expand(context, false)
if assert.Nil(t, err) {
assert.Equal(t, 2, len(records))
assert.EqualValues(t, map[string]interface{}{
"id": 1,
"username": "Dudi",
"active": true,
"comments": "abc",
}, records[0])
}
}
{
dataset := dsunit.NewDataset("table1",
map[string]interface{}{
assertly.IndexByDirective: "id",
dsunit.FromQueryDirective: "SELECT * FROM table1",
},
map[string]interface{}{
"id": 1,
"username": "Dudi",
"active": true,
"@source@": "pk:1",
},
map[string]interface{}{
"id": 2,
"username": "Bogi",
"active": false,
"email": "a@as.ws",
})
assert.Equal(t, "table1", dataset.Table)
assert.False(t, dataset.Records.Autoincrement())
assert.Equal(t, []string{"id"}, dataset.Records.UniqueKeys())
assert.Equal(t, []string{"active", "email", "id", "username"}, dataset.Records.Columns())
var query, _ = dataset.Records.FromQuery()
assert.EqualValues(t, "SELECT * FROM table1", query)
}
}
func TestNewDatasetResource_Load(t *testing.T) {
baseDirectory := toolbox.CallerDirectory(3)
datasetResource := dsunit.NewDatasetResource("db1", path.Join(baseDirectory, "test", "load"), "prefix_", "")
if assert.Nil(t, datasetResource.Load()) {
assert.EqualValues(t, 4, len(datasetResource.Datasets))
for _, dataset := range datasetResource.Datasets {
context := toolbox.NewContext()
records, err := dataset.Records.Expand(context, false)
assert.Nil(t, err)
assert.EqualValues(t, 3, len(records))
assert.True(t, strings.HasPrefix(dataset.Table, "user"), dataset.Table)
}
}
}
1
https://gitee.com/liwen_test_sync_group/dsunit.git
git@gitee.com:liwen_test_sync_group/dsunit.git
liwen_test_sync_group
dsunit
dsunit
master

搜索帮助