Esempio n. 1
0
        public async Task CreateComment_Throws_When_NoUserFound()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(CreateComment_Throws_When_NoUserFound));

            var cocktail = new Cocktail  {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var userId             = Guid.NewGuid();
            var cocktailCommentDTO = new CocktailCommentsDTO {
                CocktailId = cocktail.Id, UserId = userId
            };


            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Cocktails.AddRangeAsync(cocktail);

                await arrangeContext.SaveChangesAsync();
            }

            //Act, Assert
            using (var assertContext = new CMContext(options))
            {
                var sut = new CocktailCommentServices(assertContext);

                await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => sut.CreateComment(cocktailCommentDTO));
            }
        }
Esempio n. 2
0
        public async Task DeleteComment_Throws_When_NoCommentFound()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(DeleteComment_Throws_When_NoCommentFound));

            var user = new User {
                Id = Guid.NewGuid(), UserName = "******"
            };
            var cocktail = new Cocktail {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var cocktailComment = new CocktailComment {
                CocktailId = cocktail.Id, UserId = user.Id
            };
            var commentId = Guid.NewGuid();

            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Cocktails.AddAsync(cocktail);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.CocktailComments.AddAsync(cocktailComment);

                await arrangeContext.SaveChangesAsync();
            }

            //Act, Assert
            using (var assertContext = new CMContext(options))
            {
                var sut = new CocktailCommentServices(assertContext);

                await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => sut.DeleteComment(commentId));
            }
        }
Esempio n. 3
0
        public async Task GetAllCommentsForCocktail_Returns_Correct_WhenParam_IsValid()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(GetAllCommentsForCocktail_Returns_Correct_WhenParam_IsValid));

            var user = new User {
                Id = Guid.NewGuid(), UserName = "******"
            };
            var user2 = new User {
                Id = Guid.NewGuid(), UserName = "******"
            };

            var cocktail = new Cocktail {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var cocktailComment = new CocktailComment {
                CocktailId = cocktail.Id, UserId = user.Id
            };
            var cocktailComment2 = new CocktailComment {
                CocktailId = cocktail.Id, UserId = user2.Id
            };


            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Cocktails.AddAsync(cocktail);

                await arrangeContext.Users.AddRangeAsync(user, user2);

                await arrangeContext.CocktailComments.AddRangeAsync(cocktailComment, cocktailComment2);

                await arrangeContext.SaveChangesAsync();
            }

            //Act, Assert
            using (var assertContext = new CMContext(options))
            {
                var sut    = new CocktailCommentServices(assertContext);
                var result = await sut.GetAllCommentsForCocktail(cocktail.Id);

                Assert.AreEqual(2, result.Count());
                Assert.AreEqual(result.ToList()[0].UserId, user.Id);
                Assert.AreEqual(result.ToList()[1].UserId, user2.Id);
                Assert.IsInstanceOfType(result, typeof(ICollection <CocktailCommentsDTO>));
            }
        }
Esempio n. 4
0
        public async Task GetAllCommentsOfUser_ShouldReturn_Correct()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(GetAllCommentsOfUser_ShouldReturn_Correct));

            var user = new User {
                Id = Guid.NewGuid(), UserName = "******"
            };

            var cocktail = new Cocktail {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var cocktail2 = new Cocktail {
                Id = Guid.NewGuid(), Name = "Cosmos"
            };
            var comment = new CocktailComment {
                CocktailId = cocktail.Id, UserId = user.Id
            };
            var comment2 = new CocktailComment {
                CocktailId = cocktail2.Id, UserId = user.Id, IsDeleted = true
            };

            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Cocktails.AddRangeAsync(cocktail, cocktail2);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.CocktailComments.AddRangeAsync(comment, comment2);

                await arrangeContext.SaveChangesAsync();
            }

            //Act, Assert
            using (var assertContext = new CMContext(options))
            {
                //TODO: Replace USername with id
                var sut    = new CocktailCommentServices(assertContext);
                var result = await sut.GetAllCommentsOfUser(user.Id, user.UserName);

                Assert.AreEqual(1, result.Count);
                Assert.IsInstanceOfType(result, typeof(ICollection <CocktailCommentsDTO>));
            }
        }
Esempio n. 5
0
        public async Task GetAllCommentsForCocktail_Returns_OnlyExistingEntities()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(GetAllCommentsForCocktail_Returns_OnlyExistingEntities));

            var user = new User {
                Id = Guid.NewGuid(), UserName = "******"
            };
            var user2 = new User {
                Id = Guid.NewGuid(), UserName = "******"
            };

            var cocktail = new Cocktail {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var cocktailComment = new CocktailComment {
                CocktailId = cocktail.Id, UserId = user.Id
            };
            var cocktailComment2 = new CocktailComment {
                CocktailId = cocktail.Id, UserId = user2.Id, IsDeleted = true
            };


            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Cocktails.AddAsync(cocktail);

                await arrangeContext.Users.AddRangeAsync(user, user2);

                await arrangeContext.CocktailComments.AddRangeAsync(cocktailComment, cocktailComment2);

                await arrangeContext.SaveChangesAsync();
            }

            //Act, Assert
            using (var assertContext = new CMContext(options))
            {
                var sut    = new CocktailCommentServices(assertContext);
                var result = await sut.GetAllCommentsForCocktail(cocktail.Id);

                Assert.AreEqual(1, result.Count());
            }
        }
Esempio n. 6
0
        public async Task CreateComment_Creates_Correct()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(CreateComment_Creates_Correct));

            var user = new User {
                Id = Guid.NewGuid(), UserName = "******"
            };
            var cocktail = new Cocktail {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };

            var cocktailCommentDTO = new CocktailCommentsDTO {
                CocktailId = cocktail.Id, UserId = user.Id, Comments = "Great"
            };


            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Users.AddRangeAsync(user);

                await arrangeContext.Cocktails.AddRangeAsync(cocktail);

                await arrangeContext.SaveChangesAsync();
            }

            //Act, Assert
            using (var assertContext = new CMContext(options))
            {
                var sut    = new CocktailCommentServices(assertContext);
                var result = await sut.CreateComment(cocktailCommentDTO);

                Assert.AreEqual(cocktail.Id, result.CocktailId);
                Assert.AreEqual(user.Id, result.UserId);
                Assert.AreEqual(1, assertContext.CocktailComments.Count());
                Assert.IsInstanceOfType(result, typeof(CocktailCommentsDTO));
            }
        }
Esempio n. 7
0
        public async Task DeleteComment_ShouldDelete_Correct()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(DeleteComment_ShouldDelete_Correct));

            var user = new User {
                Id = Guid.NewGuid(), UserName = "******"
            };
            var cocktail = new Cocktail {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var cocktailComment = new CocktailComment {
                CocktailId = cocktail.Id, UserId = user.Id
            };

            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Cocktails.AddAsync(cocktail);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.CocktailComments.AddAsync(cocktailComment);

                await arrangeContext.SaveChangesAsync();
            }

            //Act, Assert
            using (var assertContext = new CMContext(options))
            {
                var sut    = new CocktailCommentServices(assertContext);
                var result = await sut.DeleteComment(cocktailComment.Id);

                Assert.AreEqual(true, result.IsDeleted);
                Assert.IsInstanceOfType(result, typeof(CocktailCommentsDTO));
            }
        }