Example #1
0
        public async Task <BarRatingDto> CreateAsync(BarRatingDto tempBarRating)
        {
            if (tempBarRating == null)
            {
                throw new BusinessLogicException(ExceptionMessages.BarRatingNull);
            }

            var barRating = new BarRating
            {
                Value      = tempBarRating.Value,
                UserId     = tempBarRating.UserId,
                BarId      = tempBarRating.BarId,
                CreatedOn  = tempBarRating.CreatedOn,
                ModifiedOn = tempBarRating.ModifiedOn,
                DeletedOn  = tempBarRating.DeletedOn,
                IsDeleted  = tempBarRating.IsDeleted
            };

            await this.context.BarRatings.AddAsync(barRating);

            await this.context.SaveChangesAsync();

            var barRatingDto = this.dtoMapper.MapFrom(barRating);

            return(barRatingDto);
        }
        public async Task Return_Correct_Model_When_ParamsAreValid()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(Return_Correct_Model_When_ParamsAreValid));
            var mockDateTimeProvider   = new Mock <IDateTimeProvider>();
            var mockBarRatingDtoMapper = new Mock <IDtoMapper <BarRating, BarRatingDto> >();

            var user = new User {
                Id = 1
            };
            var bar = new Bar {
                Id = 1
            };

            var rating = new BarRating
            {
                Id     = 1,
                UserId = 1,
                BarId  = 1,
                Value  = 5,
            };
            var ratingDto = new BarRatingDto
            {
                Id     = 1,
                UserId = 1,
                BarId  = 1,
                Value  = 5,
            };

            mockBarRatingDtoMapper.Setup(x => x.MapDto(It.IsAny <BarRating>())).Returns(ratingDto);

            using (var arrangeContext = new CocktailMagicianContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.BarRatings.AddAsync(rating);

                await arrangeContext.SaveChangesAsync();
            }

            //Act and Assert
            using (var assertContext = new CocktailMagicianContext(options))
            {
                var sut    = new BarRatingService(assertContext, mockBarRatingDtoMapper.Object, mockDateTimeProvider.Object);
                var result = await sut.GetRatingAsync(1, 1);

                Assert.IsInstanceOfType(result, typeof(BarRatingDto));
                Assert.AreEqual(1, result.Id);
                Assert.AreEqual(1, result.UserId);
                Assert.AreEqual(1, result.BarId);
                Assert.AreEqual(5, result.Value);
            }
        }
Example #3
0
        public async Task CorrectlyCreateBarRating()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(CorrectlyCreateBarRating));

            var mapperMock = new Mock <IDtoMapper <BarRating, BarRatingDto> >();

            var barId     = Guid.NewGuid();
            var barIdTwo  = Guid.NewGuid();
            var userId    = Guid.NewGuid();
            var userIdTwo = Guid.NewGuid();

            var createdOn = DateTime.UtcNow;

            var entityDto = new BarRatingDto
            {
                BarId     = barId,
                UserId    = userId,
                UserName  = "******",
                Value     = 2,
                CreatedOn = createdOn
            };

            var entity = new BarRating
            {
                BarId     = barIdTwo,
                UserId    = userIdTwo,
                Value     = 2,
                CreatedOn = createdOn
            };

            mapperMock.Setup(x => x.MapFrom(It.IsAny <BarRating>())).Returns(entityDto);

            using (var assertContext = new CWContext(options))
            {
                //Assert

                var sut    = new BarRatingService(assertContext, mapperMock.Object);
                var result = await sut.CreateAsync(entityDto);

                Assert.IsInstanceOfType(result, typeof(BarRatingDto));
                Assert.AreEqual(barId, result.BarId);
                Assert.AreEqual(userId, result.UserId);
                Assert.AreEqual(userId, result.UserId);
                Assert.AreEqual(2, result.Value);
                Assert.AreEqual("testusername", result.UserName);

                Assert.AreEqual(entityDto.BarId, result.BarId);
                Assert.AreEqual(entityDto.UserId, result.UserId);
                Assert.AreEqual(entityDto.UserId, result.UserId);
                Assert.AreEqual(entityDto.Value, result.Value);
                Assert.AreEqual(entityDto.UserName, result.UserName);
            }
        }
        public async Task Throw_WhenNoBarRatingDtoFound()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(Throw_WhenNoBarRatingDtoFound));

            var mapperMock = new Mock <IDtoMapper <BarRating, BarRatingDto> >();

            var barId     = Guid.NewGuid();
            var userId    = Guid.NewGuid();
            var userIdTwo = Guid.NewGuid();

            var entity = new BarRating
            {
                BarId  = barId,
                UserId = userId,
                Value  = 2
            };

            var entityDto = new BarRatingDto
            {
                BarId  = barId,
                UserId = userId,
                Value  = 2
            };



            mapperMock.Setup(x => x.MapFrom(It.IsAny <BarRating>())).Returns(entityDto);

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.BarRatings.AddAsync(entity);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new BarRatingService(assertContext, mapperMock.Object);

                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.GetRatingAsync(barId, userId));
            }
        }
        public void MapFrom_Should_ReturnCorrectInstanceOf_BarRatingViewModel()
        {
            //Arrange
            var sut = new BarRatingViewModelMapper();

            var barRating = new BarRatingDto
            {
                UserId    = Guid.NewGuid(),
                UserName  = "******",
                BarId     = Guid.NewGuid(),
                CreatedOn = DateTime.Now,
                Value     = 4,
            };

            //Act
            var result = sut.MapFrom(barRating);

            //Assert
            Assert.IsInstanceOfType(result, typeof(BarRatingViewModel));
        }
