Beispiel #1
0
        public async Task Login_AccountInfo_Update()
        {
            // Arrange
            var    fail                = false;
            var    hasUpdated          = false;
            string errorMessage        = string.Empty;
            var    exchangeApi         = ExchangeServiceHelper.GetExchangeService(ExchangeServiceType.SubscribeAccountInfo);
            var    exchangeService     = new WpfExchangeService(exchangeApi);
            var    symbolsCacheFactory = SymbolsCacheFactoryHelper.GetSymbolsCachefactory(exchangeService);
            var    accountViewModel    = new AccountBalancesViewModel(exchangeService, symbolsCacheFactory, new DebugLogger());

            var account = new Account(new Core.Model.AccountInfo {
                User = new Core.Model.User()
            })
            {
                ApiKey    = "apikey",
                ApiSecret = "apisecret"
            };

            accountViewModel.Account = account;

            var accountObservable = Observable.FromEventPattern <AccountEventArgs>(
                eventHandler => accountViewModel.OnAccountNotification += eventHandler,
                eventHandler => accountViewModel.OnAccountNotification -= eventHandler)
                                    .Select(eventPattern => eventPattern.EventArgs);

            accountObservable.Subscribe(args =>
            {
                if (args.AccountEventType.Equals(AccountEventType.LoggedIn))
                {
                    // expected
                }
                else if (args.AccountEventType.Equals(AccountEventType.UpdateOrders))
                {
                    hasUpdated = true;
                }
                else
                {
                    fail = true;
                }
            });

            // Act
            await accountViewModel.Login(account);

            // Assert
            var btc  = accountViewModel.Account.Balances.SingleOrDefault(ab => ab.Asset.Equals("BTC"));
            var bcpt = accountViewModel.Account.Balances.SingleOrDefault(ab => ab.Asset.Equals("BCPT"));
            var test = accountViewModel.Account.Balances.SingleOrDefault(ab => ab.Asset.Equals("TEST"));

            Assert.IsTrue(hasUpdated);
            Assert.IsNull(btc);
            Assert.IsNull(bcpt);
            Assert.IsNotNull(test);
            Assert.IsTrue(accountViewModel.Account.Balances.Count().Equals(5));
            Assert.IsFalse(fail);
        }
 public IncomingViewModel(
     IncomingFormViewModel incomingFormViewModel,
     SourcesControlViewModel sourcesControlViewModel,
     IncomingJournalViewModel journalViewModel,
     AccountBalancesViewModel accountBalancesViewModel)
 {
     IncomingFormVM    = incomingFormViewModel;
     SourcesControlVM  = sourcesControlViewModel;
     IncomingJournalVM = journalViewModel;
     AccountBalancesVM = accountBalancesViewModel;
 }
 public OutcomingViewModel(
     OutcomingFormViewModel outcomingFormViewModel,
     CategoriesControlViewModel categoriesControlViewModel,
     OutcomingJournalViewModel journalViewModel,
     AccountBalancesViewModel accountBalancesViewModel)
 {
     OutcomingFormVM     = outcomingFormViewModel;
     CategoriesControlVM = categoriesControlViewModel;
     JournalVM           = journalViewModel;
     AccountBalancesVM   = accountBalancesViewModel;
 }
Beispiel #4
0
        public async Task SelectedAsset()
        {
            // Arrange
            var            fail = false;
            AccountBalance selectedAccountBalance = null;
            var            exchangeApi            = ExchangeServiceHelper.GetExchangeService();
            var            exchangeService        = new WpfExchangeService(exchangeApi);
            var            symbolsCacheFactory    = SymbolsCacheFactoryHelper.GetSymbolsCachefactory(exchangeService);
            var            accountViewModel       = new AccountBalancesViewModel(exchangeService, symbolsCacheFactory, new DebugLogger());

            var account = new Account(new Core.Model.AccountInfo {
                User = new Core.Model.User()
            })
            {
                ApiKey    = "apikey",
                ApiSecret = "apisecret"
            };

            accountViewModel.Account = account;

            var accountObservable = Observable.FromEventPattern <AccountEventArgs>(
                eventHandler => accountViewModel.OnAccountNotification += eventHandler,
                eventHandler => accountViewModel.OnAccountNotification -= eventHandler)
                                    .Select(eventPattern => eventPattern.EventArgs);

            accountObservable.Subscribe(args =>
            {
                if (args.AccountEventType.Equals(AccountEventType.LoggedIn))
                {
                    // expected
                }
                else if (args.AccountEventType.Equals(AccountEventType.SelectedAsset))
                {
                    selectedAccountBalance = args.SelectedAsset;
                }
                else
                {
                    fail = true;
                }
            });

            // Act
            await accountViewModel.Login(account);

            var trx = accountViewModel.Account.Balances.Single(ab => ab.Asset.Equals("TRX"));

            accountViewModel.SelectedAsset = trx;

            // Assert
            Assert.AreEqual(selectedAccountBalance, trx);
            Assert.IsFalse(fail);
        }