|
|
|
@ -4,8 +4,8 @@ import (
|
|
|
|
|
"testing" |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
func Test_generateGenesisBlock(t *testing.T) { |
|
|
|
|
genesisBlock := generateGenesisBlock() |
|
|
|
|
func Test_hasGenesisBlock(t *testing.T) { |
|
|
|
|
genesisBlock := NewBlockchain().Blocks[0] |
|
|
|
|
|
|
|
|
|
if len(genesisBlock.PreviousHash) > 1 { |
|
|
|
|
t.Errorf("Previous hash of Genesis Block is not empty!") |
|
|
|
@ -23,10 +23,34 @@ func TestNewBlockchain(t *testing.T) {
|
|
|
|
|
func TestBlockchain_GetLastHash(t *testing.T) { |
|
|
|
|
blockchain := NewBlockchain() |
|
|
|
|
|
|
|
|
|
blockchain.MineBlock(Block{}) |
|
|
|
|
want := blockchain.Blocks[1].Hash |
|
|
|
|
blockchain.MineBlock() |
|
|
|
|
want := blockchain.Blocks[1].Hash() |
|
|
|
|
got := blockchain.GetLastHash() |
|
|
|
|
if got != want { |
|
|
|
|
t.Errorf("Want: %v, but got %v", want, got) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestBlockchain_IsValid(t *testing.T) { |
|
|
|
|
blockchain := NewBlockchain() |
|
|
|
|
blockchain.MineBlock() |
|
|
|
|
|
|
|
|
|
want := true |
|
|
|
|
got := blockchain.IsValid() |
|
|
|
|
if got != want { |
|
|
|
|
t.Errorf("Want: %v, but got %v", want, got) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
func TestBlockchain_IsNotValid(t *testing.T) { |
|
|
|
|
blockchain := NewBlockchain() |
|
|
|
|
blockchain.MineBlock() |
|
|
|
|
blockchain.MineBlock() |
|
|
|
|
blockchain.Blocks[1].Proof++ |
|
|
|
|
|
|
|
|
|
want := false |
|
|
|
|
got := blockchain.IsValid() |
|
|
|
|
if got != want { |
|
|
|
|
t.Errorf("Want: %v, but got %v", want, got) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|