Open Source Web Application Framework for ASP.NET Core
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

75 lines
2.5 KiB

using Shouldly;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Guids;
using Volo.CmsKit.Tags;
using Xunit;
namespace Volo.CmsKit.Blogs
{
public class BlogPostManager_Tests : CmsKitDomainTestBase
{
private readonly IBlogPostManager blogPostManager;
private readonly IGuidGenerator guidGenerator;
private readonly IBlogPostRepository blogPostRepository;
private readonly CmsKitTestData cmsKitTestData;
public BlogPostManager_Tests(
IBlogPostManager blogPostManager,
IGuidGenerator guidGenerator,
IBlogPostRepository blogPostRepository,
CmsKitTestData cmsKitTestData)
{
this.blogPostManager = blogPostManager;
this.guidGenerator = guidGenerator;
this.blogPostRepository = blogPostRepository;
this.cmsKitTestData = cmsKitTestData;
}
[Fact]
public async Task CreateAsync_ShouldWorkProperly_WithCorrectData()
{
var title = "New blog post";
var urlSlug = "new-blog-post";
var created = await blogPostManager.CreateAsync(
new BlogPost(guidGenerator.Create(), title, urlSlug));
created.Id.ShouldNotBe(Guid.Empty);
var blogPost = await blogPostRepository.GetAsync(created.Id);
blogPost.Title.ShouldBe(title);
blogPost.UrlSlug.ShouldBe(urlSlug);
}
[Fact]
public async Task CreateAsync_ShouldThrowException_WhenUrlSlugAlreadyExists()
{
var blogPost = new BlogPost(guidGenerator.Create(), "Any New Title", cmsKitTestData.Blog_1_UrlSlug);
await Should.ThrowAsync<BlogPostUrlSlugAlreadyExistException>(async () =>
await blogPostManager.CreateAsync(blogPost));
}
[Fact]
public async Task UpdateAsync_ShoudlWorkProperly_WithCorrectData()
{
var newTitle = "Yet Another Post";
var newUrlSlug = "yet-another-post";
var blogPost = await blogPostRepository.GetAsync(cmsKitTestData.Blog_1_Id);
blogPost.SetTitle(newTitle);
blogPost.SetUrlSlug(newUrlSlug);
await blogPostManager.UpdateAsync(blogPost);
var updated = await blogPostRepository.GetAsync(cmsKitTestData.Blog_1_Id);
updated.Title.ShouldBe(newTitle);
updated.UrlSlug.ShouldBe(newUrlSlug);
}
}
}