diff --git a/pkg/cache/cache.go b/pkg/cache/cache.go index a1bfb9f84..81b688d19 100644 --- a/pkg/cache/cache.go +++ b/pkg/cache/cache.go @@ -126,7 +126,7 @@ func WithCache(key string, obj interface{}, fetcher DataFetcher) error { return nil } -func LoadExchangeMarketsWithCache(ctx context.Context, ex types.Exchange) (markets types.MarketMap, err error) { +func LoadExchangeMarketsWithCache(ctx context.Context, ex types.ExchangePublic) (markets types.MarketMap, err error) { inMem, ok := util.GetEnvVarBool("USE_MARKETS_CACHE_IN_MEMORY") if ok && inMem { return loadMarketsFromMem(ctx, ex) @@ -137,7 +137,7 @@ func LoadExchangeMarketsWithCache(ctx context.Context, ex types.Exchange) (marke } // loadMarketsFromMem is useful for one process to run multiple bbgos in different go routines. -func loadMarketsFromMem(ctx context.Context, ex types.Exchange) (markets types.MarketMap, _ error) { +func loadMarketsFromMem(ctx context.Context, ex types.ExchangePublic) (markets types.MarketMap, _ error) { exName := ex.Name().String() if globalMarketMemCache.IsOutdated(exName) { op := func() error { @@ -162,7 +162,7 @@ func loadMarketsFromMem(ctx context.Context, ex types.Exchange) (markets types.M return rst, nil } -func loadMarketsFromFile(ctx context.Context, ex types.Exchange) (markets types.MarketMap, err error) { +func loadMarketsFromFile(ctx context.Context, ex types.ExchangePublic) (markets types.MarketMap, err error) { key := fmt.Sprintf("%s-markets", ex.Name()) if futureExchange, implemented := ex.(types.FuturesExchange); implemented { settings := futureExchange.GetFuturesSettings() diff --git a/pkg/cache/cache_test.go b/pkg/cache/cache_test.go index 49ee23ab4..ba89f84b8 100644 --- a/pkg/cache/cache_test.go +++ b/pkg/cache/cache_test.go @@ -67,7 +67,7 @@ func Test_loadMarketsFromMem(t *testing.T) { mockCtrl := gomock.NewController(t) defer mockCtrl.Finish() - mockEx := mocks.NewMockExchange(mockCtrl) + mockEx := mocks.NewMockExchangePublic(mockCtrl) mockEx.EXPECT().Name().Return(types.ExchangeName("max")).AnyTimes() mockEx.EXPECT().QueryMarkets(gomock.Any()).Return(nil, errors.New("faked")).Times(1) mockEx.EXPECT().QueryMarkets(gomock.Any()).Return(types.MarketMap{ diff --git a/pkg/types/exchange.go b/pkg/types/exchange.go index b67a9b2b2..bb5344600 100644 --- a/pkg/types/exchange.go +++ b/pkg/types/exchange.go @@ -87,6 +87,12 @@ type Exchange interface { ExchangeTradeService } +//go:generate mockgen -destination=mocks/mock_exchange_public.go -package=mocks . ExchangePublic +type ExchangePublic interface { + ExchangeMinimal + ExchangeMarketDataService +} + // ExchangeBasic is the new type for replacing the original Exchange interface type ExchangeBasic = Exchange