123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package reduce_test
- import (
- "fmt"
- "reflect"
- "testing"
- "time"
- "git.wecise.com/wecise/odbserver/odb"
- "git.wecise.com/wecise/odbserver/odb/gapi"
- "git.wecise.com/wecise/odbserver/odb/query"
- "git.wecise.com/wecise/odbserver/odb/redisvr"
- )
- func TestInitValues(t *testing.T) {
- conf := redisvr.ODBConfig("0.0.0")
- odb.ODB = odb.NewOMDB(conf)
- var err error
- defer func() {
- if err != nil {
- t.Error(err)
- }
- }()
- keyspace := "ootest"
- classname := "/test/initvalues"
- mql_createclass := ``
- mql_cleardata := ``
- id := fmt.Sprint(time.Now().UnixNano())
- newvalues := map[string]interface{}{id: id}
- g, e := gapi.GetG(keyspace)
- if e != nil {
- err = e
- return
- }
- cstru := g.Class(classname)
- _, _, e = g.Query(mql_createclass)
- if e != nil {
- err = e
- return
- }
- _, _, e = g.Query(mql_cleardata)
- if e != nil {
- err = e
- return
- }
- _, e = g.WriteObjectValues(cstru, id, newvalues, false)
- if e != nil {
- err = e
- return
- }
- lastrow, e := g.GetLastRow(cstru, id, &query.QueryMeta{AsteriskNoBucket: true}, true)
- if e != nil {
- err = e
- return
- }
- initrow := map[string]interface{}{}
- e = g.InitValues(cstru, initrow)
- if e != nil {
- err = e
- return
- }
- if !func() bool {
- if len(lastrow) != len(initrow) {
- return false
- }
- for k, v := range lastrow {
- if v == nil && initrow[k] != nil ||
- v != nil && initrow[k] == nil {
- return false
- }
- if v != nil && initrow[k] != nil {
- if reflect.TypeOf(v) != reflect.TypeOf(initrow[k]) {
- return false
- }
- switch xv := initrow[k].(type) {
- case int:
- if xv != v.(int) {
- return false
- }
- case int64:
- if xv != v.(int64) {
- return false
- }
- case float32:
- if xv != v.(float32) {
- return false
- }
- case float64:
- if xv != v.(float64) {
- return false
- }
- case string:
- if xv != v.(string) {
- return false
- }
- case bool:
- if xv != v.(bool) {
- return false
- }
- }
- }
- }
- return true
- }() {
- err = fmt.Errorf("读出默认值和内存默认值不一致, \nlastrow=%#v, \ninitrow=%#v", lastrow, initrow)
- return
- }
- }
|