67 lines
2.3 KiB
Go
67 lines
2.3 KiB
Go
package orm
|
|
|
|
import (
|
|
"github.com/cosmos/cosmos-sdk/codec"
|
|
"github.com/cosmos/cosmos-sdk/testutil/testdata"
|
|
)
|
|
|
|
type TestKeeper struct {
|
|
autoUInt64Table *AutoUInt64Table
|
|
primaryKeyTable *PrimaryKeyTable
|
|
autoUInt64TableModelByMetadataIndex Index
|
|
primaryKeyTableModelByNameIndex Index
|
|
primaryKeyTableModelByNumberIndex Index
|
|
primaryKeyTableModelByMetadataIndex Index
|
|
}
|
|
|
|
var (
|
|
AutoUInt64TablePrefix [2]byte = [2]byte{0x0}
|
|
PrimaryKeyTablePrefix [2]byte = [2]byte{0x1}
|
|
AutoUInt64TableSeqPrefix byte = 0x2
|
|
AutoUInt64TableModelByMetadataPrefix byte = 0x4
|
|
PrimaryKeyTableModelByNamePrefix byte = 0x5
|
|
PrimaryKeyTableModelByNumberPrefix byte = 0x6
|
|
PrimaryKeyTableModelByMetadataPrefix byte = 0x7
|
|
)
|
|
|
|
func NewTestKeeper(cdc codec.Codec) TestKeeper {
|
|
k := TestKeeper{}
|
|
var err error
|
|
|
|
k.autoUInt64Table, err = NewAutoUInt64Table(AutoUInt64TablePrefix, AutoUInt64TableSeqPrefix, &testdata.TableModel{}, cdc)
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
k.autoUInt64TableModelByMetadataIndex, err = NewIndex(k.autoUInt64Table, AutoUInt64TableModelByMetadataPrefix, func(val interface{}) ([]interface{}, error) {
|
|
return []interface{}{val.(*testdata.TableModel).Metadata}, nil
|
|
}, testdata.TableModel{}.Metadata)
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
|
|
k.primaryKeyTable, err = NewPrimaryKeyTable(PrimaryKeyTablePrefix, &testdata.TableModel{}, cdc)
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
k.primaryKeyTableModelByNameIndex, err = NewIndex(k.primaryKeyTable, PrimaryKeyTableModelByNamePrefix, func(val interface{}) ([]interface{}, error) {
|
|
return []interface{}{val.(*testdata.TableModel).Name}, nil
|
|
}, testdata.TableModel{}.Name)
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
k.primaryKeyTableModelByNumberIndex, err = NewIndex(k.primaryKeyTable, PrimaryKeyTableModelByNumberPrefix, func(val interface{}) ([]interface{}, error) {
|
|
return []interface{}{val.(*testdata.TableModel).Number}, nil
|
|
}, testdata.TableModel{}.Number)
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
k.primaryKeyTableModelByMetadataIndex, err = NewIndex(k.primaryKeyTable, PrimaryKeyTableModelByMetadataPrefix, func(val interface{}) ([]interface{}, error) {
|
|
return []interface{}{val.(*testdata.TableModel).Metadata}, nil
|
|
}, testdata.TableModel{}.Metadata)
|
|
if err != nil {
|
|
panic(err.Error())
|
|
}
|
|
|
|
return k
|
|
}
|