public async Task <BarCommentDto> CreateCommentAsync(BarCommentDto tempBarComment) { if (tempBarComment == null) { return(null); } if (tempBarComment.Text == null || tempBarComment.UserId < 1 || tempBarComment.BarId < 1) { return(null); } var newBarComment = new BarComment { Id = tempBarComment.Id, Text = tempBarComment.Text, BarId = tempBarComment.BarId, UserId = tempBarComment.UserId, Author = this.context.Users .FirstOrDefault(a => a.UserName == tempBarComment.Author), CreatedOn = this.dateTimeProvider.GetDateTime(), }; await this.context.AddAsync(newBarComment); await this.context.SaveChangesAsync(); var barCommentDto = this.dtoMapper.MapDto(newBarComment); return(barCommentDto); }
public void MapFrom_Should_CorrectlyMapFrom_BarCommentDto_To_BarCommentViewModel() { //Arrange var sut = new BarCommentViewModelMapper(); var barComment = new BarCommentDto { Id = Guid.NewGuid(), BarId = Guid.NewGuid(), UserId = Guid.NewGuid(), UserName = "******", Body = "testBody", CreatedOn = DateTime.MinValue, }; //Act var result = sut.MapFrom(barComment); //Assert Assert.AreEqual(result.Id, barComment.Id); Assert.AreEqual(result.BarId, barComment.BarId); Assert.AreEqual(result.UserId, barComment.UserId); Assert.AreEqual(result.UserName, barComment.UserName); Assert.AreEqual(result.Body, barComment.Body); Assert.AreEqual(result.CreatedOn, barComment.CreatedOn); }
public async Task <BarCommentDto> CreateAsync(BarCommentDto tempBarComment) { if (tempBarComment == null) { throw new BusinessLogicException(ExceptionMessages.BarCommentNull); } if (String.IsNullOrEmpty(tempBarComment.Body)) { throw new BusinessLogicException(ExceptionMessages.GeneralOopsMessage); } var barComment = new BarComment { Id = tempBarComment.Id, BarId = tempBarComment.BarId, UserId = tempBarComment.UserId, Body = tempBarComment.Body, CreatedOn = tempBarComment.CreatedOn, ModifiedOn = tempBarComment.ModifiedOn, DeletedOn = tempBarComment.DeletedOn, IsDeleted = tempBarComment.IsDeleted }; await this.context.BarComments.AddAsync(barComment); await this.context.SaveChangesAsync(); var barCommentDto = this.dtoMapper.MapFrom(barComment); return(barCommentDto); }
public async Task CorrectlyCreateBarComment() { //Arrange var options = TestUtilities.GetOptions(nameof(CorrectlyCreateBarComment)); var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >(); var id = Guid.NewGuid(); var barId = Guid.NewGuid(); var userId = Guid.NewGuid(); var createdOn = DateTime.UtcNow; var entityDto = new BarCommentDto { Id = id, BarId = barId, UserId = userId, UserName = "******", Body = "testbody", CreatedOn = createdOn }; var entity = new BarComment { Id = id, BarId = barId, UserId = userId, Body = "testbody", CreatedOn = createdOn }; mapperMock.Setup(x => x.MapFrom(It.IsAny <BarComment>())).Returns(entityDto); using (var assertContext = new CWContext(options)) { //Assert var sut = new BarCommentService(assertContext, mapperMock.Object); var result = await sut.CreateAsync(entityDto); Assert.IsInstanceOfType(result, typeof(BarCommentDto)); Assert.AreEqual(id, result.Id); Assert.AreEqual(barId, result.BarId); Assert.AreEqual(userId, result.UserId); Assert.AreEqual("testbody", result.Body); Assert.AreEqual("testuser", result.UserName); Assert.AreEqual(entityDto.Id, result.Id); Assert.AreEqual(entityDto.BarId, result.BarId); Assert.AreEqual(entityDto.UserId, result.UserId); Assert.AreEqual(entityDto.Body, result.Body); Assert.AreEqual(entityDto.UserName, result.UserName); } }
public async Task ReturnCorrectTypeOfEntity() { //Arrange var options = TestUtilities.GetOptions(nameof(ReturnCorrectTypeOfEntity)); var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >(); var id = Guid.NewGuid(); var barId = Guid.NewGuid(); var userId = Guid.NewGuid(); var createdOn = DateTime.UtcNow; var entityDto = new BarCommentDto { Id = id, BarId = barId, UserId = userId, UserName = "******", Body = "testbody", CreatedOn = createdOn }; var entity = new BarComment { Id = id, BarId = barId, UserId = userId, Body = "testbody", CreatedOn = createdOn }; mapperMock.Setup(x => x.MapFrom(It.IsAny <BarComment>())).Returns(entityDto); using (var arrangeContext = new CWContext(options)) { await arrangeContext.BarComments.AddAsync(entity); await arrangeContext.SaveChangesAsync(); } using (var assertContext = new CWContext(options)) { //Act & Assert var sut = new BarCommentService(assertContext, mapperMock.Object); var result = await sut.EditAsync(id, "newbody"); Assert.IsInstanceOfType(result, typeof(BarCommentDto)); } }
public async Task Create_Comment_Correctly() { //Arrange var options = TestUtilities.GetOptions(nameof(Create_Comment_Correctly)); var mockDateTimeProvider = new Mock <IDateTimeProvider>(); var mockBarCommentDtoMapper = new Mock <IDtoMapper <BarComment, BarCommentDto> >(); var user = new User { Id = 1 }; var bar = new Bar { Id = 1 }; var commentDto = new BarCommentDto { Id = 1, UserId = 1, BarId = 1, Text = "TestComment", }; mockBarCommentDtoMapper.Setup(x => x.MapDto(It.IsAny <BarComment>())).Returns(commentDto); using (var arrangeContext = new CocktailMagicianContext(options)) { await arrangeContext.Bars.AddAsync(bar); await arrangeContext.Users.AddAsync(user); await arrangeContext.SaveChangesAsync(); } //Act and Assert using (var assertContext = new CocktailMagicianContext(options)) { var sut = new BarCommentsService(assertContext, mockBarCommentDtoMapper.Object, mockDateTimeProvider.Object); var result = await sut.CreateCommentAsync(commentDto); Assert.IsInstanceOfType(result, typeof(BarCommentDto)); Assert.AreEqual(1, result.Id); Assert.AreEqual(1, result.BarId); Assert.AreEqual(1, result.UserId); Assert.AreEqual("TestComment", result.Text); } }
public void MapFrom_Should_ReturnCorrectInstanceOf_BarCommentViewModel() { //Arrange var sut = new BarCommentViewModelMapper(); var barComment = new BarCommentDto { Id = Guid.NewGuid(), BarId = Guid.NewGuid(), UserId = Guid.NewGuid(), UserName = "******", Body = "testBody", CreatedOn = DateTime.MinValue, }; //Act var result = sut.MapFrom(barComment); //Assert Assert.IsInstanceOfType(result, typeof(BarCommentViewModel)); }
public async Task ReturnNull_When_DtoParamsAreInvalid() { //Arrange var options = TestUtilities.GetOptions(nameof(ReturnNull_When_DtoParamsAreInvalid)); var mockDateTimeProvider = new Mock <IDateTimeProvider>(); var mockBarCommentDtoMapper = new Mock <IDtoMapper <BarComment, BarCommentDto> >(); var user = new User { Id = 1 }; var bar = new Bar { Id = 1 }; var commentDto = new BarCommentDto { Id = 1, UserId = 0, BarId = 0, Text = null, }; using (var arrangeContext = new CocktailMagicianContext(options)) { await arrangeContext.Bars.AddAsync(bar); await arrangeContext.Users.AddAsync(user); await arrangeContext.SaveChangesAsync(); } //Act and Assert using (var assertContext = new CocktailMagicianContext(options)) { var sut = new BarCommentsService(assertContext, mockBarCommentDtoMapper.Object, mockDateTimeProvider.Object); var result = await sut.CreateCommentAsync(null); Assert.IsNull(result); } }