github.com/decred/dcrlnd@v0.7.6/shachain/producer_test.go (about)

     1  package shachain
     2  
     3  import (
     4  	"bytes"
     5  	"crypto/sha256"
     6  	"testing"
     7  )
     8  
     9  // TestShaChainProducerRestore checks the ability of shachain producer to be
    10  // properly recreated from binary representation.
    11  func TestShaChainProducerRestore(t *testing.T) {
    12  	t.Parallel()
    13  
    14  	var err error
    15  
    16  	seed := sha256.Sum256([]byte("shachaintest"))
    17  	sender := NewRevocationProducer(seed)
    18  
    19  	s1, err := sender.AtIndex(0)
    20  	if err != nil {
    21  		t.Fatal(err)
    22  	}
    23  
    24  	var b bytes.Buffer
    25  	if err := sender.Encode(&b); err != nil {
    26  		t.Fatal(err)
    27  	}
    28  
    29  	sender, err = NewRevocationProducerFromBytes(b.Bytes())
    30  	if err != nil {
    31  		t.Fatal(err)
    32  	}
    33  
    34  	s3, err := sender.AtIndex(0)
    35  	if err != nil {
    36  		t.Fatal(err)
    37  	}
    38  
    39  	if *s1 != *s3 {
    40  		t.Fatalf("secrets should match: %v:%v", s1, s3)
    41  	}
    42  }