public CocktailUserCommentDTO MapEntityToDTO(CocktailUserComment entity)
 {
     try
     {
         return(new CocktailUserCommentDTO
         {
             CocktailId = entity.CocktailId,
             CocktailName = entity.Cocktail?.Name,
             UserId = entity.UserId,
             UserName = entity.User?.UserName,
             Text = entity.Text,
             IsFlagged = entity.IsFlagged,
         });
     }
     catch (Exception)
     {
         return(new CocktailUserCommentDTO());
     }
 }
예제 #2
0
        public async Task GetRightComments_Successfuly()
        {
            var testCocktailName = "TestCocktailName";
            var testUserName     = "******";
            var options          = Utils.GetOptions(nameof(GetRightComments_Successfuly));

            var testUser = new User()
            {
                Id       = Utils.MySampleGuid(),
                UserName = testUserName,
            };
            var testUser2 = new User()
            {
                Id       = Utils.MySampleGuid2(),
                UserName = testUserName,
            };
            var testCocktail = new Cocktail()
            {
                Id   = Utils.MySampleGuid3(),
                Name = testCocktailName,
            };
            var testComment = new CocktailUserComment()
            {
                UserId     = testUser.Id,
                User       = testUser,
                CocktailId = testCocktail.Id,
                Cocktail   = testCocktail,
                Text       = "Comment text here.",
            };
            var testComment2 = new CocktailUserComment()
            {
                UserId     = testUser2.Id,
                User       = testUser2,
                CocktailId = testCocktail.Id,
                Cocktail   = testCocktail,
                Text       = "Comment text here.2",
            };

            var mockMapper = new Mock <ICocktailCommentMapper>();

            mockMapper.Setup(x => x.MapDTOToEntity(It.IsAny <CocktailUserCommentDTO>()))
            .Returns((CocktailUserCommentDTO x) => new CocktailUserComment()
            {
                CocktailId = x.CocktailId,
                UserId     = x.UserId,
                Text       = x.Text
            });
            mockMapper.Setup(x => x.MapEntityToDTO(It.IsAny <CocktailUserComment>()))
            .Returns((CocktailUserComment x) => new CocktailUserCommentDTO()
            {
                CocktailId   = x.CocktailId,
                CocktailName = x.Cocktail.Name,
                UserId       = x.UserId,
                UserName     = x.User.UserName,
                Text         = x.Text
            });

            using (var arrangeContext = new BCcontext(options))
            {
                await arrangeContext.Users.AddAsync(testUser);

                await arrangeContext.Users.AddAsync(testUser2);

                await arrangeContext.Cocktails.AddAsync(testCocktail);

                await arrangeContext.CocktailComments.AddAsync(testComment);

                await arrangeContext.CocktailComments.AddAsync(testComment2);

                await arrangeContext.SaveChangesAsync();
            }

            //Act & Assert
            using (var context = new BCcontext(options))
            {
                var sut = new CocktailCommentsService(context, mockMapper.Object);

                Assert.IsNotNull(context.Cocktails
                                 .Include(x => x.Comments)
                                 .FirstOrDefault(x => x.Name == testCocktailName)
                                 .Comments.FirstOrDefault());
                Assert.AreEqual(2, context.CocktailComments.Count());
                //Act

                var result = await sut.GetAllAsync(testCocktail.Id, "0", "12");

                //Assert
                Assert.IsNotNull(result);
                //Does not change other
                Assert.AreEqual(1, context.Cocktails.Count());
                Assert.AreEqual(2, context.Users.Count());
                Assert.AreEqual(2, context.CocktailComments.Count());
                //Correct comments
                Assert.AreEqual(testCocktail.Id, result.ToList()[0].CocktailId);
                Assert.AreEqual(testUser.Id, result.ToList()[0].UserId);
                Assert.AreEqual(testCocktail.Id, result.ToList()[1].CocktailId);
                Assert.AreEqual(testUser2.Id, result.ToList()[1].UserId);
                Assert.AreEqual(testComment.Text, result.ToList()[0].Text);
                Assert.AreEqual(testComment2.Text, result.ToList()[1].Text);
            }
        }
예제 #3
0
        public async Task DeleteCocktailComment_Success()
        {
            var testCocktailName = "TestCocktailName";
            var testUserName     = "******";
            var options          = Utils.GetOptions(nameof(DeleteCocktailComment_Success));

            var testUser = new User()
            {
                Id       = Utils.MySampleGuid(),
                UserName = testUserName,
            };
            var testCocktail = new Cocktail()
            {
                Id   = Utils.MySampleGuid3(),
                Name = testCocktailName,
            };
            var testComment = new CocktailUserComment()
            {
                UserId     = testUser.Id,
                User       = testUser,
                CocktailId = testCocktail.Id,
                Cocktail   = testCocktail,
                Text       = "Comment text here.",
            };
            var dto = new CocktailUserCommentDTO()
            {
                UserId     = testUser.Id,
                CocktailId = testCocktail.Id,
                Text       = "Comment text here.",
            };

            var mockMapper = new Mock <ICocktailCommentMapper>();

            mockMapper.Setup(x => x.MapDTOToEntity(It.IsAny <CocktailUserCommentDTO>()))
            .Returns((CocktailUserCommentDTO x) => new CocktailUserComment()
            {
                CocktailId = x.CocktailId,
                UserId     = x.UserId,
                Text       = x.Text
            });
            mockMapper.Setup(x => x.MapEntityToDTO(It.IsAny <CocktailUserComment>()))
            .Returns((CocktailUserComment x) => new CocktailUserCommentDTO()
            {
                CocktailId   = x.CocktailId,
                CocktailName = x.Cocktail.Name,
                UserId       = x.UserId,
                UserName     = x.User.UserName,
                Text         = x.Text
            });

            using (var arrangeContext = new BCcontext(options))
            {
                await arrangeContext.Users.AddAsync(testUser);

                await arrangeContext.Cocktails.AddAsync(testCocktail);

                await arrangeContext.CocktailComments.AddAsync(testComment);

                await arrangeContext.SaveChangesAsync();
            }
            //Act & Assert
            using (var context = new BCcontext(options))
            {
                var sut = new CocktailCommentsService(context, mockMapper.Object);

                Assert.IsNotNull(context.Cocktails
                                 .Include(x => x.Comments)
                                 .FirstOrDefault(x => x.Name == testCocktailName)
                                 .Comments.FirstOrDefault());
                Assert.AreEqual(1, context.CocktailComments.Count());
                //Act

                var result = await sut.DeleteAsync(testCocktail.Id, testUser.Id);

                //Assert

                Assert.IsTrue(result);

                Assert.IsNotNull(context.Cocktails.FirstOrDefault());
                Assert.IsNotNull(context.Users.FirstOrDefault());
            }
        }