Example #6
0
        public async Task <BarRatingDto> CreateRatingAsync(BarRatingDto tempBarRating)
        {
            if (tempBarRating == null)
            {
                return(null);
            }
            if (tempBarRating.Value == 0 || tempBarRating.UserId < 1 || tempBarRating.BarId < 1)
            {
                return(null);
            }
            var rating = await this.GetRatingAsync(tempBarRating.BarId, tempBarRating.UserId);

            if (rating == null)
            {
                var newBarRating = new BarRating
                {
                    Id        = tempBarRating.Id,
                    Value     = tempBarRating.Value,
                    BarId     = tempBarRating.BarId,
                    UserId    = tempBarRating.UserId,
                    CreatedOn = this.dateTimeProvider.GetDateTime(),
                };



                await this.context.AddAsync(newBarRating);

                await this.context.SaveChangesAsync();

                var barRatingDto = this.dtoMapper.MapDto(newBarRating);

                return(barRatingDto);
            }
            var editdRating = await this.EditRatingAsync(tempBarRating.BarId, tempBarRating.UserId, tempBarRating.Value);

            return(editdRating);
        }
Example #7
0
        public async Task ReturnNull_When_ParamsAreInvalid()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ReturnNull_When_ParamsAreInvalid));
            var mockDateTimeProvider   = new Mock <IDateTimeProvider>();
            var mockBarRatingDtoMapper = new Mock <IDtoMapper <BarRating, BarRatingDto> >();

            var ratingDto = new BarRatingDto
            {
                Id     = 1,
                UserId = 0,
                BarId  = 0,
                Value  = 0,
            };

            //Act and Assert
            using (var assertContext = new CocktailMagicianContext(options))
            {
                var sut    = new BarRatingService(assertContext, mockBarRatingDtoMapper.Object, mockDateTimeProvider.Object);
                var result = await sut.CreateRatingAsync(ratingDto);

                Assert.IsNull(result);
            }
        }
        public void MapFrom_Should_CorrectlyMapFrom_BarRatingDto_To_BarRatingViewModel()
        {
            //Arrange
            var sut = new BarRatingViewModelMapper();

            var barRating = new BarRatingDto
            {
                UserId    = Guid.NewGuid(),
                UserName  = "******",
                BarId     = Guid.NewGuid(),
                CreatedOn = DateTime.Now,
                Value     = 4,
            };

            //Act
            var result = sut.MapFrom(barRating);

            //Assert
            Assert.AreEqual(result.Value, barRating.Value);
            Assert.AreEqual(result.BarId, barRating.BarId);
            Assert.AreEqual(result.UserId, barRating.UserId);
            Assert.AreEqual(result.UserName, barRating.UserName);
            Assert.AreEqual(result.CreatedOn, barRating.CreatedOn);
        }
        public async Task ReturnCorrectInstanceOfBarRatingDto()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ReturnCorrectInstanceOfBarRatingDto));

            var mapperMock = new Mock <IDtoMapper <BarRating, BarRatingDto> >();

            var barId     = Guid.NewGuid();
            var userId    = Guid.NewGuid();
            var userIdTwo = Guid.NewGuid();

            var bar = new Bar
            {
                Name = "BarTest",
                Id   = barId,
            };
            var user = new User
            {
                UserName = "******",
                Id       = userId,
            };

            var entity = new BarRating
            {
                BarId  = bar.Id,
                UserId = user.Id,
                Value  = 2
            };

            var entityDto = new BarRatingDto
            {
                BarId  = bar.Id,
                UserId = user.Id,
                Value  = 2
            };



            mapperMock.Setup(x => x.MapFrom(It.IsAny <BarRating>())).Returns(entityDto);

            using (var arrangeContext = new CWContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.BarRatings.AddAsync(entity);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new BarRatingService(assertContext, mapperMock.Object);

                var result = await sut.GetRatingAsync(barId, userId);

                Assert.IsInstanceOfType(result, typeof(BarRatingDto));
                Assert.AreEqual(entity.Value, result.Value);
                Assert.AreEqual(entity.UserId, result.UserId);
            }
        }