65 lines
1.4 KiB
Go
65 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())
|
||
|
}
|