public void SyncAccountDataAsync_accounts_sameAccount() { IAccountDA accountDA = new AccountDAMock(); SyncPipeServerMock sps = new SyncPipeServerMock(); IInstrumDA instrumDA = new InstrumDAMock(); IReplicationBL replBL = new ReplicationBLMock(); ImportLeech import = new ImportLeech(instrumDA, accountDA, null, null, replBL); import.SyncAccountDataAsync(sps).Wait(); var r_accounts = sps.GetAccountList().Result; CompareAccounts(r_accounts, accountDA.GetAccounts(), replBL); // изменим account r_accounts[0].Code = "***"; r_accounts[0].Name = "+++"; r_accounts[0].IsShortEnable = !r_accounts[0].IsShortEnable; r_accounts[0].CommPerc += 0.5m; import.SyncAccountDataAsync(sps).Wait(); CompareAccounts(r_accounts, accountDA.GetAccounts(), replBL); // добавим еще account sps.AddAccount(Common.Data.AccountTypes.Test, "ccc", "nnn", 0, false); import.SyncAccountDataAsync(sps).Wait(); CompareAccounts(sps.GetAccountList().Result, accountDA.GetAccounts(), replBL); // удаление account не тестируем }
public void SyncAccountDataAsync_holdings_sameHoldings() { IInstrumDA instrumDA = new InstrumDAMock(); IAccountDA accountDA = new AccountDAMock(); SyncPipeServerMock sps = new SyncPipeServerMock(); IReplicationBL replBL = new ReplicationBLMock(); ImportLeech import = new ImportLeech(instrumDA, accountDA, null, null, replBL); var r_accounts = sps.GetAccountList().Result; var r_instrums = sps.GetInstrumList().Result; // добавили две записи в разные accounts var r_h1 = sps.AddHolding(r_accounts[0].AccountID, r_instrums[0].InsID, 100); var r_h2 = sps.AddHolding(r_accounts[1].AccountID, r_instrums[1].InsID, 200); // синхронизировали import.SyncAccountDataAsync(sps).Wait(); // узнаем локальные accountID var repl_acc = replBL.GetReplications(Common.Data.ReplObjects.Account); int l_acc0ID = repl_acc[r_accounts[0].AccountID]; int l_acc1ID = repl_acc[r_accounts[1].AccountID]; // сравниваем CompareHoldings(sps.GetHoldingList(r_accounts[0].AccountID).Result, accountDA.GetHoldings(l_acc0ID), replBL); CompareHoldings(sps.GetHoldingList(r_accounts[1].AccountID).Result, accountDA.GetHoldings(l_acc1ID), replBL); // поменяем записи r_h1.LotCount = 1000; r_h2.LotCount = 2000; // синхронизировали import.SyncAccountDataAsync(sps).Wait(); // сравниваем CompareHoldings(sps.GetHoldingList(r_accounts[0].AccountID).Result, accountDA.GetHoldings(l_acc0ID), replBL); CompareHoldings(sps.GetHoldingList(r_accounts[1].AccountID).Result, accountDA.GetHoldings(l_acc1ID), replBL); // еще добавили запись var r_h3 = sps.AddHolding(r_accounts[1].AccountID, r_instrums[2].InsID, 300); // синхронизировали import.SyncAccountDataAsync(sps).Wait(); // сравниваем CompareHoldings(sps.GetHoldingList(r_accounts[0].AccountID).Result, accountDA.GetHoldings(l_acc0ID), replBL); CompareHoldings(sps.GetHoldingList(r_accounts[1].AccountID).Result, accountDA.GetHoldings(l_acc1ID), replBL); // удалили записи sps.RemoveHolding(r_h1); sps.RemoveHolding(r_h2); // синхронизировали import.SyncAccountDataAsync(sps).Wait(); // сравниваем CompareHoldings(sps.GetHoldingList(r_accounts[0].AccountID).Result, accountDA.GetHoldings(l_acc0ID), replBL); CompareHoldings(sps.GetHoldingList(r_accounts[1].AccountID).Result, accountDA.GetHoldings(l_acc1ID), replBL); }
public void SyncAccountDataAsync_cash_sameCash() { IInstrumDA instrumDA = new InstrumDAMock(); IAccountDA accountDA = new AccountDAMock(); SyncPipeServerMock sps = new SyncPipeServerMock(); IReplicationBL replBL = new ReplicationBLMock(); ImportLeech import = new ImportLeech(instrumDA, accountDA, null, null, replBL); var r_accounts = sps.GetAccountList().Result; var r_instrums = sps.GetInstrumList().Result; // добавили две записи в разные accounts var r_h1 = sps.AddCash(r_accounts[0].AccountID, 100); var r_h2 = sps.AddCash(r_accounts[1].AccountID, 200); // синхронизировали import.SyncAccountDataAsync(sps).Wait(); // узнаем локальные accountID var repl_acc = replBL.GetReplications(Common.Data.ReplObjects.Account); int l_acc0ID = repl_acc[r_accounts[0].AccountID]; int l_acc1ID = repl_acc[r_accounts[1].AccountID]; // сравниваем var rCash = sps.GetCash(r_accounts[0].AccountID).Result; var lCash = accountDA.GetCash(l_acc0ID); CompareCash(rCash, lCash); // изменили данные rCash.Initial += 10.0m; rCash.Current += 20.0m; rCash.Buy += 30.0m; rCash.BuyComm += 40.0m; rCash.Sell += 50.0m; rCash.SellComm += 60.0m; // синхронизировали import.SyncAccountDataAsync(sps).Wait(); // сравниваем var rCash1 = sps.GetCash(r_accounts[0].AccountID).Result; var lCash1 = accountDA.GetCash(l_acc0ID); CompareCash(rCash1, lCash1); }
public void SyncAccountDataAsync_data_sameData() { IInstrumDA instrumDA = new InstrumDAMock(); IAccountDA accountDA = new AccountDAMock(); SyncPipeServerMock sps = new SyncPipeServerMock(); IReplicationBL replBL = new ReplicationBLMock(); var r_accounts = sps.GetAccountList().Result; var r_instrums = sps.GetInstrumList().Result; var so1 = sps.AddStopOrder(r_accounts[0].AccountID, r_instrums[0].InsID, Platform.BuySell.Buy, Platform.StopOrderType.StopLoss, 1000, 1); var ord1 = sps.AddOrder(so1); var trd1 = sps.AddTrade(ord1); var ord2 = sps.AddOrder(r_accounts[1].AccountID, r_instrums[1].InsID, Platform.BuySell.Sell, 1000, 1); var trd2 = sps.AddTrade(ord2); // действительно добавили записи Assert.True(sps.GetStopOrders(r_accounts[0].AccountID, 0).Result.Count() == 1); Assert.True(sps.GetOrders(r_accounts[0].AccountID, 0).Result.Count() == 1); Assert.True(sps.GetTrades(r_accounts[0].AccountID, 0).Result.Count() == 1); Assert.True(sps.GetStopOrders(r_accounts[1].AccountID, 0).Result.Count() == 0); Assert.True(sps.GetOrders(r_accounts[1].AccountID, 0).Result.Count() == 1); Assert.True(sps.GetTrades(r_accounts[1].AccountID, 0).Result.Count() == 1); ImportLeech import = new ImportLeech(instrumDA, accountDA, null, null, replBL); import.SyncAccountDataAsync(sps).Wait(); // узнаем локальные accountID var repl_acc = replBL.GetReplications(Common.Data.ReplObjects.Account); int l_acc0ID = repl_acc[r_accounts[0].AccountID]; int l_acc1ID = repl_acc[r_accounts[1].AccountID]; CompareStopOrders(sps.GetStopOrders(r_accounts[0].AccountID, 0).Result, accountDA.GetStopOrders(l_acc0ID), replBL); CompareStopOrders(sps.GetStopOrders(r_accounts[1].AccountID, 0).Result, accountDA.GetStopOrders(l_acc1ID), replBL); CompareOrders(sps.GetOrders(r_accounts[0].AccountID, 0).Result, accountDA.GetOrders(l_acc0ID), replBL); CompareOrders(sps.GetOrders(r_accounts[1].AccountID, 0).Result, accountDA.GetOrders(l_acc1ID), replBL); CompareTrades(sps.GetTrades(r_accounts[0].AccountID, 0).Result, accountDA.GetTrades(l_acc0ID), replBL); CompareTrades(sps.GetTrades(r_accounts[1].AccountID, 0).Result, accountDA.GetTrades(l_acc1ID), replBL); // еще добавили данных var so3 = sps.AddStopOrder(r_accounts[0].AccountID, r_instrums[0].InsID, Platform.BuySell.Sell, Platform.StopOrderType.TakeProfit, 2000, 2); var ord3 = sps.AddOrder(so3); var trd3 = sps.AddTrade(ord3); var ord4 = sps.AddOrder(r_accounts[1].AccountID, r_instrums[1].InsID, Platform.BuySell.Buy, 3000, 3); var trd4 = sps.AddTrade(ord4); // снова синхронизировали import.SyncAccountDataAsync(sps).Wait(); // и снова сравнили CompareStopOrders(sps.GetStopOrders(r_accounts[0].AccountID, 0).Result, accountDA.GetStopOrders(l_acc0ID), replBL); CompareStopOrders(sps.GetStopOrders(r_accounts[1].AccountID, 0).Result, accountDA.GetStopOrders(l_acc1ID), replBL); CompareOrders(sps.GetOrders(r_accounts[0].AccountID, 0).Result, accountDA.GetOrders(l_acc0ID), replBL); CompareOrders(sps.GetOrders(r_accounts[1].AccountID, 0).Result, accountDA.GetOrders(l_acc1ID), replBL); CompareTrades(sps.GetTrades(r_accounts[0].AccountID, 0).Result, accountDA.GetTrades(l_acc0ID), replBL); CompareTrades(sps.GetTrades(r_accounts[1].AccountID, 0).Result, accountDA.GetTrades(l_acc1ID), replBL); // изменили записи so3.Status = StopOrderStatus.Reject; ord3.Status = OrderStatus.Reject; // снова синхронизировали import.SyncAccountDataAsync(sps).Wait(); // и снова сравнили CompareStopOrders(sps.GetStopOrders(r_accounts[0].AccountID, 0).Result, accountDA.GetStopOrders(l_acc0ID), replBL); CompareStopOrders(sps.GetStopOrders(r_accounts[1].AccountID, 0).Result, accountDA.GetStopOrders(l_acc1ID), replBL); CompareOrders(sps.GetOrders(r_accounts[0].AccountID, 0).Result, accountDA.GetOrders(l_acc0ID), replBL); CompareOrders(sps.GetOrders(r_accounts[1].AccountID, 0).Result, accountDA.GetOrders(l_acc1ID), replBL); CompareTrades(sps.GetTrades(r_accounts[0].AccountID, 0).Result, accountDA.GetTrades(l_acc0ID), replBL); CompareTrades(sps.GetTrades(r_accounts[1].AccountID, 0).Result, accountDA.GetTrades(l_acc1ID), replBL); }