@@ -8,55 +8,23 @@ import (
88
99 "github.com/celestiaorg/go-square/v3/share"
1010 blobrpc "github.com/evstack/ev-node/pkg/da/jsonrpc"
11+ "github.com/evstack/ev-node/pkg/da/jsonrpc/mocks"
1112 datypes "github.com/evstack/ev-node/pkg/da/types"
1213 "github.com/rs/zerolog"
1314 "github.com/stretchr/testify/assert"
15+ "github.com/stretchr/testify/mock"
1416 "github.com/stretchr/testify/require"
1517)
1618
17- type mockBlobAPI struct {
18- submitErr error
19- height uint64
20- blobs []* blobrpc.Blob
21- proof * blobrpc.Proof
22- included bool
23- commitProof * blobrpc.CommitmentProof
24- }
25-
26- func (m * mockBlobAPI ) Submit (ctx context.Context , blobs []* blobrpc.Blob , opts * blobrpc.SubmitOptions ) (uint64 , error ) {
27- return m .height , m .submitErr
28- }
29-
30- func (m * mockBlobAPI ) GetAll (ctx context.Context , height uint64 , namespaces []share.Namespace ) ([]* blobrpc.Blob , error ) {
31- return m .blobs , m .submitErr
32- }
33-
34- func (m * mockBlobAPI ) GetProof (ctx context.Context , height uint64 , namespace share.Namespace , commitment blobrpc.Commitment ) (* blobrpc.Proof , error ) {
35- return m .proof , m .submitErr
36- }
37-
38- func (m * mockBlobAPI ) Included (ctx context.Context , height uint64 , namespace share.Namespace , proof * blobrpc.Proof , commitment blobrpc.Commitment ) (bool , error ) {
39- return m .included , m .submitErr
40- }
41-
42- func (m * mockBlobAPI ) GetCommitmentProof (ctx context.Context , height uint64 , namespace share.Namespace , shareCommitment []byte ) (* blobrpc.CommitmentProof , error ) {
43- return m .commitProof , m .submitErr
44- }
45-
46- func (m * mockBlobAPI ) Subscribe (ctx context.Context , namespace share.Namespace ) (<- chan * blobrpc.SubscriptionResponse , error ) {
47- ch := make (chan * blobrpc.SubscriptionResponse )
48- close (ch )
49- return ch , nil
50- }
51-
52- func makeBlobRPCClient (m * mockBlobAPI ) * blobrpc.Client {
19+ func makeBlobRPCClient (module * mocks.MockBlobModule ) * blobrpc.Client {
5320 var api blobrpc.BlobAPI
54- api .Internal .Submit = m .Submit
55- api .Internal .GetAll = m .GetAll
56- api .Internal .GetProof = m .GetProof
57- api .Internal .Included = m .Included
58- api .Internal .GetCommitmentProof = m .GetCommitmentProof
59- api .Internal .Subscribe = m .Subscribe
21+ api .Internal .Submit = module .Submit
22+ api .Internal .Get = module .Get
23+ api .Internal .GetAll = module .GetAll
24+ api .Internal .GetProof = module .GetProof
25+ api .Internal .Included = module .Included
26+ api .Internal .GetCommitmentProof = module .GetCommitmentProof
27+ api .Internal .Subscribe = module .Subscribe
6028 return & blobrpc.Client {Blob : api }
6129}
6230
@@ -78,8 +46,11 @@ func TestClient_Submit_ErrorMapping(t *testing.T) {
7846
7947 for _ , tc := range testCases {
8048 t .Run (tc .name , func (t * testing.T ) {
49+ module := mocks .NewMockBlobModule (t )
50+ module .On ("Submit" , mock .Anything , mock .Anything , mock .Anything ).Return (uint64 (0 ), tc .err )
51+
8152 cl := NewClient (Config {
82- Client : makeBlobRPCClient (& mockBlobAPI { submitErr : tc . err } ),
53+ Client : makeBlobRPCClient (module ),
8354 Logger : zerolog .Nop (),
8455 Namespace : "ns" ,
8556 DataNamespace : "ns" ,
@@ -92,9 +63,11 @@ func TestClient_Submit_ErrorMapping(t *testing.T) {
9263
9364func TestClient_Submit_Success (t * testing.T ) {
9465 ns := share .MustNewV0Namespace ([]byte ("ns" )).Bytes ()
95- mockAPI := & mockBlobAPI {height : 10 }
66+ module := mocks .NewMockBlobModule (t )
67+ module .On ("Submit" , mock .Anything , mock .Anything , mock .Anything ).Return (uint64 (10 ), nil )
68+
9669 cl := NewClient (Config {
97- Client : makeBlobRPCClient (mockAPI ),
70+ Client : makeBlobRPCClient (module ),
9871 Logger : zerolog .Nop (),
9972 Namespace : "ns" ,
10073 DataNamespace : "ns" ,
@@ -106,9 +79,9 @@ func TestClient_Submit_Success(t *testing.T) {
10679}
10780
10881func TestClient_Submit_InvalidNamespace (t * testing.T ) {
109- mockAPI := & mockBlobAPI { height : 10 }
82+ module := mocks . NewMockBlobModule ( t )
11083 cl := NewClient (Config {
111- Client : makeBlobRPCClient (mockAPI ),
84+ Client : makeBlobRPCClient (module ),
11285 Logger : zerolog .Nop (),
11386 Namespace : "ns" ,
11487 DataNamespace : "ns" ,
@@ -119,9 +92,11 @@ func TestClient_Submit_InvalidNamespace(t *testing.T) {
11992
12093func TestClient_Retrieve_NotFound (t * testing.T ) {
12194 ns := share .MustNewV0Namespace ([]byte ("ns" )).Bytes ()
122- mockAPI := & mockBlobAPI {submitErr : datypes .ErrBlobNotFound }
95+ module := mocks .NewMockBlobModule (t )
96+ module .On ("GetAll" , mock .Anything , mock .Anything , mock .Anything ).Return ([]* blobrpc.Blob (nil ), datypes .ErrBlobNotFound )
97+
12398 cl := NewClient (Config {
124- Client : makeBlobRPCClient (mockAPI ),
99+ Client : makeBlobRPCClient (module ),
125100 Logger : zerolog .Nop (),
126101 Namespace : "ns" ,
127102 DataNamespace : "ns" ,
@@ -134,9 +109,11 @@ func TestClient_Retrieve_Success(t *testing.T) {
134109 ns := share .MustNewV0Namespace ([]byte ("ns" )).Bytes ()
135110 b , err := blobrpc .NewBlobV0 (share .MustNewV0Namespace ([]byte ("ns" )), []byte ("payload" ))
136111 require .NoError (t , err )
137- mockAPI := & mockBlobAPI {height : 7 , blobs : []* blobrpc.Blob {b }}
112+ module := mocks .NewMockBlobModule (t )
113+ module .On ("GetAll" , mock .Anything , uint64 (7 ), mock .Anything ).Return ([]* blobrpc.Blob {b }, nil )
114+
138115 cl := NewClient (Config {
139- Client : makeBlobRPCClient (mockAPI ),
116+ Client : makeBlobRPCClient (module ),
140117 Logger : zerolog .Nop (),
141118 Namespace : "ns" ,
142119 DataNamespace : "ns" ,
@@ -149,9 +126,11 @@ func TestClient_Retrieve_Success(t *testing.T) {
149126
150127func TestClient_SubmitOptionsMerge (t * testing.T ) {
151128 ns := share .MustNewV0Namespace ([]byte ("ns" )).Bytes ()
152- mockAPI := & mockBlobAPI {height : 1 }
129+ module := mocks .NewMockBlobModule (t )
130+ module .On ("Submit" , mock .Anything , mock .Anything , mock .Anything ).Return (uint64 (1 ), nil )
131+
153132 cl := NewClient (Config {
154- Client : makeBlobRPCClient (mockAPI ),
133+ Client : makeBlobRPCClient (module ),
155134 Logger : zerolog .Nop (),
156135 Namespace : "ns" ,
157136 DataNamespace : "ns" ,
@@ -169,13 +148,11 @@ func TestClient_RetrieveHeaders(t *testing.T) {
169148 ns := share .MustNewV0Namespace ([]byte ("header-ns" ))
170149 blb , err := blobrpc .NewBlobV0 (ns , []byte ("header-blob" ))
171150 require .NoError (t , err )
172-
173- mockAPI := & mockBlobAPI {
174- blobs : []* blobrpc.Blob {blb },
175- }
151+ module := mocks .NewMockBlobModule (t )
152+ module .On ("GetAll" , mock .Anything , uint64 (42 ), mock .Anything ).Return ([]* blobrpc.Blob {blb }, nil )
176153
177154 client := NewClient (Config {
178- Client : makeBlobRPCClient (mockAPI ),
155+ Client : makeBlobRPCClient (module ),
179156 Logger : zerolog .Nop (),
180157 Namespace : "header-ns" ,
181158 DataNamespace : "data-ns" ,
@@ -194,13 +171,11 @@ func TestClient_RetrieveData(t *testing.T) {
194171 require .NoError (t , err )
195172 blb2 , err := blobrpc .NewBlobV0 (ns , []byte ("data-blob-2" ))
196173 require .NoError (t , err )
197-
198- mockAPI := & mockBlobAPI {
199- blobs : []* blobrpc.Blob {blb1 , blb2 },
200- }
174+ module := mocks .NewMockBlobModule (t )
175+ module .On ("GetAll" , mock .Anything , uint64 (99 ), mock .Anything ).Return ([]* blobrpc.Blob {blb1 , blb2 }, nil )
201176
202177 client := NewClient (Config {
203- Client : makeBlobRPCClient (mockAPI ),
178+ Client : makeBlobRPCClient (module ),
204179 Logger : zerolog .Nop (),
205180 Namespace : "header-ns" ,
206181 DataNamespace : "data-ns" ,
0 commit comments