コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        public async Task ReturnCorrectBarCommentWhen_ParamsAreValid()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ReturnCorrectBarCommentWhen_ParamsAreValid));

            var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >();

            var id        = Guid.NewGuid();
            var barId     = Guid.NewGuid();
            var createdOn = DateTime.UtcNow;

            var entity = new BarComment
            {
                Id        = id,
                BarId     = barId,
                UserId    = Guid.NewGuid(),
                Body      = "testbody",
                CreatedOn = createdOn
            };

            //var entityDto = new BarCommentDto
            //{
            //    Id = id,
            //    BarId = barId,
            //    UserId = Guid.NewGuid(),
            //    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.GetBarCommentAsync(barId);

                //Assert.IsInstanceOfType(result, typeof(BarComment));
                //Assert.AreEqual("testbody", result.Body);
            }
        }
コード例 #4
0
        public async Task ThrowWhen_DtoPassedIsNull()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(CorrectlyCreateBarComment));

            var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >();

            mapperMock.Setup(x => x.MapFrom(It.IsAny <BarComment>())).Returns(It.IsAny <BarCommentDto>);

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new BarCommentService(assertContext, mapperMock.Object);
                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.CreateAsync(null));
            }
        }
コード例 #5
0
        public void BarCommentServiceConstructor_CreatesInstance()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(BarCommentServiceConstructor_CreatesInstance));

            var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >();

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

                //Assert
                Assert.IsNotNull(sut);
            }
        }
コード例 #6
0
        public async Task ThrowWhen_NoCommentFound()
        {
            // Arrange
            var options = TestUtilities.GetOptions(nameof(ThrowWhen_NoCommentFound));

            var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >();

            var id    = Guid.NewGuid();
            var barId = Guid.NewGuid();

            using (var assertContext = new CWContext(options))
            {
                //Act & Assert
                var sut = new BarCommentService(assertContext, mapperMock.Object);
                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.DeleteAsync(id, barId));
            }
        }
コード例 #7
0
        public async Task CorrectlyUpdateEntity()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(CorrectlyUpdateEntity));

            var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >();

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

            var createdOn = DateTime.UtcNow;

            var entity = new BarComment
            {
                Id        = id,
                BarId     = barId,
                UserId    = userId,
                Body      = "testbody",
                CreatedOn = createdOn
            };

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

                await arrangeContext.SaveChangesAsync();
            }

            mapperMock.Setup(x => x.MapFrom(It.IsAny <BarComment>())).Returns(It.IsAny <BarCommentDto>);

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

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

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

                Assert.AreEqual("newbody", modifiedComment.Body);
            }
        }
コード例 #8
0
        public async Task ThrowWhen_NoCommentFound()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ThrowWhen_NoCommentFound));

            var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >();

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

            var fakeId = Guid.NewGuid();

            var createdOn = DateTime.UtcNow;

            var entity = new BarComment
            {
                Id        = id,
                BarId     = barId,
                UserId    = userId,
                Body      = "testbody",
                CreatedOn = createdOn
            };

            mapperMock.Setup(x => x.MapFrom(It.IsAny <BarComment>())).Returns(It.IsAny <BarCommentDto>);

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

                await Assert.ThrowsExceptionAsync <BusinessLogicException>(() => sut.EditAsync(fakeId, "newbody"));
            }
        }
コード例 #9
0
        public async Task CorrectlyDeleteBarComment()
        {
            // Arrange
            var options = TestUtilities.GetOptions(nameof(CorrectlyDeleteBarComment));

            var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >();

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

            var bar = new Bar
            {
                Id   = barId,
                Name = "testname"
            };

            var user = new User
            {
                Id       = userId,
                UserName = "******",
            };

            var entity = new BarComment
            {
                Id        = id,
                BarId     = barId,
                Bar       = bar,
                UserId    = Guid.NewGuid(),
                User      = user,
                Body      = "testbody",
                CreatedOn = createdOn
            };

            bar.Comments.Add(entity);
            user.BarComments.Add(entity);

            using (var actContext = new CWContext(options))
            {
                //Act
                await actContext.Bars.AddAsync(bar);

                await actContext.Users.AddAsync(user);

                await actContext.BarComments.AddAsync(entity);

                await actContext.SaveChangesAsync();

                var service = new BarCommentService(actContext, mapperMock.Object);
                var result  = await service.DeleteAsync(id, barId);

                await actContext.SaveChangesAsync();
            }

            using (var assertContext = new CWContext(options))
            {
                //Assert
                var result = await assertContext.BarComments.FirstAsync();

                Assert.AreEqual(true, result.IsDeleted);
            }
        }
コード例 #10
0
        public async Task ReturnInstanceOfCollectionBarCommentDtos()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(ReturnInstanceOfCollectionBarCommentDtos));

            var mapperMock = new Mock <IDtoMapper <BarComment, BarCommentDto> >();

            var id    = Guid.NewGuid();
            var twoId = Guid.NewGuid();
            var barId = Guid.NewGuid();

            var entity = new BarComment
            {
                Id     = id,
                BarId  = barId,
                UserId = Guid.NewGuid(),
                Body   = "testbody",
            };

            var entityTwo = new BarComment
            {
                Id     = twoId,
                BarId  = barId,
                UserId = Guid.NewGuid(),
                Body   = "testbodytwo",
            };

            var list = new List <BarCommentDto>()
            {
                new BarCommentDto {
                    Id = id, BarId = barId, Body = "testbody"
                },
                new BarCommentDto {
                    Id = twoId, BarId = barId, Body = "testbodytwo"
                },
            };

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

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

                await arrangeContext.BarComments.AddAsync(entityTwo);

                await arrangeContext.SaveChangesAsync();
            }

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

                var result = await sut.GetBarCommentsAsync(barId);

                Assert.IsInstanceOfType(result, typeof(ICollection <BarCommentDto>));
                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);
            }
        }