예제 #1
0
        public void Setup()
        {
            // подготовить свежие котировки
            QuoteMaker.FillQuoteStorageWithDefaultValues();

            // соединение и тестовые данные
            TradeSharpConnectionPersistent.RestoreCsvFilesInMoqDbFolder();
            conn = TradeSharpConnectionPersistent.InitializeTradeSharpConnection();
            MakeTestData();

            // словари
            TradeSharpDictionary.Initialize(MoqTradeSharpDictionary.Mock);

            // тестируемый менеджер
            ManagerTrade.MakeTestInstance(
                new Dictionary <string, IDealer>
            {
                { testAccount.AccountGroup,
                  new DemoDealer.DemoDealer(new DealerDescription(), conn.ACCOUNT_GROUP.Select(g => g.Code).ToList()) }
            });
            managerTrade = ManagerTrade.Instance;
            var mockAccountRepository = new Mock <IAccountRepository>();

            mockAccountRepository.Setup(s => s.GetAccount(It.IsAny <int>())).Returns(
                (int id) => LinqToEntity.DecorateAccount(testAccount));
            managerTrade.accountRepository = mockAccountRepository.Object;

            managerTrade.orderRepository = OrderRepository.Instance;
        }
 public void Setup()
 {
     conn = TradeSharpConnectionPersistent.InitializeTradeSharpConnection();
     ManagerTrade.MakeTestInstance();
     SetupFakeStatistics();
     FindSubscriber();
 }
예제 #3
0
        private void TestSubscriptionFeeCharged(ManagerTrade tradeManager, SERVICE service, PLATFORM_USER serviceOwner)
        {
            RemoveSubscriptionIfAny(service.ID);

            var         cacheInWallet = GetUserCacheAmount(subscriber.ID);
            var         ownerCache    = GetUserCacheAmount(serviceOwner.ID);
            WalletError error;

            tradeManager.SubscribeOnService(ProtectedOperationContext.MakeServerSideContext(),
                                            subscriber.Login, service.ID, true, false, new AutoTradeSettings(),
                                            out error);
            Assert.AreEqual(WalletError.OK, error, "Тестовая подписка должна пройти успешно");
            var cacheInWalletAfter = GetUserCacheAmount(subscriber.ID);
            var ownerCacheAfter    = GetUserCacheAmount(serviceOwner.ID);

            var curxRate = service.Currency == SubscriberCurx
                               ? new QuoteData(1, 1, DateTime.Now)
                               : QuoteStorage.Instance.ReceiveValue("USDRUB");
            var userLost = service.FixedPrice / (decimal)curxRate.bid;
            var ownerGot = service.FixedPrice;

            Assert.IsTrue((cacheInWallet - userLost).SameMoney(cacheInWalletAfter),
                          "Подписка сняла оговоренную сумму (валюта одна)");
            Assert.IsTrue((ownerCache + ownerGot).SameMoney(ownerCacheAfter),
                          "Подписка принесла владельцу оговоренную сумму (валюта одна)");
        }
        public void InitTest()
        {
            // забить котировки
            QuoteMaker.FillQuoteStorageWithDefaultValues();

            // словари
            TradeSharpDictionary.Initialize(MoqTradeSharpDictionary.Mock);
            DalSpot.Instantiate(TradeSharpDictionary.Instance.proxy);

            tradeManager = new TradeManager(
                null,
                null,
                QuoteStorage.Instance, accountId =>
            {
                // ReSharper disable ConvertToLambdaExpression
                return(LinqToEntity.DecorateAccountGroup(conn.ACCOUNT.First(a => a.ID == accountId).ACCOUNT_GROUP));
                // ReSharper restore ConvertToLambdaExpression
            });
            ManagerTrade.MakeTestInstance();

            // временно удалить файл начального наполнения (открытые ордера)
            TradeSharpConnectionPersistent.RestoreCsvFilesInMoqDbFolder();
            TradeSharpConnectionPersistent.RenameCsvFilesContainingAccountDataInMoqDbFolder();
            conn = TradeSharpConnectionPersistent.InitializeTradeSharpConnection();
            MakeTestContents();
        }
예제 #5
0
        public void Setup()
        {
            conn = TradeSharpConnectionPersistent.InitializeTradeSharpConnection();
            // подготовить свежие котировки
            QuoteMaker.FillQuoteStorageWithDefaultValues();

            // словари
            TradeSharpDictionary.Initialize(MoqTradeSharpDictionary.Mock);

            ManagerTrade.MakeTestInstance();
            testManager = ManagerAccount.Instance;

            // тестовые данные
            MakeTestData();
        }
예제 #6
0
        public void Setup()
        {
            conn = TradeSharpConnectionPersistent.InitializeTradeSharpConnection();
            ManagerTrade.MakeTestInstance();
            subscriber = (from usr in conn.PLATFORM_USER
                          join w in conn.WALLET on usr.ID equals w.User
                          join pa in conn.PLATFORM_USER_ACCOUNT on usr.ID equals pa.PlatformUser
                          where pa.RightsMask == (int)AccountRights.Управление && w.Currency == SubscriberCurx && w.Balance > 40
                          select usr).First();

            CreateServiceWithOwner("USD", 5, out serviceOwnerUsd, out serviceUsd);
            CreateServiceWithOwner("RUB", 25, out serviceOwnerRub, out serviceRub);
            QuoteStorage.Instance.UpdateValues("USDRUB", new QuoteData(35.20f, 35.20f, DateTime.Now));

            // словари
            TradeSharpDictionary.Initialize(MoqTradeSharpDictionary.Mock);
        }
예제 #7
0
 public void TearDown()
 {
     conn.Cleanup();
     ManagerTrade.MakeTestInstance();
 }