@@ -38,40 +38,6 @@ var expectedTransactionInfo = protocol.TransactionInfo{
3838 LedgerCloseTime : 125 ,
3939}
4040
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-
7541func TestGetTransactions_DefaultLimit (t * testing.T ) { //nolint:dupl
7642 testDB := setupDB (t , 10 , 0 )
7743 handler := transactionsRPCHandler {
@@ -293,3 +259,76 @@ func TestGetTransactions_JSONFormat(t *testing.T) {
293259 require .Nilf (t , tx ["resultMetaXdr" ], "field: 'resultMetaXdr'" )
294260 require .NotNilf (t , tx ["resultMetaJson" ], "field: 'resultMetaJson'" )
295261}
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