@@ -38,40 +38,6 @@ var expectedTransactionInfo = protocol.TransactionInfo{
38
38
LedgerCloseTime : 125 ,
39
39
}
40
40
41
- // createTestLedger Creates a test ledger with 2 transactions
42
- func createTestLedger (sequence uint32 ) xdr.LedgerCloseMeta {
43
- sequence -= 100
44
- meta := txMeta (sequence , true )
45
- meta .V1 .TxProcessing = append (meta .V1 .TxProcessing , xdr.TransactionResultMeta {
46
- TxApplyProcessing : xdr.TransactionMeta {
47
- V : 3 ,
48
- Operations : & []xdr.OperationMeta {},
49
- V3 : & xdr.TransactionMetaV3 {},
50
- },
51
- Result : xdr.TransactionResultPair {
52
- TransactionHash : txHash (sequence ),
53
- Result : transactionResult (false ),
54
- },
55
- })
56
- return meta
57
- }
58
-
59
- func setupDB (t * testing.T , numLedgers int , skipLedger int ) * db.DB {
60
- testDB := NewTestDB (t )
61
- daemon := interfaces .MakeNoOpDeamon ()
62
- for sequence := 1 ; sequence <= numLedgers ; sequence ++ {
63
- if sequence == skipLedger {
64
- continue
65
- }
66
- ledgerCloseMeta := createTestLedger (uint32 (sequence ))
67
- tx , err := db .NewReadWriter (log .DefaultLogger , testDB , daemon , 150 , 100 , passphrase ).NewTx (context .Background ())
68
- require .NoError (t , err )
69
- require .NoError (t , tx .LedgerWriter ().InsertLedger (ledgerCloseMeta ))
70
- require .NoError (t , tx .Commit (ledgerCloseMeta ))
71
- }
72
- return testDB
73
- }
74
-
75
41
func TestGetTransactions_DefaultLimit (t * testing.T ) { //nolint:dupl
76
42
testDB := setupDB (t , 10 , 0 )
77
43
handler := transactionsRPCHandler {
@@ -293,3 +259,76 @@ func TestGetTransactions_JSONFormat(t *testing.T) {
293
259
require .Nilf (t , tx ["resultMetaXdr" ], "field: 'resultMetaXdr'" )
294
260
require .NotNilf (t , tx ["resultMetaJson" ], "field: 'resultMetaJson'" )
295
261
}
262
+
263
+ func TestGetTransactions_NoResults (t * testing.T ) {
264
+ testDB := setupDBNoTxs (t , 5 )
265
+ handler := transactionsRPCHandler {
266
+ ledgerReader : db .NewLedgerReader (testDB ),
267
+ maxLimit : 100 ,
268
+ defaultLimit : 10 ,
269
+ networkPassphrase : NetworkPassphrase ,
270
+ }
271
+
272
+ request := protocol.GetTransactionsRequest {
273
+ StartLedger : 1 ,
274
+ }
275
+
276
+ txns , err := handler .getTransactionsByLedgerSequence (context .TODO (), request )
277
+ require .NoError (t , err )
278
+ require .NotNil (t , txns .Transactions )
279
+ require .Empty (t , txns .Transactions )
280
+ }
281
+
282
+ // createTestLedger Creates a test ledger with 2 transactions
283
+ func createTestLedger (sequence uint32 ) xdr.LedgerCloseMeta {
284
+ sequence -= 100
285
+ meta := txMeta (sequence , true )
286
+ meta .V1 .TxProcessing = append (meta .V1 .TxProcessing , xdr.TransactionResultMeta {
287
+ TxApplyProcessing : xdr.TransactionMeta {
288
+ V : 3 ,
289
+ Operations : & []xdr.OperationMeta {},
290
+ V3 : & xdr.TransactionMetaV3 {},
291
+ },
292
+ Result : xdr.TransactionResultPair {
293
+ TransactionHash : txHash (sequence ),
294
+ Result : transactionResult (false ),
295
+ },
296
+ })
297
+ return meta
298
+ }
299
+
300
+ // createTestLedger Creates a test ledger with 2 transactions
301
+ func createEmptyTestLedger (sequence uint32 ) xdr.LedgerCloseMeta {
302
+ sequence -= 100
303
+ return emptyTxMeta (sequence )
304
+ }
305
+
306
+ func setupDB (t * testing.T , numLedgers int , skipLedger int ) * db.DB {
307
+ testDB := NewTestDB (t )
308
+ daemon := interfaces .MakeNoOpDeamon ()
309
+ for sequence := 1 ; sequence <= numLedgers ; sequence ++ {
310
+ if sequence == skipLedger {
311
+ continue
312
+ }
313
+ ledgerCloseMeta := createTestLedger (uint32 (sequence ))
314
+ tx , err := db .NewReadWriter (log .DefaultLogger , testDB , daemon , 150 , 100 , passphrase ).NewTx (context .Background ())
315
+ require .NoError (t , err )
316
+ require .NoError (t , tx .LedgerWriter ().InsertLedger (ledgerCloseMeta ))
317
+ require .NoError (t , tx .Commit (ledgerCloseMeta ))
318
+ }
319
+ return testDB
320
+ }
321
+
322
+ func setupDBNoTxs (t * testing.T , numLedgers int ) * db.DB {
323
+ testDB := NewTestDB (t )
324
+ daemon := interfaces .MakeNoOpDeamon ()
325
+ for sequence := 1 ; sequence <= numLedgers ; sequence ++ {
326
+ ledgerCloseMeta := createEmptyTestLedger (uint32 (sequence ))
327
+
328
+ tx , err := db .NewReadWriter (log .DefaultLogger , testDB , daemon , 150 , 100 , passphrase ).NewTx (context .Background ())
329
+ require .NoError (t , err )
330
+ require .NoError (t , tx .LedgerWriter ().InsertLedger (ledgerCloseMeta ))
331
+ require .NoError (t , tx .Commit (ledgerCloseMeta ))
332
+ }
333
+ return testDB
334
+ }
0 commit comments