github.com/filecoin-project/lassie@v0.23.0/pkg/internal/mockfetcher/mockfetcher.go (about)

     1  package mockfetcher
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/filecoin-project/lassie/pkg/types"
     7  )
     8  
     9  var _ types.Fetcher = &MockFetcher{}
    10  
    11  type MockFetcher struct {
    12  	FetchFunc func(ctx context.Context, request types.RetrievalRequest, cb func(types.RetrievalEvent)) (*types.RetrievalStats, error)
    13  }
    14  
    15  func NewMockFetcher() *MockFetcher {
    16  	return &MockFetcher{}
    17  }
    18  
    19  func (m *MockFetcher) Fetch(ctx context.Context, request types.RetrievalRequest, opt ...types.FetchOption) (*types.RetrievalStats, error) {
    20  	return m.FetchFunc(ctx, request, types.NewFetchConfig(opt...).EventsCallback)
    21  }