public void QuoteStorageTest() { var getQuoteRequest = new GetQuoteRequest() { FromAsset = "BTC", ToAsset = "USD", FromAssetVolume = 0.1, ToAssetVolume = 0, IsFromFixed = true, BrokerId = "broker", AccountId = "Acc", WalletId = "wallet" }; var responseData = Service.GetQuoteAsync(getQuoteRequest).Result.Data; var storageQuote = ConvertQuoteStorageMock.GetQuoteAsync(responseData.OperationId).Result; Assert.AreEqual(getQuoteRequest.FromAsset, storageQuote.FromAsset); Assert.AreEqual(getQuoteRequest.ToAsset, storageQuote.ToAsset); Assert.AreEqual(getQuoteRequest.IsFromFixed, storageQuote.IsFromFixed); Assert.AreEqual(getQuoteRequest.BrokerId, storageQuote.BrokerId); Assert.AreEqual(getQuoteRequest.AccountId, storageQuote.AccountId); Assert.AreEqual(getQuoteRequest.WalletId, storageQuote.WalletId); if (getQuoteRequest.IsFromFixed) { Assert.AreEqual(getQuoteRequest.FromAssetVolume, storageQuote.FromAssetVolume); Assert.AreEqual(responseData.ToAssetVolume, storageQuote.ToAssetVolume); } else { Assert.AreEqual(getQuoteRequest.ToAssetVolume, storageQuote.ToAssetVolume); Assert.AreEqual(responseData.FromAssetVolume, storageQuote.FromAssetVolume); } Assert.AreEqual(responseData.Price, storageQuote.Price); }
public void CrossSwopTradeStorageTest() { var requestCase = new GetQuoteRequest() { FromAsset = "BTC", ToAsset = "ETH", FromAssetVolume = 0, ToAssetVolume = 1, IsFromFixed = false, BrokerId = "broker", AccountId = "Acc", WalletId = "wallet" }; var responseData = Service.GetQuoteAsync(requestCase).Result.Data; var storageTrade = ConvertQuoteStorageMock.GetTradesAsync(responseData.OperationId).Result; Assert.IsTrue(storageTrade.Count == 2); var firstPair = storageTrade.FirstOrDefault(trade => trade.InstrumentSymbol == "BTCUSD"); var secondPair = storageTrade.FirstOrDefault(trade => trade.InstrumentSymbol == "ETHUSD"); Assert.IsNotNull(firstPair); Assert.IsNotNull(secondPair); Assert.AreEqual(responseData.OperationId, firstPair.OperationId); Assert.AreEqual(52544.8585, firstPair.InstrumentPrice); Assert.AreEqual(TradeState.New, firstPair.State); Assert.IsNotEmpty(firstPair.TradeId); Assert.AreEqual(responseData.OperationId, secondPair.OperationId); Assert.AreEqual(5253, secondPair.InstrumentPrice); Assert.AreEqual(TradeState.New, secondPair.State); Assert.IsNotEmpty(secondPair.TradeId); }
public void Setup() { _loggerFactory = LoggerFactory.Create(builder => builder.AddSimpleConsole(options => { options.IncludeScopes = true; options.SingleLine = true; options.TimestampFormat = "hh:mm:ss "; })); _logger = _loggerFactory.CreateLogger <QuoteService>(); _assetsClient = new AssetsDictionaryMock(); _spotInstrumentDictionaryClient = new SpotInstrumentDictionaryMock(); _liquidityConverterSettingsAccessor = new LiquidityConverterSettingsAccessorMock(); _spotInstrumentFeesClient = new SpotInstrumentFeesClientMock(); _orderBookService = new OrderBookServiceMock(); _dbContextOptionsBuilder = new DbContextOptionsBuilderMock(); _quotesContextProvider = new QuotesContextProviderMock(); _cashServiceClient = new CashServiceClientMock(); _tradingServiceClient = new TradingServiceClientMock(); ConvertQuoteStorageMock = new ConvertQuoteStorageMock(); _instrumentEngine = new InstrumentEngine(_logger, _assetsClient, _spotInstrumentDictionaryClient, _liquidityConverterSettingsAccessor, _spotInstrumentFeesClient, _orderBookService); Service = new QuoteService(_logger, _assetsClient, _spotInstrumentDictionaryClient, _liquidityConverterSettingsAccessor, _spotInstrumentFeesClient, _orderBookService, _quotesContextProvider, _cashServiceClient, _tradingServiceClient, ConvertQuoteStorageMock, _instrumentEngine); GenerateAssetsClient(); GenerateSpotInstrumentDictionaryClient(); GenerateLiquidityConverterSettingsAccessor(); GenerateSpotInstrumentFeesClient(); GenerateOrderBookService(); }
public void CrossSwopQuoteStorageTest() { var requestCase = new GetQuoteRequest() { FromAsset = "BTC", ToAsset = "ETH", FromAssetVolume = 0, ToAssetVolume = 1, IsFromFixed = false, BrokerId = "broker", AccountId = "Acc", WalletId = "wallet" }; var responseData = Service.GetQuoteAsync(requestCase).Result.Data; var storageQuote = ConvertQuoteStorageMock.GetQuoteAsync(responseData.OperationId).Result; var storageTrade = ConvertQuoteStorageMock.GetTradesAsync(responseData.OperationId).Result; Assert.AreEqual(responseData.FromAsset, storageQuote.FromAsset); Assert.AreEqual(responseData.FromAsset, storageQuote.FromAsset); Assert.AreEqual(responseData.ToAsset, storageQuote.ToAsset); Assert.AreEqual(responseData.IsFromFixed, storageQuote.IsFromFixed); Assert.AreEqual(responseData.BrokerId, storageQuote.BrokerId); Assert.AreEqual(responseData.AccountId, storageQuote.AccountId); Assert.AreEqual(responseData.WalletId, storageQuote.WalletId); Assert.AreEqual(responseData.OperationId, storageQuote.OperationId); Assert.AreEqual(responseData.Price, storageQuote.Price); if (responseData.IsFromFixed) { Assert.AreEqual(requestCase.FromAssetVolume, storageQuote.FromAssetVolume); Assert.AreEqual(responseData.ToAssetVolume, storageQuote.ToAssetVolume); } else { Assert.AreEqual(requestCase.ToAssetVolume, storageQuote.ToAssetVolume); Assert.AreEqual(responseData.FromAssetVolume, storageQuote.FromAssetVolume); } }
public void ExecuteQuoteValidationTest() { var storageQuote = new ConvertQuote() { FromAsset = "BTC", ToAsset = "USD", FromAssetVolume = 0.1, ToAssetVolume = 150, IsFromFixed = true, BrokerId = "broker", AccountId = "Acc", WalletId = "wallet", Price = 323, ExpireDate = DateTime.MaxValue, OperationId = "someId", OpenDate = DateTime.UtcNow, ClosedDate = DateTime.MinValue, State = QuoteState.Active }; ConvertQuoteStorageMock.SaveAsync(storageQuote); var executeQuoteRequestCase1 = new ExecuteQuoteRequest() { FromAsset = storageQuote.FromAsset, ToAsset = storageQuote.ToAsset, FromAssetVolume = storageQuote.FromAssetVolume, ToAssetVolume = storageQuote.ToAssetVolume, IsFromFixed = storageQuote.IsFromFixed, BrokerId = storageQuote.BrokerId, AccountId = storageQuote.AccountId, WalletId = "something else", OperationId = storageQuote.OperationId, Price = storageQuote.Price }; var response = Service.ExecuteQuoteAsync(executeQuoteRequestCase1); Assert.IsTrue(response.Result.QuoteExecutionResult == QuoteExecutionResult.Error); var executeQuoteRequestCase2 = new ExecuteQuoteRequest() { FromAsset = storageQuote.FromAsset, ToAsset = storageQuote.ToAsset, FromAssetVolume = storageQuote.FromAssetVolume, ToAssetVolume = 11, IsFromFixed = storageQuote.IsFromFixed, BrokerId = storageQuote.BrokerId, AccountId = storageQuote.AccountId, WalletId = storageQuote.WalletId, OperationId = storageQuote.OperationId, Price = storageQuote.Price }; var response2 = Service.ExecuteQuoteAsync(executeQuoteRequestCase2); Assert.IsTrue(response2.Result.QuoteExecutionResult == QuoteExecutionResult.Error); var executeQuoteRequestCase3 = new ExecuteQuoteRequest() { FromAsset = storageQuote.FromAsset, ToAsset = "new asset", FromAssetVolume = storageQuote.FromAssetVolume, ToAssetVolume = storageQuote.ToAssetVolume, IsFromFixed = storageQuote.IsFromFixed, BrokerId = storageQuote.BrokerId, AccountId = storageQuote.AccountId, WalletId = storageQuote.WalletId, OperationId = storageQuote.OperationId, Price = storageQuote.Price }; var response3 = Service.ExecuteQuoteAsync(executeQuoteRequestCase3); Assert.IsTrue(response3.Result.QuoteExecutionResult == QuoteExecutionResult.Error); }