Skip to content

Commit

Permalink
lnmock: add new package lnmock to host mocks
Browse files Browse the repository at this point in the history
This commit introduces a new package to host mocked objects that can be
used for all the unit tests.
  • Loading branch information
yyforyongyu committed Jan 12, 2023
1 parent 31a40ab commit 5e6f10c
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 changes: 30 additions & 0 deletions lnmock/clock.go
Original file line number Diff line number Diff line change
@@ -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)
}

0 comments on commit 5e6f10c

Please sign in to comment.