示例#1
0
        public async Task UpdateBlogPostCommandHandler_UpdatesBlog()
        {
            var category = new Category("Hello test category", 1, "Test description");

            using (var context = TestContext.CreateNewContext())
            {
                context.Categories.Add(category);
                await context.SaveChangesAsync();
            }
            var blogPost = RequestDbContext.BlogPosts.AsNoTracking().First();
            var message  = new UpdateBlogPostCommand()
            {
                Id           = blogPost.Id,
                Subject      = "Test new",
                ContentIntro = "Test",
                Content      = "Test",
                CategoryId   = category.Id
            };
            var builder        = new ExistingBlogPostBuilder(null);
            var handlerContext = TestContext.CreateHandlerContext <BlogPostSummaryViewModel>(RequestDbContext, CreateMapper());
            var handler        = new UpdateBlogPostCommandHandler(handlerContext, builder);

            var result = await handler.Handle(message, CancellationToken.None);

            Assert.Equal("Test new", result.Subject);
            Assert.Equal(category.Name, result.Category);
        }
示例#2
0
        public async Task UpdateBlogPostCommandHandler_WithFile_UpdatesBlog()
        {
            var imageFactory   = TestContext.CreateImageService();
            var builder        = new ExistingBlogPostBuilder(imageFactory);
            var handlerContext = TestContext.CreateHandlerContext <BlogPostSummaryViewModel>(RequestDbContext, CreateMapper());
            var handler        = new UpdateBlogPostCommandHandler(handlerContext, builder);
            var fileMock       = TestContext.CreateFileMock();
            var file           = fileMock.Object;
            var category       = new Category("Hello test category", 1, "Test description");

            using (var context = TestContext.CreateNewContext())
            {
                context.Categories.Add(category);
                await context.SaveChangesAsync();
            }

            var blogPost = RequestDbContext.BlogPosts.AsNoTracking().First();
            var message  = new UpdateBlogPostCommand()
            {
                Id           = blogPost.Id,
                Subject      = "Test new",
                ContentIntro = "Test",
                Content      = "Test",
                File         = file,
                CategoryId   = category.Id
            };

            var result = await handler.Handle(message, CancellationToken.None);

            Assert.NotNull(result.Image.UriPath);
        }
        public async Task BlogPostBuilder_DoesNotUpdatesBlogWithEqualMetaTag()
        {
            var blogPostContent = new BlogPostContent("", "", "");
            var author          = await Author.Create(new User(""), new AuthorProfile("", "", ""), Mock.Of <IAuthorValidator>());

            var category = new Category("", 1, "");
            var blogPost = new BlogPost(blogPostContent, author, category);

            blogPost.MetaTags.Add(new MetaTag("description", "test description"));
            var builder = new ExistingBlogPostBuilder(Mock.Of <IImageService>());
            var tags    = new[]
            {
                new MetaTag("description", "test description")
            };
            await builder.UseBlogPost(blogPost).WithMetaTags(tags).Build();

            Assert.Single(blogPost.MetaTags);
        }
示例#4
0
 public UpdateBlogPostCommandHandler(HandlerContext <BlogPostSummaryViewModel> context, ExistingBlogPostBuilder builder)
 {
     _dbContext = context.DbContext;
     _context   = context;
     _builder   = builder;
 }