Ejemplo n.º 1
0
        static void RunEmitation(BussinesService bussinesService, Interfaces.ILoggable loggerService)
        {
            var shareholders = bussinesService.GetAllShareholders();

            List <Shareholder> shareholdersList = new List <Shareholder>();

            foreach (var shareholder in shareholders)
            {
                shareholdersList.Add(shareholder);
            }

            Random random = new Random();

            var randomShareholderIndex = random.Next(0, shareholdersList.Count());

            var randomShareholderA = shareholdersList[randomShareholderIndex];

            shareholdersList.RemoveAt(randomShareholderIndex);

            randomShareholderIndex = random.Next(0, shareholdersList.Count());

            var randomShareholderB = shareholdersList[randomShareholderIndex];

            var arrayOfSharesTypes = Enum.GetValues(typeof(SharesTypes));

            var randomSharesType = (SharesTypes)arrayOfSharesTypes.GetValue(random.Next(arrayOfSharesTypes.Length));

            var trade = new Trade
            {
                ShareholderId = randomShareholderA.Id,
                BuyerId       = randomShareholderB.Id,
                Value         = random.Next(1, 30),
                ValueType     = randomSharesType
            };

            bussinesService.RegisterNewTrade(
                trade,
                randomShareholderA,
                randomShareholderB);

            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("log info: ");
            loggerService.Info($"->{trade.ToString()}<-");

            Console.ForegroundColor = ConsoleColor.Gray;
            Console.WriteLine(trade);
            Console.ForegroundColor = ConsoleColor.DarkGray;

            Console.WriteLine($"Shareholder's " +
                              $"\n\tbalance value: {bussinesService.GetMostWantedBalanceById(randomShareholderA.Id).BalanceValue.ToString()}" +
                              $"\n\tbalance zone: {bussinesService.GetMostWantedBalanceById(randomShareholderA.Id).BalanceZone.ToString()}");

            Console.WriteLine($"Buyer's " +
                              $"\n\tbalance value: {bussinesService.GetMostWantedBalanceById(randomShareholderB.Id).BalanceValue.ToString()}" +
                              $"\n\tbalance zone: {bussinesService.GetMostWantedBalanceById(randomShareholderB.Id).BalanceZone.ToString()}");
        }
Ejemplo n.º 2
0
        public void ShouldRegisterNewTrade()
        {
            Stock stock = new Stock()
            {
                NameTypeOfStock = "Pollyanna",
                Cost            = 1300
            };
            Client seller = new Client()
            {
                FirstName   = "Moon",
                LastName    = "Pilot",
                Balance     = -1000,
                PhoneNumber = "765899",
                Zone        = ClientZoneOfBalance.Black,
                Stocks      = new List <Stock>()
                {
                    stock
                }
            };
            Client buyer = new Client
            {
                FirstName = "Mary",
                LastName  = "Poppins",
                Balance   = 1300,
                Zone      = ClientZoneOfBalance.Green,
                Stocks    = new List <Stock>()
                {
                    stock
                }
            };

            Trade trade = new Trade()
            {
                Seller = seller, Buyer = buyer, StockFromSeller = stock
            };

            bussinesService.RegisterNewTrade(trade);

            Received.InOrder(() =>
            {
                dataContextRepository.Received(1).Add(Arg.Any <Trade>());
                dataContextRepository.Received(2).Update(Arg.Any <Client>());
                dataContextRepository.Received(1).SaveChanges();
            });
        }