mirror of
https://github.com/lightningnetwork/lnd.git
synced 2025-02-23 14:40:30 +01:00
This commit refactors the grouping logic into a new interface `UtxoAggregator`, which makes it easier to write tests and opens possibility for future customized clustering strategies. The old clustering logic is kept as and moved into `SimpleAggregator`.
44 lines
1 KiB
Go
44 lines
1 KiB
Go
package sweep
|
|
|
|
import (
|
|
"github.com/lightningnetwork/lnd/lnwallet/chainfee"
|
|
"github.com/stretchr/testify/mock"
|
|
)
|
|
|
|
type MockFeePreference struct {
|
|
mock.Mock
|
|
}
|
|
|
|
// Compile-time constraint to ensure MockFeePreference implements FeePreference.
|
|
var _ FeePreference = (*MockFeePreference)(nil)
|
|
|
|
func (m *MockFeePreference) String() string {
|
|
return "mock fee preference"
|
|
}
|
|
|
|
func (m *MockFeePreference) Estimate(estimator chainfee.Estimator,
|
|
maxFeeRate chainfee.SatPerKWeight) (chainfee.SatPerKWeight, error) {
|
|
|
|
args := m.Called(estimator, maxFeeRate)
|
|
|
|
if args.Get(0) == nil {
|
|
return 0, args.Error(1)
|
|
}
|
|
|
|
return args.Get(0).(chainfee.SatPerKWeight), args.Error(1)
|
|
}
|
|
|
|
type mockUtxoAggregator struct {
|
|
mock.Mock
|
|
}
|
|
|
|
// Compile-time constraint to ensure mockUtxoAggregator implements
|
|
// UtxoAggregator.
|
|
var _ UtxoAggregator = (*mockUtxoAggregator)(nil)
|
|
|
|
// ClusterInputs takes a list of inputs and groups them into clusters.
|
|
func (m *mockUtxoAggregator) ClusterInputs(pendingInputs) []inputCluster {
|
|
args := m.Called(pendingInputs{})
|
|
|
|
return args.Get(0).([]inputCluster)
|
|
}
|