Пример #1
0
        public void MapFrom_Should_ReturnCorrectInstanceOf_BarDto()
        {
            //Arrange
            var sut = new BarCommentDtoMapper();

            var barComment = new BarComment
            {
                Bar = new Bar
                {
                    Id            = Guid.NewGuid(),
                    Name          = "testBar",
                    Info          = "testInfo",
                    ImagePath     = "testPath",
                    Address       = "testAddress",
                    GoogleMapsURL = "GoogleMapsURL",
                    Phone         = "111-333-666"
                },
                User = new User
                {
                    Id       = Guid.NewGuid(),
                    UserName = "******",
                    Email    = "*****@*****.**"
                },
                Body      = "testBody",
                CreatedOn = DateTime.MinValue,
            };

            //Act
            var result = sut.MapFrom(barComment);

            //Assert
            Assert.IsInstanceOfType(result, typeof(BarCommentDto));
        }
Пример #2
0
        public void ReturnCorrectInstance_OfType_BarCommentDto()
        {
            //Arrange
            var sut = new BarCommentDtoMapper();
            var bar = new Bar
            {
                Id   = 1,
                Name = "TestBar",
                Info = "TestInfo",
            };
            var user = new User
            {
                Id       = 1,
                UserName = "******",
                Email    = "*****@*****.**",
            };
            var barComment = new BarComment
            {
                BarId     = 1,
                UserId    = 1,
                Text      = "TestComment",
                Author    = user,
                CreatedOn = DateTime.MinValue,
            };

            //Act
            var result = sut.MapDto(barComment);

            //Assert
            Assert.IsInstanceOfType(result, typeof(BarCommentDto));
        }
Пример #3
0
        public void Correctly_Map_FromBarComment_ToBarCommentDto()
        {
            //Arrange
            var sut = new BarCommentDtoMapper();
            var bar = new Bar
            {
                Id   = 1,
                Name = "TestBar",
                Info = "TestInfo",
            };
            var user = new User
            {
                Id       = 1,
                UserName = "******",
                Email    = "*****@*****.**",
            };
            var barComment = new BarComment
            {
                BarId     = 1,
                UserId    = 1,
                Text      = "TestComment",
                Author    = user,
                CreatedOn = DateTime.MinValue,
            };

            //Act
            var result = sut.MapDto(barComment);

            //Assert
            Assert.AreEqual(result.BarId, barComment.BarId);
            Assert.AreEqual(result.UserId, barComment.UserId);
            Assert.AreEqual(result.Text, barComment.Text);
            Assert.AreEqual(result.CreatedOn, barComment.CreatedOn);
        }
Пример #4
0
        public async Task EditComment_Throws_When_NoCommentFound()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(EditComment_Throws_When_NoCommentFound));

            var user = new User {
                Id = Guid.NewGuid(), UserName = "******"
            };
            var bar = new Bar {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var barComment = new BarComment {
                BarId = bar.Id, UserId = user.Id, Comments = "My favorite"
            };
            var commentId = Guid.NewGuid();

            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.BarComments.AddAsync(barComment);

                await arrangeContext.SaveChangesAsync();
            }

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

                await Assert.ThrowsExceptionAsync <ArgumentNullException>(() => sut.EditComment(commentId, "Changes made"));
            }
        }
Пример #5
0
        public async Task AddBarCommentAsync(int id, string createComment, int userId)
        {
            if (await dbContext.BarComment.AnyAsync(p => (p.UserId == userId && p.BarId == id)))
            {
                var givenComment = await dbContext.BarComment.FirstOrDefaultAsync(p => (p.UserId == userId && p.BarId == id));

                givenComment.Comment   = createComment;
                givenComment.CreatedOn = DateTime.Now;
                await dbContext.SaveChangesAsync();
            }
            else
            {
                var user = await FindUserByIdAsync(userId);

                var bar = await barService.FindBarByIdAsync(id);

                var barComment = new BarComment()
                {
                    User         = user,
                    Bar          = bar,
                    UserUserName = user.UserName,
                    BarName      = bar.Name,
                    Comment      = createComment,
                    CreatedOn    = DateTime.Now
                };
                await dbContext.BarComment.AddAsync(barComment);

                await dbContext.SaveChangesAsync();
            }
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
            }
        }
