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 }