internal ExchangeBuilderWithOptions UseExchange(string exchange) { switch (exchange) { case ExchangeNames.Binance: builder = new BinanceExchangeBuilder(); break; case ExchangeNames.Bitfinex: builder = new BitfinexExchangeBuilder(); break; case ExchangeNames.Bittrex: builder = new BittrexExchangeBuilder(); break; case ExchangeNames.Cobinhood: builder = new CobinhoodExchangeBuilder(); break; case ExchangeNames.Poloniex: builder = new PoloniexExchangeBuilder(); break; default: throw new ExchangeClientException($"\"{exchange}\" is not supported. Supported exchanges:\n{ String.Join(", \n", ExchangeNames.List) }"); } return(this); }
public void InjectDependencies( IGameCore gameCore, ICivDiscoveryCanon civDiscoveryCanon, IDiplomacyCore diplomacyCore, IExchangeBuilder exchangeBuilder ) { GameCore = gameCore; CivDiscoveryCanon = civDiscoveryCanon; DiplomacyCore = diplomacyCore; ExchangeBuilder = exchangeBuilder; }
public ExchangeBuilderTests() { testObjs = new TestObjects(); var fileRepo = new FileRepository.FileRepository(); //var apiInfo = fileRepo.GetDataFromFile<Cryptobitfolio.Business.Entities.Trade.ExchangeApi>("config.json"); //var apiInfoList = new List<Cryptobitfolio.Business.Entities.Trade.ExchangeApi> { apiInfo }; var exchangeApiRepoMock = new Mock <IExchangeApiRepository>(); exchangeApiRepoMock.Setup(m => m.Get()).Returns(Task.FromResult(testObjs.GetEntityExchangeApis())); exchangeApiRepoMock.Setup(m => m.Get(It.IsAny <Expression <Func <Cryptobitfolio.Business.Entities.Trade.ExchangeApi, bool> > >())) .Returns(Task.FromResult(testObjs.GetEntityExchangeApis(Cryptobitfolio.Business.Entities.Exchange.Binance))); exchangeApiRepoMock.Setup(m => m.Delete(It.IsAny <Cryptobitfolio.Business.Entities.Trade.ExchangeApi>())) .Returns(Task.FromResult(true)); exchangeApiRepoMock.Setup(m => m.Add(It.IsAny <Cryptobitfolio.Business.Entities.Trade.ExchangeApi>())) .Returns(Task.FromResult(testObjs.GetEntityExchangeApis().First())); exchangeApiRepoMock.Setup(m => m.Update(It.IsAny <Cryptobitfolio.Business.Entities.Trade.ExchangeApi>())) .Returns(Task.FromResult(testObjs.GetUpdatedExchangeApi())); var exchangeUpdateRepoMock = new Mock <IExchangeUpdateRepository>(); var exchangeApiBldrMock = new Mock <IExchangeApiBuilder>(); var arbitrageRepoMock = new Mock <IArbitragePathRepository>(); var arbitrageBldrMock = new Mock <IArbitrageBuilder>(); var exchangeHubRepo = new Mock <IExchangeHubRepository>(); var cmcBldr = new Mock <ICMCBuilder>(); exchangeHubRepo.Setup(m => m.GetBalances()) .Returns(Task.FromResult(testObjs.GetExchangeHubBalances())); exchangeHubRepo.SetupSequence(m => m.GetOrders(It.IsAny <string>())) .Returns(Task.FromResult(testObjs.GetExchangeHubOrders().Where(o => o.Pair.Equals("BTCUSDT")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOrders().Where(o => o.Pair.Equals("ETHUSDT")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOrders().Where(o => o.Pair.Equals("ETHBTC")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOrders().Where(o => o.Pair.Equals("XLMBTC")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOrders().Where(o => o.Pair.Equals("XLMETH")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOrders().Where(o => o.Pair.Equals("XLMUSDT")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOrders().Where(o => o.Pair.Equals("NANOBTC")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOrders().Where(o => o.Pair.Equals("NANOETH")))); exchangeHubRepo.Setup(m => m.GetExchange()) .Returns(testObjs.GetExchangeHubExchange()); exchangeHubRepo.Setup(m => m.GetMarkets()) .Returns(Task.FromResult(testObjs.GetExchangeHubMarkets())); exchangeHubRepo.SetupSequence(m => m.GetOpenOrders(It.IsAny <string>())) .Returns(Task.FromResult(testObjs.GetExchangeHubOpenOrders().Where(o => o.Pair.Equals("BTCUSDT")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOpenOrders().Where(o => o.Pair.Equals("ETHUSDT")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOpenOrders().Where(o => o.Pair.Equals("ETHBTC")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOpenOrders().Where(o => o.Pair.Equals("XLMBTC")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOpenOrders().Where(o => o.Pair.Equals("XLMETH")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOpenOrders().Where(o => o.Pair.Equals("XLMUSDT")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOpenOrders().Where(o => o.Pair.Equals("NANOBTC")))) .Returns(Task.FromResult(testObjs.GetExchangeHubOpenOrders().Where(o => o.Pair.Equals("NANOETH")))); exchangeApiBldrMock.Setup(m => m.Get()) .Returns(Task.FromResult(testObjs.GetContractExchangeApis())); cmcBldr.Setup(m => m.GetCurrencies(It.IsAny <List <string> >())) .Returns(Task.FromResult(testObjs.GetCurrencies())); exchangeBuilder = new ExchangeBuilder(exchangeApiBldrMock.Object, exchangeUpdateRepoMock.Object, arbitrageRepoMock.Object, arbitrageBldrMock.Object, exchangeHubRepo.Object, cmcBldr.Object); }
public void BuyCrypto_Success_Test() { // Arrange _gdaxRepo.Setup(g => g.GetTrades(It.IsAny <string>())).ReturnsAsync(_testObjects.GetGdaxTrades().ToArray()); _xchBuilder = new ExchangeBuilder(_binanceRepo.Object, _gdaxRepo.Object, _kuRepo.Object); _xchBuilder.SetExchange(_testObjects.GetBotSettings()); // Act var response = _xchBuilder.GetSticksFromGdaxTrades(_testObjects.GetGdaxTrades().ToArray(), 4); // Assert Assert.True(response != null); }
public void PlaceTrade_GDAX_Test() { // Arrange var settings = _testObjects.GetBotSettings(); settings.exchange = Exchange.GDAX; _gdaxRepo.Setup(g => g.PlaceTrade(It.IsAny <TradeParams>())) .ReturnsAsync(_testObjects.GetGDAXOrderResponse()); _xchBuilder = new ExchangeBuilder(_binanceRepo.Object, _gdaxRepo.Object, _kuRepo.Object); _xchBuilder.SetExchange(settings); // Act var response = _xchBuilder.PlaceTrade(_testObjects.GetTradeParams()); // Assert Assert.True(response != null); }
public PortfolioViewModel(IExchangeBuilder exchangeBldr) { this._exchangeBldr = exchangeBldr; }