producer_test.go 802 B

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