MCPcopy Create free account
hub / github.com/devaccuracy/ledgerforge / TestGetTransaction_Success

Function TestGetTransaction_Success

database/transactions_test.go:157–186  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

155}
156
157func TestGetTransaction_Success(t *testing.T) {
158 db, mock, err := sqlmock.New()
159 assert.NoError(t, err)
160 defer func() { _ = db.Close() }()
161
162 tracer := otel.Tracer("transaction.database")
163 ctx, span := tracer.Start(context.Background(), "TestGetTransaction")
164 defer span.End()
165
166 ds := Datasource{Conn: db}
167
168 metaData := map[string]interface{}{"key": "value"}
169 metaDataJSON, err := json.Marshal(metaData)
170 assert.NoError(t, err)
171
172 rows := sqlmock.NewRows([]string{"transaction_id", "source", "reference", "amount", "precise_amount", "precision", "currency", "destination", "description", "status", "created_at", "meta_data", "parent_transaction", "hash"}).
173 AddRow("txn123", "src1", "ref123", 1000, 1000, 2, "USD", "dest1", "Test Transaction", "PENDING", time.Now(), metaDataJSON, "parent123", "hash123")
174
175 mock.ExpectQuery("SELECT transaction_id, source, reference, amount, precise_amount, precision, currency, destination, description, status, created_at, meta_data, parent_transaction, hash FROM ledgerforge.transactions WHERE transaction_id = ?").
176 WithArgs("txn123").
177 WillReturnRows(rows)
178
179 txn, err := ds.GetTransaction(ctx, "txn123")
180 assert.NoError(t, err)
181 assert.Equal(t, "txn123", txn.TransactionID)
182 assert.Equal(t, "src1", txn.Source)
183 assert.Equal(t, "dest1", txn.Destination)
184 assert.Equal(t, "parent123", txn.ParentTransaction)
185 assert.Equal(t, "hash123", txn.Hash)
186}
187
188func TestGetTransaction_NotFound(t *testing.T) {
189 db, mock, err := sqlmock.New()

Callers

nothing calls this directly

Calls 3

GetTransactionMethod · 0.95
CloseMethod · 0.45
StartMethod · 0.45

Tested by

no test coverage detected