Пример #9
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));
            }
        }
Пример #10
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);
            }
        }
        public async Task GetAllCommentsForBar_Returns_Correct_WhenParam_IsValid()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(GetAllCommentsForBar_Returns_Correct_WhenParam_IsValid));

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

            var bar = new Bar {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var barComment = new BarComment {
                BarId = bar.Id, UserId = user.Id
            };
            var barComment2 = new BarComment {
                BarId = bar.Id, UserId = user2.Id
            };


            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar);

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

                await arrangeContext.BarComments.AddRangeAsync(barComment, barComment2);

                await arrangeContext.SaveChangesAsync();
            }

            //Act, Assert
            using (var assertContext = new CMContext(options))
            {
                var sut    = new BarCommentsServices(assertContext);
                var result = await sut.GetAllCommentsForBar(bar.Id, "Manhattan");

                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 <BarCommentDTO>));
            }
        }
        public async Task GetAllCommentsOfUser_ShouldReturn_Correct()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(GetAllCommentsOfUser_ShouldReturn_Correct));

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

            var bar = new Bar {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var bar2 = new Bar {
                Id = Guid.NewGuid(), Name = "Cosmos"
            };
            var comment = new BarComment {
                BarId = bar.Id, UserId = user.Id
            };
            var comment2 = new BarComment {
                BarId = bar2.Id, UserId = user.Id, IsDeleted = true
            };

            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Bars.AddRangeAsync(bar, bar2);

                await arrangeContext.Users.AddAsync(user);

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

                await arrangeContext.SaveChangesAsync();
            }

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

                Assert.AreEqual(1, result.Count);
                Assert.IsInstanceOfType(result, typeof(ICollection <BarCommentDTO>));
            }
        }
        public async Task GetAllCommentsForBar_Returns_OnlyExistingEntities()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(GetAllCommentsForBar_Returns_OnlyExistingEntities));

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

            var bar = new Bar {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var barComment = new BarComment {
                BarId = bar.Id, UserId = user.Id
            };
            var barComment2 = new BarComment {
                BarId = bar.Id, UserId = user2.Id, IsDeleted = true
            };


            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar);

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

                await arrangeContext.BarComments.AddRangeAsync(barComment, barComment2);

                await arrangeContext.SaveChangesAsync();
            }

            //Act, Assert
            using (var assertContext = new CMContext(options))
            {
                var sut    = new BarCommentsServices(assertContext);
                var result = await sut.GetAllCommentsForBar(bar.Id, "Manhattan");

                Assert.AreEqual(1, result.Count());
            }
        }
Пример #14
0
        public static BarCommentDTO GetDTO(this BarComment item)
        {
            if (item == null)
            {
                throw new ArgumentNullException();
            }

            return(new BarCommentDTO
            {
                BarId = item.BarId,
                UserId = item.UserId,
                User = item.User,
                IsDeleted = item.IsDeleted,
                Comments = item.Comments,
                CreatedOn = item.CreatedOn,
                DeletedOn = item.DeletedOn,
                ModifiedOn = item.ModifiedOn,
            });
        }
Пример #15
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);
            }
        }
Пример #16
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"));
            }
        }
        public async Task DeleteComment_ShouldDelete_Correct()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(DeleteComment_ShouldDelete_Correct));

            var user = new User {
                Id = Guid.NewGuid(), UserName = "******"
            };
            var bar = new Bar {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var barComment = new BarComment {
                BarId = bar.Id, UserId = user.Id
            };

            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.BarComments.AddAsync(barComment);

                await arrangeContext.SaveChangesAsync();
            }

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

                Assert.AreEqual(true, result.IsDeleted);
                Assert.AreEqual(user.Id, result.UserId);
                Assert.AreEqual(bar.Id, result.BarId);
                Assert.IsInstanceOfType(result, typeof(BarCommentDTO));
            }
        }
