diff options
Diffstat (limited to 'core/utils_test.go')
-rw-r--r-- | core/utils_test.go | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/core/utils_test.go b/core/utils_test.go index bb1cb65..ceec860 100644 --- a/core/utils_test.go +++ b/core/utils_test.go @@ -1,9 +1,30 @@ +// Copyright 2018 The dexon-consensus-core Authors +// This file is part of the dexon-consensus-core library. +// +// The dexon-consensus-core library is free software: you can redistribute it +// and/or modify it under the terms of the GNU Lesser General Public License as +// published by the Free Software Foundation, either version 3 of the License, +// or (at your option) any later version. +// +// The dexon-consensus-core library is distributed in the hope that it will be +// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +// General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the dexon-consensus-core library. If not, see +// <http://www.gnu.org/licenses/>. + package core import ( "testing" "github.com/stretchr/testify/suite" + + "github.com/dexon-foundation/dexon-consensus-core/common" + "github.com/dexon-foundation/dexon-consensus-core/core/crypto/ecdsa" + "github.com/dexon-foundation/dexon-consensus-core/core/types" ) type UtilsTestSuite struct { @@ -22,6 +43,24 @@ func (s *UtilsTestSuite) TestRemoveFromSortedUint32Slice() { s.Equal([]uint32{}, removeFromSortedUint32Slice([]uint32{}, 1)) } +func (s *UtilsTestSuite) TestVerifyBlock() { + prv, err := ecdsa.NewPrivateKey() + s.Require().NoError(err) + auth := NewAuthenticator(prv) + block := &types.Block{} + auth.SignBlock(block) + s.NoError(VerifyBlock(block)) + + hash := block.Hash + block.Hash = common.NewRandomHash() + s.Equal(ErrIncorrectHash, VerifyBlock(block)) + + block.Hash = hash + block.Signature, err = prv.Sign(common.NewRandomHash()) + s.Require().NoError(err) + s.Equal(ErrIncorrectSignature, VerifyBlock(block)) +} + func TestUtils(t *testing.T) { suite.Run(t, new(UtilsTestSuite)) } |