lnd.xprv/lnwire/single_funding_response_test.go
bryanvu e549a3f0ed fundingmanager: move final funding steps from wallet to funding manager.
Once a channel funding process has advanced to the point of broadcasting
the funding transaction, the state of the channel should be persisted
so that the nodes can disconnect or go down without having to wait for the
funding transaction to be confirmed on the blockchain.

Previously, the finalization of the funding process was handled by a
combination of the funding manager, the peer and the wallet, but if
the remote peer is no longer online or no longer connected, this flow
will no longer work. This commit moves all funding steps following
the transaction broadcast into the funding manager, which is available
as long as the daemon is running.
2017-02-24 11:37:33 -08:00

33 lines
850 B
Go

package lnwire
import (
"bytes"
"reflect"
"testing"
)
func TestSingleFundingResponseWire(t *testing.T) {
// First create a new SFR message.
delivery := PkScript(bytes.Repeat([]byte{0x02}, 25))
sfr := NewSingleFundingResponse(22, pubKey, pubKey, pubKey, 5,
delivery, 540, 4)
// Next encode the SFR message into an empty bytes buffer.
var b bytes.Buffer
if err := sfr.Encode(&b, 0); err != nil {
t.Fatalf("unable to encode SingleFundingSignComplete: %v", err)
}
// Deserialize the encoded SFR message into a new empty struct.
sfr2 := &SingleFundingResponse{}
if err := sfr2.Decode(&b, 0); err != nil {
t.Fatalf("unable to decode SingleFundingResponse: %v", err)
}
// Assert equality of the two instances.
if !reflect.DeepEqual(sfr, sfr2) {
t.Fatalf("encode/decode error messages don't match %#v vs %#v",
sfr, sfr2)
}
}