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); }