github.com/decred/dcrlnd@v0.7.6/lnwire/typed_delivery_addr_test.go (about)

     1  package lnwire
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  )
     7  
     8  // TestDeliveryAddressEncodeDecode tests that we're able to properly
     9  // encode and decode delivery addresses within TLV streams.
    10  func TestDeliveryAddressEncodeDecode(t *testing.T) {
    11  	t.Parallel()
    12  
    13  	addr := DeliveryAddress(
    14  		bytes.Repeat([]byte("a"), deliveryAddressMaxSize),
    15  	)
    16  
    17  	var extraData ExtraOpaqueData
    18  	err := extraData.PackRecords(&addr)
    19  	if err != nil {
    20  		t.Fatal(err)
    21  	}
    22  
    23  	var addr2 DeliveryAddress
    24  	tlvs, err := extraData.ExtractRecords(&addr2)
    25  	if err != nil {
    26  		t.Fatal(err)
    27  	}
    28  
    29  	if _, ok := tlvs[DeliveryAddrType]; !ok {
    30  		t.Fatalf("DeliveryAddrType not found in records")
    31  	}
    32  
    33  	if !bytes.Equal(addr, addr2) {
    34  		t.Fatalf("addr mismatch: expected %x, got %x", addr[:],
    35  			addr2[:])
    36  	}
    37  }