[ledger] Add Close() method.
This commit is contained in:
parent
cea2a44ab7
commit
4bbb4ddd01
3 changed files with 3 additions and 0 deletions
|
@ -10,6 +10,7 @@
|
|||
Если на счету недостаточно денег, метод должен возвращать ошибку `ledger.ErrNoMoney`.
|
||||
- Метод `Transfer` должен переводить деньги со счёта `from` на счёт `to`.
|
||||
Если на счету `from` недостаточно денег, метод должен возвращать ошибку `ledger.ErrNoMoney`.
|
||||
- Метод `Close` закрывает коннекты к базе данных.
|
||||
|
||||
Все операции должны быть атомарными. Для реализации некоторых методов
|
||||
вам потребуется использовать транзакции и row-level локи. Ваша реализация не должна создавать дедлоки на уровне базы данных.
|
||||
|
|
|
@ -20,6 +20,7 @@ func TestLedger(t *testing.T) {
|
|||
|
||||
l0, err := ledger.New(ctx, dsn)
|
||||
require.NoError(t, err)
|
||||
defer func() { _ = l0.Close() }()
|
||||
|
||||
t.Run("SimpleCommands", func(t *testing.T) {
|
||||
checkBalance := func(account ledger.ID, amount ledger.Money) {
|
||||
|
|
|
@ -18,4 +18,5 @@ type Ledger interface {
|
|||
Deposit(ctx context.Context, id ID, amount Money) error
|
||||
Withdraw(ctx context.Context, id ID, amount Money) error
|
||||
Transfer(ctx context.Context, from, to ID, amount Money) error
|
||||
Close() error
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue