ec17654986
add dao which takes care about all CRUD operations on storage remove blockchain state since everything is stored on change remove storage operations from structs(entities) move structs to entities package
64 lines
1.4 KiB
Go
64 lines
1.4 KiB
Go
package entities
|
|
|
|
import (
|
|
"math/big"
|
|
"testing"
|
|
|
|
"github.com/CityOfZion/neo-go/pkg/crypto/keys"
|
|
"github.com/CityOfZion/neo-go/pkg/io"
|
|
"github.com/CityOfZion/neo-go/pkg/util"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestValidatorState_DecodeEncodeBinary(t *testing.T) {
|
|
state := &ValidatorState{
|
|
PublicKey: &keys.PublicKey{},
|
|
Registered: false,
|
|
Votes: util.Fixed8(10),
|
|
}
|
|
buf := io.NewBufBinWriter()
|
|
state.EncodeBinary(buf.BinWriter)
|
|
require.NoError(t, buf.Err)
|
|
|
|
decodedState := &ValidatorState{}
|
|
reader := io.NewBinReaderFromBuf(buf.Bytes())
|
|
decodedState.DecodeBinary(reader)
|
|
require.NoError(t, reader.Err)
|
|
require.Equal(t, state, decodedState)
|
|
}
|
|
|
|
func TestRegisteredAndHasVotes_Registered(t *testing.T) {
|
|
state := &ValidatorState{
|
|
PublicKey: &keys.PublicKey{
|
|
X: big.NewInt(1),
|
|
Y: big.NewInt(1),
|
|
},
|
|
Registered: true,
|
|
Votes: 0,
|
|
}
|
|
require.False(t, state.RegisteredAndHasVotes())
|
|
}
|
|
|
|
func TestRegisteredAndHasVotes_RegisteredWithVotes(t *testing.T) {
|
|
state := &ValidatorState{
|
|
PublicKey: &keys.PublicKey{
|
|
X: big.NewInt(1),
|
|
Y: big.NewInt(1),
|
|
},
|
|
Registered: true,
|
|
Votes: 1,
|
|
}
|
|
require.True(t, state.RegisteredAndHasVotes())
|
|
}
|
|
|
|
func TestRegisteredAndHasVotes_NotRegisteredWithVotes(t *testing.T) {
|
|
state := &ValidatorState{
|
|
PublicKey: &keys.PublicKey{
|
|
X: big.NewInt(1),
|
|
Y: big.NewInt(1),
|
|
},
|
|
Registered: false,
|
|
Votes: 1,
|
|
}
|
|
require.False(t, state.RegisteredAndHasVotes())
|
|
}
|