public void ShouldChangeShareType()
        {
            // Arrange
            var shareService = new ShareService(
                this.shareRepository,
                this.shareTypeRepository,
                this.stockRepository,
                this.traderRepository);
            ShareTypeEntity firstShareType = new ShareTypeEntity {
                Id = 1
            };
            ShareTypeEntity secondShareType = new ShareTypeEntity {
                Id = 2
            };
            ShareEntity shareToChange = new ShareEntity {
            };

            this.shareRepository.GetById(Arg.Is <int>(1)).Returns(shareToChange);
            this.shareTypeRepository.GetById(Arg.Is <int>(1)).Returns(firstShareType);
            this.shareTypeRepository.GetById(Arg.Is <int>(2)).Returns(secondShareType);

            // Act
            shareService.ChangeShareType(1, 2);

            // Assert
            this.shareRepository.Received(1).Save(shareToChange);
            Assert.IsTrue(shareToChange.ShareType == secondShareType);
        }
示例#2
0
        private void ChangeShareType()
        {
            Console.Clear();
            Console.WriteLine("Изменение типа акции");
            Console.WriteLine("Чтобы изменить тип акции необходимо выбрать акцию, находящуюся в торговле, введя её номер.");
            Console.WriteLine("Чтобы вернуться в меню введите menu на любом из этапов заполнения");
            Console.WriteLine("Список акций, находящихся на бирже:");
            Console.WriteLine("{0, -5} |{1,-20} |{2,-15} |{3,-10} |{4,-10} |{5}",
                              "Номер", "Владелец", "Компания", "Количество", "Тип акции", "Стоимость пакета");

            var sharesWithInfo = from share in this.shareTableRepository.GetAll()
                                 join trader in this.traderTableRepository.GetAll() on share.Owner equals trader
                                 join stock in this.stockTableRepository.GetAll() on share.Stock equals stock
                                 join company in this.companyTableRepository.GetAll() on stock.Company equals company
                                 join shareType in this.shareTypeTableRepository.GetAll() on share.ShareType equals shareType
                                 select new
            {
                share.Id,
                OwnerFullName = trader.FirstName + " " + trader.LastName,
                CompanyName   = company.Name,
                share.Amount,
                PackagePrice  = share.Amount * shareType.Multiplier * stock.PricePerUnit,
                ShareTypeName = shareType.Name
            };

            foreach (var item in sharesWithInfo)
            {
                Console.Write($"{item.Id, -5} |{item.OwnerFullName, -20} |{item.CompanyName,-15} |{item.Amount,-10} |{item.ShareTypeName,-10} |{item.PackagePrice:0.00}\n");
            }
            Console.WriteLine();
            int    shareId;
            string consoleInput;

            do
            {
                Console.Write("Выберите номер акции, чей тип необходимо изменить: ");
                consoleInput = Console.ReadLine();
            } while (!int.TryParse(consoleInput, out shareId));
            int shareTypeId;

            do
            {
                Console.Write("Выберите тип акции, на который вы хотите изменить текущий (1 - Нормальный, 2 - Привилегированный, 3 - Особенный): ");
                consoleInput = Console.ReadLine();
            } while (!int.TryParse(consoleInput, out shareTypeId));

            try
            {
                shareService.ChangeShareType(shareId, shareTypeId);
                Console.WriteLine("Тип акции успешно изменён.");
            }
            catch (Exception ex)
            {
                Logger.ConsoleLogger.Error(ex.Message);
            }

            Console.WriteLine("Нажмите любую клавишу, чтобы вернуться в меню...");
            Console.ReadKey();
        }
示例#3
0
        public void ShouldNotChangeShareTypeIfShareDoesntExist()
        {
            // Arrange
            var shareService = new ShareService(this.shareRepository, this.shareTypeRepository);

            this.shareRepository.GetById(Arg.Is <int>(1)).ReturnsNull();

            // Act
            shareService.ChangeShareType(1, 1);
        }