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); } }
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)); }
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); }
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); } }