public async Task CorrectlyCreateCocktailComment()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(CorrectlyCreateCocktailComment));

            var mapperMock = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            var id         = Guid.NewGuid();
            var cocktailId = Guid.NewGuid();
            var userId     = Guid.NewGuid();

            var createdOn = DateTime.UtcNow;

            var entityDto = new CocktailCommentDto
            {
                Id         = id,
                CocktailId = cocktailId,
                UserId     = userId,
                UserName   = "******",
                Body       = "testbody",
                CreatedOn  = createdOn
            };

            var entity = new CocktailComment
            {
                Id         = id,
                CocktailId = cocktailId,
                UserId     = userId,
                Body       = "testbody",
                CreatedOn  = createdOn
            };

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

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

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

                Assert.IsInstanceOfType(result, typeof(CocktailCommentDto));
                Assert.AreEqual(id, result.Id);
                Assert.AreEqual(cocktailId, result.CocktailId);
                Assert.AreEqual(userId, result.UserId);
                Assert.AreEqual("testbody", result.Body);
                Assert.AreEqual("testusername", result.UserName);

                Assert.AreEqual(entityDto.Id, result.Id);
                Assert.AreEqual(entityDto.CocktailId, result.CocktailId);
                Assert.AreEqual(entityDto.UserId, result.UserId);
                Assert.AreEqual(entityDto.Body, result.Body);
                Assert.AreEqual(entityDto.UserName, result.UserName);
            }
        }
Exemplo n.º 2
0
        public async Task ReturnCorrectTypeOfEntity()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ReturnCorrectTypeOfEntity));

            var mapperMock = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            var id         = Guid.NewGuid();
            var cocktailId = Guid.NewGuid();
            var userId     = Guid.NewGuid();

            var createdOn = DateTime.UtcNow;

            var entityDto = new CocktailCommentDto
            {
                Id         = id,
                CocktailId = cocktailId,
                UserId     = userId,
                UserName   = "******",
                Body       = "testbody",
                CreatedOn  = createdOn
            };

            var entity = new CocktailComment
            {
                Id         = id,
                CocktailId = cocktailId,
                UserId     = userId,
                Body       = "testbody",
                CreatedOn  = createdOn
            };

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

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

                await arrangeContext.SaveChangesAsync();
            }

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

                var result = await sut.EditAsync(id, "newbody");

                Assert.IsInstanceOfType(result, typeof(CocktailCommentDto));
            }
        }
Exemplo n.º 3
0
        public void Constructor_CreateCorrectInstanceOfCocktailComment()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(Constructor_CreateCorrectInstanceOfCocktailComment));
            var mockDateTimeProvider = new Mock <IDateTimeProvider>();
            var mapper = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            //Act and Assert
            using (var assertContext = new CocktailMagicianContext(options))
            {
                var sut = new CocktailCommentService(assertContext, mapper.Object, mockDateTimeProvider.Object);
                Assert.IsNotNull(sut);
            }
        }
Exemplo n.º 4
0
        public async Task ReturnNull_When_CocktailDtoIsNull()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ReturnNull_When_CocktailDtoIsNull));
            var mockDateTimeProvider = new Mock <IDateTimeProvider>();
            var mapper = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            //Act and Assert
            using (var assertContext = new CocktailMagicianContext(options))
            {
                var sut = new CocktailCommentService(assertContext, mapper.Object, mockDateTimeProvider.Object);

                await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => sut.CreateCocktailCommentAsync(null));
            }
        }
        public async Task ThrowWhen_DtoPassedIsNull()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ThrowWhen_DtoPassedIsNull));

            var mapperMock = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            mapperMock.Setup(x => x.MapFrom(It.IsAny <CocktailComment>())).Returns(It.IsAny <CocktailCommentDto>);

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new CocktailCommentService(assertContext, mapperMock.Object);
                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.CreateAsync(null));
            }
        }
