Esempio n. 1
0
        public async Task GivenArticleIsFavourited_ShouldUnfavouriteArticle()
        {
            // Arrange
            var user    = new UserProfile(Guid.NewGuid().ToString(), "*****@*****.**", "username");
            var article = new Article("test title", "test", "test", new DateTime(1111, 1, 1), user);

            user.FavouriteArticle(article);

            Context.Add(user);
            await Context.SaveChangesAsync();

            var currentUser = Mock.Of <ICurrentUserService>(s => s.UserId == user.Id);

            var command = new UnfavoriteArticleCommand {
                Slug = article.Slug
            };

            var sut = new UnfavoriteArticleCommand.Handler(Context, currentUser);

            // Act
            await sut.Handle(command, CancellationToken.None);

            var existingFavouritedArticle = await Context.FavouritedArticles
                                            .SingleOrDefaultAsync();

            // Assert
            existingFavouritedArticle.Should().BeNull();
        }
Esempio n. 2
0
        public async Task GivenArticleIsNotFavourited_ShouldThrowEntityNotFoundException()
        {
            // Arrange
            var currentUserMock = new Mock <ICurrentUserService>();

            var command = new UnfavoriteArticleCommand()
            {
                Slug = "some slug"
            };

            var sut = new UnfavoriteArticleCommand.Handler(Context, currentUserMock.Object);

            // Act
            var action = new Func <Task <Unit> >(() => sut.Handle(command, CancellationToken.None));

            // Assert
            await action.Should().ThrowAsync <EntityNotFoundException <FavouritedArticle> >();
        }