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 }