Exemplo n.º 6
0
        public void CocktailCommentServiceConstructor_CreatesInstance()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(CocktailCommentServiceConstructor_CreatesInstance));

            var mapperMock = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

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

                //Assert
                Assert.IsNotNull(sut);
            }
        }
        public async Task ReturnNull_When_NoCommentsFoundInCocktail()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ReturnNull_When_NoCommentsFoundInCocktail));
            var mockDateTimeProvider = new Mock <IDateTimeProvider>();
            var mapper = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            //Act and Assert
            using (var assertContext = new CocktailMagicianContext(options))
            {
                var sut    = new CocktailCommentService(assertContext, mapper.Object, mockDateTimeProvider.Object);
                var result = await sut.GetCocktailCommentsAsync(1);

                Assert.IsNull(result);
            }
        }
Exemplo n.º 8
0
        public async Task Create_CocktailComment_Correctly()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(Create_CocktailComment_Correctly));
            var mockDateTimeProvider = new Mock <IDateTimeProvider>();
            var mapper = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            var user = new User {
                Id = 1
            };
            var cocktail = new Cocktail {
                Id = 1
            };

            var commentDto = new CocktailCommentDto
            {
                Id          = 1,
                UserId      = 1,
                CocktailId  = 1,
                commentText = "TestComment",
            };

            mapper.Setup(x => x.MapDto(It.IsAny <CocktailComment>())).Returns(commentDto);
            using (var arrangeContext = new CocktailMagicianContext(options))
            {
                await arrangeContext.Cocktails.AddAsync(cocktail);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.SaveChangesAsync();
            }
            //Act and Assert
            using (var assertContext = new CocktailMagicianContext(options))
            {
                var sut    = new CocktailCommentService(assertContext, mapper.Object, mockDateTimeProvider.Object);
                var result = await sut.CreateCocktailCommentAsync(commentDto);

                Assert.IsInstanceOfType(result, typeof(CocktailCommentDto));
                Assert.AreEqual(1, result.Id);
                Assert.AreEqual(1, result.CocktailId);
                Assert.AreEqual(1, result.UserId);
                Assert.AreEqual("TestComment", result.commentText);
            }
        }
Exemplo n.º 9
0
        public async Task CorrectlyUpdateEntity()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(CorrectlyUpdateEntity));

            var mapperMock = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            var id         = Guid.NewGuid();
            var cocktailId = Guid.NewGuid();
            var userId     = Guid.NewGuid();

            var createdOn = DateTime.UtcNow;

            var entity = new CocktailComment
            {
                Id         = id,
                CocktailId = cocktailId,
                UserId     = userId,
                Body       = "testbody",
                CreatedOn  = createdOn
            };

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

                await arrangeContext.SaveChangesAsync();
            }

            mapperMock.Setup(x => x.MapFrom(It.IsAny <CocktailComment>())).Returns(It.IsAny <CocktailCommentDto>);

            using (var assertContext = new CWContext(options))
            {
                var sut = new CocktailCommentService(assertContext, mapperMock.Object);

                var result = await sut.EditAsync(id, "newbody");

                var modifiedComment = await assertContext.CocktailComments.FirstAsync();

                Assert.AreEqual("newbody", modifiedComment.Body);
            }
        }
Exemplo n.º 10
0
        public async Task ThrowWhen_NoCommentFound()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ThrowWhen_NoCommentFound));

            var mapperMock = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            var id         = Guid.NewGuid();
            var cocktailId = Guid.NewGuid();
            var userId     = Guid.NewGuid();
            var fakeId     = Guid.NewGuid();
            var createdOn  = DateTime.UtcNow;

            var entity = new CocktailComment
            {
                Id         = id,
                CocktailId = cocktailId,
                UserId     = userId,
                Body       = "testbody",
                CreatedOn  = createdOn
            };

            mapperMock.Setup(x => x.MapFrom(It.IsAny <CocktailComment>())).Returns(It.IsAny <CocktailCommentDto>);

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

                await arrangeContext.SaveChangesAsync();
            }

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

                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.EditAsync(fakeId, "newbody"));
            }
        }
