1616 * limitations under the License.
1717 */
1818
19- package grpc
19+ package convert
2020
2121import (
2222 "testing"
2323 "time"
2424
2525 "github.com/onflow/cadence"
26- "github.com/onflow/cadence/encoding/ccf"
27- "github.com/onflow/flow/protobuf/go/flow/entities"
2826 "github.com/stretchr/testify/assert"
2927 "github.com/stretchr/testify/require"
3028
@@ -35,9 +33,9 @@ import (
3533func TestConvert_Account (t * testing.T ) {
3634 accountA := test .AccountGenerator ().New ()
3735
38- msg := accountToMessage (* accountA )
36+ msg := AccountToMessage (* accountA )
3937
40- accountB , err := messageToAccount (msg )
38+ accountB , err := MessageToAccount (msg )
4139 require .NoError (t , err )
4240
4341 assert .Equal (t , * accountA , accountB )
@@ -46,9 +44,9 @@ func TestConvert_Account(t *testing.T) {
4644func TestConvert_AccountKey (t * testing.T ) {
4745 keyA := test .AccountKeyGenerator ().New ()
4846
49- msg := accountKeyToMessage (keyA )
47+ msg := AccountKeyToMessage (keyA )
5048
51- keyB , err := messageToAccountKey (msg )
49+ keyB , err := MessageToAccountKey (msg )
5250 require .NoError (t , err )
5351
5452 assert .Equal (t , keyA , keyB )
@@ -57,23 +55,23 @@ func TestConvert_AccountKey(t *testing.T) {
5755func TestConvert_Block (t * testing.T ) {
5856 blockA := test .BlockGenerator ().New ()
5957
60- msg , err := blockToMessage (* blockA )
58+ msg , err := BlockToMessage (* blockA )
6159 require .NoError (t , err )
6260
63- blockB , err := messageToBlock (msg )
61+ blockB , err := MessageToBlock (msg )
6462 require .NoError (t , err )
6563
6664 assert .Equal (t , * blockA , blockB )
6765
6866 t .Run ("Without timestamp" , func (t * testing.T ) {
6967 blockA := test .BlockGenerator ().New ()
7068
71- msg , err := blockToMessage (* blockA )
69+ msg , err := BlockToMessage (* blockA )
7270 require .NoError (t , err )
7371
7472 msg .Timestamp = nil
7573
76- blockB , err = messageToBlock (msg )
74+ blockB , err = MessageToBlock (msg )
7775 require .NoError (t , err )
7876
7977 assert .Equal (t , time.Time {}, blockB .Timestamp )
@@ -83,69 +81,69 @@ func TestConvert_Block(t *testing.T) {
8381func TestConvert_BlockHeader (t * testing.T ) {
8482 headerA := test .BlockHeaderGenerator ().New ()
8583
86- msg , err := blockHeaderToMessage (headerA )
84+ msg , err := BlockHeaderToMessage (headerA )
8785 require .NoError (t , err )
8886
89- headerB , err := messageToBlockHeader (msg )
87+ headerB , err := MessageToBlockHeader (msg )
9088 require .NoError (t , err )
9189
9290 assert .Equal (t , headerA , headerB )
9391
9492 t .Run ("Without timestamp" , func (t * testing.T ) {
9593 headerA := test .BlockHeaderGenerator ().New ()
9694
97- msg , err := blockHeaderToMessage (headerA )
95+ msg , err := BlockHeaderToMessage (headerA )
9896 require .NoError (t , err )
9997
10098 msg .Timestamp = nil
10199
102- headerB , err = messageToBlockHeader (msg )
100+ headerB , err = MessageToBlockHeader (msg )
103101 require .NoError (t , err )
104102
105103 assert .Equal (t , time.Time {}, headerB .Timestamp )
106104 })
107105}
108106
109107func TestConvert_CadenceValue (t * testing.T ) {
110- t .Run ("Valid value" , func (t * testing.T ) {
108+ t .Run ("Valid jsoncdc encoded value" , func (t * testing.T ) {
111109 valueA := cadence .NewInt (42 )
112110
113- msg , err := cadenceValueToMessage (valueA )
111+ msg , err := CadenceValueToMessage (valueA , flow . EventEncodingVersionJSONCDC )
114112 require .NoError (t , err )
115113
116- valueB , err := messageToCadenceValue (msg , nil )
114+ valueB , err := MessageToCadenceValue (msg , nil )
117115 require .NoError (t , err )
118116
119117 assert .Equal (t , valueA , valueB )
120118 })
121119
122- t .Run ("Invalid message" , func (t * testing.T ) {
123- msg := []byte ("invalid JSON-CDC bytes" )
124-
125- value , err := messageToCadenceValue (msg , nil )
126- assert .Error (t , err )
127- assert .Nil (t , value )
128- })
129-
130- t .Run ("CCF encoded value" , func (t * testing.T ) {
120+ t .Run ("Valid CCF encoded value" , func (t * testing.T ) {
131121 valueA := cadence .NewInt (42 )
132122
133- msg , err := ccf . Encode (valueA )
123+ msg , err := CadenceValueToMessage (valueA , flow . EventEncodingVersionCCF )
134124 require .NoError (t , err )
135125
136- valueB , err := messageToCadenceValue (msg , nil )
126+ valueB , err := MessageToCadenceValue (msg , nil )
137127 require .NoError (t , err )
138128
139129 assert .Equal (t , valueA , valueB )
140130 })
131+
132+ t .Run ("Invalid message" , func (t * testing.T ) {
133+ msg := []byte ("invalid JSON-CDC bytes" )
134+
135+ value , err := MessageToCadenceValue (msg , nil )
136+ assert .Error (t , err )
137+ assert .Nil (t , value )
138+ })
141139}
142140
143141func TestConvert_Collection (t * testing.T ) {
144142 colA := test .CollectionGenerator ().New ()
145143
146- msg := collectionToMessage (* colA )
144+ msg := CollectionToMessage (* colA )
147145
148- colB , err := messageToCollection (msg )
146+ colB , err := MessageToCollection (msg )
149147 require .NoError (t , err )
150148
151149 assert .Equal (t , * colA , colB )
@@ -154,9 +152,9 @@ func TestConvert_Collection(t *testing.T) {
154152func TestConvert_CollectionGuarantee (t * testing.T ) {
155153 cgA := test .CollectionGuaranteeGenerator ().New ()
156154
157- msg := collectionGuaranteeToMessage (* cgA )
155+ msg := CollectionGuaranteeToMessage (* cgA )
158156
159- cgB , err := messageToCollectionGuarantee (msg )
157+ cgB , err := MessageToCollectionGuarantee (msg )
160158 require .NoError (t , err )
161159
162160 assert .Equal (t , * cgA , cgB )
@@ -165,9 +163,9 @@ func TestConvert_CollectionGuarantee(t *testing.T) {
165163func TestConvert_BlockSeal (t * testing.T ) {
166164 bsA := test .BlockSealGenerator ().New ()
167165
168- msg := blockSealToMessage (* bsA )
166+ msg := BlockSealToMessage (* bsA )
169167
170- bsB , err := messageToBlockSeal (msg )
168+ bsB , err := MessageToBlockSeal (msg )
171169 require .NoError (t , err )
172170
173171 assert .Equal (t , * bsA , bsB )
@@ -182,9 +180,9 @@ func TestConvert_CollectionGuarantees(t *testing.T) {
182180 cgs .New (),
183181 }
184182
185- msg := collectionGuaranteesToMessages (cgsA )
183+ msg := CollectionGuaranteesToMessages (cgsA )
186184
187- cgsB , err := messagesToCollectionGuarantees (msg )
185+ cgsB , err := MessagesToCollectionGuarantees (msg )
188186 require .NoError (t , err )
189187
190188 assert .Equal (t , cgsA , cgsB )
@@ -199,9 +197,9 @@ func TestConvert_BlockSeals(t *testing.T) {
199197 bss .New (),
200198 }
201199
202- msg := blockSealsToMessages (bssA )
200+ msg := BlockSealsToMessages (bssA )
203201
204- bssB , err := messagesToBlockSeals (msg )
202+ bssB , err := MessagesToBlockSeals (msg )
205203 require .NoError (t , err )
206204
207205 assert .Equal (t , bssA , bssB )
@@ -210,13 +208,11 @@ func TestConvert_BlockSeals(t *testing.T) {
210208func TestConvert_Event (t * testing.T ) {
211209
212210 t .Run ("JSON-CDC encoded payload" , func (t * testing.T ) {
213- eventA := test .EventGenerator ().
214- WithEncoding (entities .EventEncodingVersion_JSON_CDC_V0 ).
215- New ()
216- msg , err := eventToMessage (eventA )
211+ eventA := test .EventGenerator (flow .EventEncodingVersionJSONCDC ).New ()
212+ msg , err := EventToMessage (eventA , flow .EventEncodingVersionJSONCDC )
217213 require .NoError (t , err )
218214
219- eventB , err := messageToEvent (msg , nil )
215+ eventB , err := MessageToEvent (msg , nil )
220216 require .NoError (t , err )
221217
222218 // Force evaluation of type ID, which is cached in type.
@@ -227,18 +223,12 @@ func TestConvert_Event(t *testing.T) {
227223 })
228224
229225 t .Run ("CCF encoded payload" , func (t * testing.T ) {
230- eventA := test .EventGenerator ().
231- WithEncoding (entities .EventEncodingVersion_CCF_V0 ).
232- New ()
226+ eventA := test .EventGenerator (flow .EventEncodingVersionCCF ).New ()
233227
234- msg , err := eventToMessage (eventA )
228+ msg , err := EventToMessage (eventA , flow . EventEncodingVersionCCF )
235229 require .NoError (t , err )
236230
237- // explicitly re-encode the payload using CCF
238- msg .Payload , err = ccf .Encode (eventA .Value )
239- require .NoError (t , err )
240-
241- eventB , err := messageToEvent (msg , nil )
231+ eventB , err := MessageToEvent (msg , nil )
242232 require .NoError (t , err )
243233
244234 // Force evaluation of type ID, which is cached in type.
@@ -252,8 +242,8 @@ func TestConvert_Event(t *testing.T) {
252242func TestConvert_Identifier (t * testing.T ) {
253243 idA := test .IdentifierGenerator ().New ()
254244
255- msg := identifierToMessage (idA )
256- idB := messageToIdentifier (msg )
245+ msg := IdentifierToMessage (idA )
246+ idB := MessageToIdentifier (msg )
257247
258248 assert .Equal (t , idA , idB )
259249}
@@ -267,8 +257,8 @@ func TestConvert_Identifiers(t *testing.T) {
267257 ids .New (),
268258 }
269259
270- msg := identifiersToMessages (idsA )
271- idsB := messagesToIdentifiers (msg )
260+ msg := IdentifiersToMessages (idsA )
261+ idsB := MessagesToIdentifiers (msg )
272262
273263 assert .Equal (t , idsA , idsB )
274264}
@@ -278,10 +268,10 @@ func TestConvert_Transaction(t *testing.T) {
278268 txA := test .TransactionGenerator ().New ()
279269 txA .Arguments = nil
280270
281- msg , err := transactionToMessage (* txA )
271+ msg , err := TransactionToMessage (* txA )
282272 require .NoError (t , err )
283273
284- txB , err := messageToTransaction (msg )
274+ txB , err := MessageToTransaction (msg )
285275 require .NoError (t , err )
286276
287277 assert .Equal (t , txA .ID (), txB .ID ())
@@ -290,40 +280,59 @@ func TestConvert_Transaction(t *testing.T) {
290280 t .Run ("With arguments" , func (t * testing.T ) {
291281 txA := test .TransactionGenerator ().New ()
292282
293- msg , err := transactionToMessage (* txA )
283+ msg , err := TransactionToMessage (* txA )
294284 require .NoError (t , err )
295285
296- txB , err := messageToTransaction (msg )
286+ txB , err := MessageToTransaction (msg )
297287 require .NoError (t , err )
298288
299289 assert .Equal (t , txA .ID (), txB .ID ())
300290 })
301291}
302292
303293func TestConvert_TransactionResult (t * testing.T ) {
304- resultA := test .TransactionResultGenerator ().New ()
294+ t .Run ("with JSON-CDC encoded events" , func (t * testing.T ) {
295+ resultA := test .TransactionResultGenerator (flow .EventEncodingVersionJSONCDC ).New ()
305296
306- msg , err := transactionResultToMessage (resultA )
297+ msg , err := TransactionResultToMessage (resultA , flow . EventEncodingVersionJSONCDC )
307298
308- resultB , err := messageToTransactionResult (msg , nil )
309- require .NoError (t , err )
299+ resultB , err := MessageToTransactionResult (msg , nil )
300+ require .NoError (t , err )
310301
311- // Force evaluation of type ID, which is cached in type.
312- // Necessary for equality check below
313- for _ , event := range resultB .Events {
314- _ = event .Value .Type ().ID ()
315- }
302+ // Force evaluation of type ID, which is cached in type.
303+ // Necessary for equality check below
304+ for _ , event := range resultB .Events {
305+ _ = event .Value .Type ().ID ()
306+ }
307+
308+ assert .Equal (t , resultA , resultB )
309+ })
310+
311+ t .Run ("with CCF encoded events" , func (t * testing.T ) {
312+ resultA := test .TransactionResultGenerator (flow .EventEncodingVersionCCF ).New ()
316313
317- assert .Equal (t , resultA , resultB )
314+ msg , err := TransactionResultToMessage (resultA , flow .EventEncodingVersionCCF )
315+
316+ resultB , err := MessageToTransactionResult (msg , nil )
317+ require .NoError (t , err )
318+
319+ // Force evaluation of type ID, which is cached in type.
320+ // Necessary for equality check below
321+ for _ , event := range resultB .Events {
322+ _ = event .Value .Type ().ID ()
323+ }
324+
325+ assert .Equal (t , resultA , resultB )
326+ })
318327}
319328
320329func TestConvert_ExecutionData (t * testing.T ) {
321330 executionDataA := test .ExecutionDataGenerator ().New ()
322331
323- msg , err := blockExecutionDataToMessage (executionDataA )
332+ msg , err := BlockExecutionDataToMessage (executionDataA )
324333 require .NoError (t , err )
325334
326- executionDataB , err := messageToBlockExecutionData (msg )
335+ executionDataB , err := MessageToBlockExecutionData (msg )
327336 require .NoError (t , err )
328337
329338 assert .Equal (t , executionDataA .BlockID [:], executionDataB .BlockID [:])
0 commit comments