Пример #18
0
        public void MapFrom_Should_CorrectlyMapFrom_Bar_To_BarCommentDto()
        {
            //Arrange
            var sut = new BarCommentDtoMapper();

            var barComment = new BarComment
            {
                Bar = new Bar
                {
                    Id            = Guid.NewGuid(),
                    Name          = "testBar",
                    Info          = "testInfo",
                    ImagePath     = "testPath",
                    Address       = "testAddress",
                    GoogleMapsURL = "GoogleMapsURL",
                    Phone         = "111-333-666"
                },
                User = new User
                {
                    Id       = Guid.NewGuid(),
                    UserName = "******",
                    Email    = "*****@*****.**"
                },
                Body      = "testBody",
                CreatedOn = DateTime.MinValue,
            };

            //Act
            var result = sut.MapFrom(barComment);

            //Assert
            Assert.AreEqual(result.BarId, barComment.BarId);
            Assert.AreEqual(result.UserId, barComment.UserId);
            //Assert.AreEqual(result.UserName, barComment.User.Email.Split('@')[0]);
            Assert.AreEqual(result.Body, barComment.Body);
            Assert.AreEqual(result.CreatedOn, barComment.CreatedOn);
        }
Пример #19
0
        public async Task EditComment_Updates_Correctly()
        {
            //Arrange
            var options = Utils.GetOptions(nameof(EditComment_Updates_Correctly));

            var user = new User {
                Id = Guid.NewGuid(), UserName = "******"
            };
            var bar = new Bar {
                Id = Guid.NewGuid(), Name = "Manhattan"
            };
            var barComment = new BarComment {
                BarId = bar.Id, UserId = user.Id, Comments = "Good one"
            };

            using (var arrangeContext = new CMContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.BarComments.AddAsync(barComment);

                await arrangeContext.SaveChangesAsync();
            }

            //Act, Assert
            using (var assertContext = new CMContext(options))
            {
                var sut    = new BarCommentsServices(assertContext);
                var result = await sut.EditComment(barComment.Id, "Changes made");

                Assert.AreEqual("Changes made", result.Comments);
                Assert.IsInstanceOfType(result, typeof(BarCommentDTO));
            }
        }
Пример #20
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);
            }
        }
        public async Task Return_CorrectModel_When_ParamsAreValid()
        {
            //Arrange
            var options = TestUtilities.GetOptions(nameof(Return_CorrectModel_When_ParamsAreValid));
            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 comment1 = new BarComment
            {
                Id     = 1,
                UserId = 1,
                BarId  = 1,
                Text   = "TestComment1",
            };
            var comment2 = new BarComment
            {
                Id     = 2,
                UserId = 1,
                BarId  = 1,
                Text   = "TestComment2",
            };
            var list = new List <BarCommentDto>
            {
                new BarCommentDto
                {
                    Id     = 1,
                    UserId = 1,
                    BarId  = 1,
                    Text   = "TestComment1",
                },
                new BarCommentDto
                {
                    Id     = 2,
                    UserId = 1,
                    BarId  = 1,
                    Text   = "TestComment2",
                }
            };

            mockBarCommentDtoMapper.Setup(x => x.MapDto(It.IsAny <ICollection <BarComment> >())).Returns(list);

            using (var arrangeContext = new CocktailMagicianContext(options))
            {
                await arrangeContext.Bars.AddAsync(bar);

                await arrangeContext.Users.AddAsync(user);

                await arrangeContext.BarComments.AddAsync(comment1);

                await arrangeContext.BarComments.AddAsync(comment2);

                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.GetBarCommentsAsync(1);

                Assert.IsInstanceOfType(result, typeof(ICollection <BarCommentDto>));
                Assert.AreEqual(1, result.First().Id);
                Assert.AreEqual(1, result.First().UserId);
                Assert.AreEqual(1, result.First().BarId);
                Assert.AreEqual("TestComment1", result.First().Text);
                Assert.AreEqual(2, result.Last().Id);
                Assert.AreEqual(1, result.Last().UserId);
                Assert.AreEqual(1, result.Last().BarId);
                Assert.AreEqual("TestComment2", result.Last().Text);
            }
        }
        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);
            }
        }