@@ -7,84 +7,51 @@ SPDX-License-Identifier: Apache-2.0
77package sqlite
88
99import (
10- "context"
1110 "database/sql"
12- driver2 "database/sql/driver"
1311 "testing"
1412 "time"
1513
16- "github.com/DATA-DOG/go-sqlmock"
1714 common2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver/common"
1815 q "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver/sql/query"
1916 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver/sql/sqlite"
2017 "github.com/hyperledger-labs/fabric-token-sdk/token/services/db/driver"
2118 "github.com/hyperledger-labs/fabric-token-sdk/token/services/db/sql/common"
22- "github.com/hyperledger-labs/fabric-token-sdk/token/services/db/sql/postgres"
23- "github.com/hyperledger-labs/fabric-token-sdk/token/token"
24- . "github.com/onsi/gomega"
19+ "github.com/onsi/gomega"
2520)
2621
27- func mockTokenLockStore (db * sql.DB ) * postgres .TokenLockStore {
22+ func mockTokenLockStore (db * sql.DB ) * common .TokenLockStore {
2823 var dbs = common2.RWDB {
2924 ReadDB : db , WriteDB : db ,
3025 }
3126
32- val , _ := postgres . NewTokenLockStore (& dbs , common.TableNames {
27+ store , _ := NewTokenLockStore (& dbs , common.TableNames {
3328 TokenLocks : "TOKEN_LOCKS" ,
3429 Requests : "REQUESTS" ,
3530 })
36- return val
31+ return store . TokenLockStore
3732}
3833
3934func TestIsStale (t * testing.T ) {
40- RegisterTestingT (t )
35+ gomega . RegisterTestingT (t )
4136
4237 query , args := q .DeleteFrom ("TokenLocks" ).
4338 Where (IsStale ("TokenLocks" , "Requests" , 5 * time .Second )).
4439 Format (sqlite .NewConditionInterpreter ())
4540
46- Expect (query ).To (Equal ("DELETE FROM TokenLocks WHERE tx_id IN (" +
41+ gomega . Expect (query ).To (gomega . Equal ("DELETE FROM TokenLocks WHERE tx_id IN (" +
4742 "SELECT tl.tx_id " +
4843 "FROM TokenLocks AS tl " +
4944 "LEFT JOIN Requests AS tr " +
5045 "ON tl.tx_id = tr.tx_id " +
5146 "WHERE (tr.status = $1) OR (tl.created_at < datetime('now', '-5 seconds'))" +
5247 ")" ))
53- Expect (args ).To (ConsistOf (driver .Deleted ))
48+ gomega . Expect (args ).To (gomega . ConsistOf (driver .Deleted ))
5449}
5550
56- func TestLogStaleLocks (t * testing.T ) {
57- RegisterTestingT (t )
58- db , mockDB , err := sqlmock .New ()
59- Expect (err ).ToNot (HaveOccurred ())
60-
61- input := driver .Deleted
62-
63- record := postgres.LockEntry {
64- ConsumerTxID : "1234" ,
65- TokenID : token.ID {TxId : "5678" , Index : 5 },
66- Status : & input ,
67- CreatedAt : time .Date (2025 , time .June , 8 , 10 , 0 , 0 , 0 , time .UTC ),
68- }
69- var timeNow time.Time
70- output := []driver2.Value {
71- record .ConsumerTxID , record .TokenID .TxId , record .TokenID .Index , * record .Status , record .CreatedAt , timeNow ,
72- }
73- mockDB .
74- ExpectQuery ("SELECT TOKEN_LOCKS.consumer_tx_id, TOKEN_LOCKS.tx_id, TOKEN_LOCKS.idx, REQUESTS.status, TOKEN_LOCKS.created_at, NOW\\ (\\ ) AS now " +
75- "FROM TOKEN_LOCKS LEFT JOIN REQUESTS ON TOKEN_LOCKS.consumer_tx_id = REQUESTS.tx_id " +
76- "WHERE \\ (\\ (\\ (REQUESTS.status = \\ $1\\ )\\ )\\ ) OR \\ (TOKEN_LOCKS.created_at < NOW\\ (\\ ) - INTERVAL '1 seconds'\\ )" ).
77- WithArgs (input ).
78- WillReturnRows (mockDB .NewRows ([]string {"consumer_tx_id" , "tx_id" , "idx" , "status" , "created_at" , "now" }).AddRow (output ... ))
79-
80- mockDB .ExpectExec ("DELETE FROM TOKEN_LOCKS USING REQUESTS WHERE " +
81- "\\ (TOKEN_LOCKS.consumer_tx_id = REQUESTS.tx_id\\ ) AND " +
82- "\\ (\\ (\\ (\\ (REQUESTS.status = \\ $1\\ )\\ )\\ ) OR \\ (TOKEN_LOCKS.created_at < NOW\\ (\\ ) - INTERVAL '1 seconds'\\ )\\ )" ).
83- WithArgs (input ).
84- WillReturnResult (sqlmock .NewResult (0 , 1 ))
85-
86- err = mockTokenLockStore (db ).Cleanup (context .Background (), time .Second )
51+ func TestLock (t * testing.T ) {
52+ common .TestLock (t , mockTokenLockStore )
53+ }
8754
88- Expect ( mockDB . ExpectationsWereMet ()). To ( Succeed ())
89- Expect ( err ). ToNot ( HaveOccurred () )
55+ func TestUnlockByTxID ( t * testing. T ) {
56+ common . TestUnlockByTxID ( t , mockTokenLockStore )
9057}
0 commit comments