github.com/celestiaorg/celestia-node@v0.15.0-beta.1/share/availability/light/testing.go (about)

     1  package light
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/ipfs/boxo/blockservice"
     7  	"github.com/ipfs/go-datastore"
     8  
     9  	"github.com/celestiaorg/celestia-node/header"
    10  	"github.com/celestiaorg/celestia-node/header/headertest"
    11  	"github.com/celestiaorg/celestia-node/share"
    12  	availability_test "github.com/celestiaorg/celestia-node/share/availability/test"
    13  	"github.com/celestiaorg/celestia-node/share/getters"
    14  	"github.com/celestiaorg/celestia-node/share/ipld"
    15  )
    16  
    17  // GetterWithRandSquare provides a share.Getter filled with 'n' NMT trees of 'n' random shares,
    18  // essentially storing a whole square.
    19  func GetterWithRandSquare(t *testing.T, n int) (share.Getter, *header.ExtendedHeader) {
    20  	bServ := ipld.NewMemBlockservice()
    21  	getter := getters.NewIPLDGetter(bServ)
    22  	root := availability_test.RandFillBS(t, n, bServ)
    23  	eh := headertest.RandExtendedHeader(t)
    24  	eh.DAH = root
    25  
    26  	return getter, eh
    27  }
    28  
    29  // EmptyGetter provides an unfilled share.Getter with corresponding blockservice.BlockService than
    30  // can be filled by the test.
    31  func EmptyGetter() (share.Getter, blockservice.BlockService) {
    32  	bServ := ipld.NewMemBlockservice()
    33  	getter := getters.NewIPLDGetter(bServ)
    34  	return getter, bServ
    35  }
    36  
    37  // RandNode creates a Light Node filled with a random block of the given size.
    38  func RandNode(dn *availability_test.TestDagNet, squareSize int) (*availability_test.TestNode, *share.Root) {
    39  	nd := Node(dn)
    40  	return nd, availability_test.RandFillBS(dn.T, squareSize, nd.BlockService)
    41  }
    42  
    43  // Node creates a new empty Light Node.
    44  func Node(dn *availability_test.TestDagNet) *availability_test.TestNode {
    45  	nd := dn.NewTestNode()
    46  	nd.Getter = getters.NewIPLDGetter(nd.BlockService)
    47  	nd.Availability = TestAvailability(nd.Getter)
    48  	return nd
    49  }
    50  
    51  func TestAvailability(getter share.Getter) *ShareAvailability {
    52  	ds := datastore.NewMapDatastore()
    53  	return NewShareAvailability(getter, ds)
    54  }
    55  
    56  func SubNetNode(sn *availability_test.SubNet) *availability_test.TestNode {
    57  	nd := Node(sn.TestDagNet)
    58  	sn.AddNode(nd)
    59  	return nd
    60  }