Example #1
0
        public async Task BetService_UpdateAsync_WithInvalidModelReturnsErrors()
        {
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(m => m.BetRepository.Update(It.IsAny <Bet>()));
            mockUnitOfWork
            .Setup(m => m.LotRepository.GetByIdAsync(It.IsAny <int>()))
            .ReturnsAsync(
                new Lot
            {
                Id   = 1,
                Bets = new List <Bet>()
                {
                    new Bet {
                        Id = 1, Sum = 100
                    }
                },
            });
            var betService = new BetService(mockUnitOfWork.Object, UnitTestHelper.CreateMapperProfile());
            var bet        = new BetModel
            {
                Id      = 1,
                LotId   = 1,
                UserId  = "3",
                BetDate = DateTime.UtcNow.AddDays(4),
                Sum     = 50
            };

            var result = await betService.UpdateAsync(bet);

            Assert.IsTrue(result.Succedeed);
            mockUnitOfWork.Verify(
                m => m.BetRepository.Update(It.Is <Bet>(
                                                b => b.LotId == bet.LotId &&
                                                b.UserId == bet.UserId &&
                                                b.BetDate == bet.BetDate &&
                                                b.Sum == bet.Sum)),
                Times.Once);
            mockUnitOfWork.Verify(
                m => m.SaveAsync(),
                Times.Once);
        }