lnmock: add new package lnmock to host mocks

This commit introduces a new package to host mocked objects that can be
used for all the unit tests.
This commit is contained in:
yyforyongyu 2023-01-12 21:16:18 +08:00
parent 31a40abd91
commit 5e6f10c9b8
No known key found for this signature in database
GPG Key ID: 9BCD95C4FF296868
2 changed files with 37 additions and 0 deletions

View File

@ -238,3 +238,10 @@ issues:
- govet
# itest case can be very long so we disable long function check.
- funlen
- path: lnmock/*
linters:
# forcetypeassert is skipped for the mock because the test would fail
# if the returned value doesn't match the type, so there's no need to
# check the convert.
- forcetypeassert

30
lnmock/clock.go Normal file
View File

@ -0,0 +1,30 @@
// NOTE: forcetypeassert is skipped for the mock because the test would fail if
// the returned value doesn't match the type.
package lnmock
import (
"time"
"github.com/lightningnetwork/lnd/clock"
"github.com/stretchr/testify/mock"
)
// MockClock implements the `clock.Clock` interface.
type MockClock struct {
mock.Mock
}
// Compile time assertion that MockClock implements clock.Clock.
var _ clock.Clock = (*MockClock)(nil)
func (m *MockClock) Now() time.Time {
args := m.Called()
return args.Get(0).(time.Time)
}
func (m *MockClock) TickAfter(d time.Duration) <-chan time.Time {
args := m.Called(d)
return args.Get(0).(chan time.Time)
}