Exemplo n.º 11
0
        public async Task ReturnCorrectInstanceOfCollectionCocktailCommentDtos()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ReturnCorrectInstanceOfCollectionCocktailCommentDtos));

            var mapperMock = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            var id         = Guid.NewGuid();
            var idTwo      = Guid.NewGuid();
            var cocktailId = Guid.NewGuid();
            var userId     = Guid.NewGuid();

            var entity = new CocktailComment
            {
                Id         = id,
                CocktailId = cocktailId,
                UserId     = userId,
                Body       = "testbody",
            };

            var entityTwo = new CocktailComment
            {
                Id         = idTwo,
                CocktailId = cocktailId,
                UserId     = userId,
                Body       = "testbodytwo",
            };

            var list = new List <CocktailCommentDto>()
            {
                new CocktailCommentDto {
                    Id = id, Body = "testbody"
                },
                new CocktailCommentDto {
                    Id = idTwo, Body = "testbodytwo"
                },
            };

            mapperMock.Setup(x => x.MapFrom(It.IsAny <ICollection <CocktailComment> >())).Returns(list);

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

                await arrangeContext.CocktailComments.AddAsync(entityTwo);

                await arrangeContext.SaveChangesAsync();
            }

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

                var result = await sut.GetCocktailCommentsAsync(cocktailId);

                Assert.IsInstanceOfType(result, typeof(ICollection <CocktailCommentDto>));
                Assert.AreEqual(2, result.Count());
                Assert.AreEqual(entity.Body, result.First().Body);
                Assert.AreEqual(entity.Id, result.First().Id);
                Assert.AreEqual(entityTwo.Body, result.Last().Body);
                Assert.AreEqual(entityTwo.Id, result.Last().Id);
            }
        }
        public async Task Return_CorrectModelComment_When_ParamsAreValid()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(Return_CorrectModelComment_When_ParamsAreValid));
            var mockDateTimeProvider = new Mock <IDateTimeProvider>();
            var mapper = new Mock <IDtoMapper <CocktailComment, CocktailCommentDto> >();

            var user = new User {
                Id = 1
            };
            var cocktail = new Cocktail {
                Id = 1
            };

            var comment1 = new CocktailComment
            {
                Id          = 1,
                UserId      = 1,
                CocktailId  = 1,
                commentText = "TestComment1",
            };
            var comment2 = new CocktailComment

            {
                Id          = 2,
                UserId      = 1,
                CocktailId  = 1,
                commentText = "TestComment2",
            };
            var list = new List <CocktailCommentDto>
            {
                new CocktailCommentDto
                {
                    Id          = 1,
                    UserId      = 1,
                    CocktailId  = 1,
                    commentText = "TestComment1",
                },
                new CocktailCommentDto
                {
                    Id          = 2,
                    UserId      = 1,
                    CocktailId  = 1,
                    commentText = "TestComment2",
                }
            };

            mapper.Setup(x => x.MapDto(It.IsAny <ICollection <CocktailComment> >())).Returns(list);

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

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.CocktailComments.AddAsync(comment1);

                await arrangeContext.CocktailComments.AddAsync(comment2);

                await arrangeContext.SaveChangesAsync();
            }

            //Act and Assert
            using (var assertContext = new CocktailMagicianContext(options))
            {
                var sut    = new CocktailCommentService(assertContext, mapper.Object, mockDateTimeProvider.Object);
                var result = await sut.GetCocktailCommentsAsync(1);

                Assert.IsInstanceOfType(result, typeof(ICollection <CocktailCommentDto>));
                Assert.AreEqual(1, result.First().Id);
                Assert.AreEqual(1, result.First().UserId);
                Assert.AreEqual(1, result.First().CocktailId);
                Assert.AreEqual("TestComment1", result.First().commentText);
                Assert.AreEqual(2, result.Last().Id);
                Assert.AreEqual(1, result.Last().UserId);
                Assert.AreEqual(1, result.Last().CocktailId);
                Assert.AreEqual("TestComment2", result.Last().commentText);
            }
        }