Browse Source

add tests

pull/12073/head
Musa Demir 4 years ago
parent
commit
39239d7c5e
No known key found for this signature in database GPG Key ID: 117DF92322553DC8
  1. 82
      modules/cms-kit/test/Volo.CmsKit.Application.Tests/Blogs/BlogPostAdminAppService_Tests.cs
  2. 61
      modules/cms-kit/test/Volo.CmsKit.Application.Tests/Blogs/BlogPostPublicAppService_Tests.cs
  3. 121
      modules/cms-kit/test/Volo.CmsKit.TestBase/Blogs/BlogPostRepository_Test.cs

82
modules/cms-kit/test/Volo.CmsKit.Application.Tests/Blogs/BlogPostAdminAppService_Tests.cs

@ -156,4 +156,86 @@ public class BlogPostAdminAppService_Tests : CmsKitApplicationTestBase
exception.EntityType.ShouldBe(typeof(BlogPost));
exception.Id.ShouldBe(cmsKitTestData.Page_2_Id);
}
[Fact]
public async Task PublishAsync_ShouldWorkProperly()
{
var newPost = await CreateBlogPost();
newPost.Status.ShouldBe(BlogPostStatus.Draft);
await blogPostAdminAppService.PublishAsync(newPost.Id);
var post = await blogPostAdminAppService.GetAsync(newPost.Id);
post.Status.ShouldBe(BlogPostStatus.Published);
}
[Fact]
public async Task DraftAsync_ShouldWorkProperly()
{
var newPost = await CreateBlogPost();
newPost.Status.ShouldBe(BlogPostStatus.Draft);
await blogPostAdminAppService.PublishAsync(newPost.Id);
var post = await blogPostAdminAppService.GetAsync(newPost.Id);
post.Status.ShouldBe(BlogPostStatus.Published);
await blogPostAdminAppService.DraftAsync(newPost.Id);
post = await blogPostAdminAppService.GetAsync(newPost.Id);
post.Status.ShouldBe(BlogPostStatus.Draft);
}
[Fact]
public async Task CreateAndPublishAsync_ShouldWorkProperly()
{
var title = "My awesome new Post";
var slug = "my-awesome-new-post";
var shortDescription = "This blog is all about awesomeness 🤗!";
var content = "Another blog post shared on internet";
var created = await blogPostAdminAppService.CreateAndPublishAsync(new CreateBlogPostDto
{
BlogId = cmsKitTestData.Blog_Id,
Title = title,
Slug = slug,
ShortDescription = shortDescription,
Content = content
});
created.Id.ShouldNotBe(Guid.Empty);
created.Status.ShouldBe(BlogPostStatus.Published);
var blogPost = await blogPostRepository.GetAsync(created.Id);
blogPost.Title.ShouldBe(title);
blogPost.Slug.ShouldBe(slug);
blogPost.ShortDescription.ShouldBe(shortDescription);
blogPost.Content.ShouldBe(content);
blogPost.Status.ShouldBe(BlogPostStatus.Published);
}
private async Task<BlogPostDto> CreateBlogPost()
{
var title = "My awesome new Post";
var slug = "my-awesome-new-post";
var shortDescription = "This blog is all about awesomeness 🤗!";
var content = "Another blog post shared on internet";
var created = await blogPostAdminAppService.CreateAsync(new CreateBlogPostDto
{
BlogId = cmsKitTestData.Blog_Id,
Title = title,
Slug = slug,
ShortDescription = shortDescription,
Content = content
});
created.Id.ShouldNotBe(Guid.Empty);
var blogPost = await blogPostRepository.GetAsync(created.Id);
blogPost.Title.ShouldBe(title);
blogPost.Slug.ShouldBe(slug);
blogPost.ShortDescription.ShouldBe(shortDescription);
blogPost.Content.ShouldBe(content);
return created;
}
}

61
modules/cms-kit/test/Volo.CmsKit.Application.Tests/Blogs/BlogPostPublicAppService_Tests.cs

@ -85,6 +85,7 @@ public class BlogPostPublicAppService_Tests : CmsKitApplicationTestBase
blog,
cmsKitTestData.BlogPost_1_Title + "by user2",
cmsKitTestData.BlogPost_1_Slug + "by user2",
BlogPostStatus.Published,
"Short desc 1",
"Blog Post 1 Content"
);
@ -118,4 +119,64 @@ public class BlogPostPublicAppService_Tests : CmsKitApplicationTestBase
blogPosts.Items.ShouldNotBeEmpty();
blogPosts.Items.Count.ShouldBe(2);
}
[Fact]
public async Task GetListAsync_ShouldNotGet_UnPublishedItems()
{
var user2 = await userRepository.GetAsync(cmsKitTestData.User2Id);
var blog = await blogRepository.GetAsync(cmsKitTestData.Blog_Id);
var draftBlogPost1 = await blogPostManager.CreateAsync(
user2,
blog,
cmsKitTestData.BlogPost_1_Title + "draft1",
cmsKitTestData.BlogPost_1_Slug + "draft1",
BlogPostStatus.Draft,
"Short desc 1",
"Blog Post 1 Content"
);
var draftBlogPost2 = await blogPostManager.CreateAsync(
user2,
blog,
cmsKitTestData.BlogPost_1_Title + "draft2",
cmsKitTestData.BlogPost_1_Slug + "draft2",
BlogPostStatus.Draft,
"Short desc 1",
"Blog Post 1 Content"
);
var publishedBlogPost1 = await blogPostManager.CreateAsync(
user2,
blog,
cmsKitTestData.BlogPost_1_Title + "published1",
cmsKitTestData.BlogPost_1_Slug + "published1",
BlogPostStatus.Published,
"Short desc 1",
"Blog Post 1 Content"
);
await blogPostRepository.InsertAsync(draftBlogPost1);
await blogPostRepository.InsertAsync(draftBlogPost2);
await blogPostRepository.InsertAsync(publishedBlogPost1);
//should get all not filtered by user
var blogPosts = await blogPostAppService.GetListAsync(cmsKitTestData.BlogSlug,
new BlogPostGetListInput {});
blogPosts.ShouldNotBeNull();
blogPosts.TotalCount.ShouldBe(3);
blogPosts.Items.ShouldNotBeEmpty();
blogPosts.Items.Count.ShouldBe(3);
blogPosts.Items.Any(x => x.Id == draftBlogPost1.Id).ShouldBeFalse();
blogPosts.Items.Any(x => x.Id == draftBlogPost2.Id).ShouldBeFalse();
blogPosts.Items.Any(x => x.Id == publishedBlogPost1.Id).ShouldBeTrue();
var allItemsFromRepository = await blogPostRepository.GetListAsync();
allItemsFromRepository.ShouldNotBeNull();
allItemsFromRepository.Count.ShouldBe(5);//3 new added 2 already existing
allItemsFromRepository.Any(x => x.Id == draftBlogPost1.Id).ShouldBeTrue();
allItemsFromRepository.Any(x => x.Id == draftBlogPost2.Id).ShouldBeTrue();
allItemsFromRepository.Any(x => x.Id == publishedBlogPost1.Id).ShouldBeTrue();
}
}

121
modules/cms-kit/test/Volo.CmsKit.TestBase/Blogs/BlogPostRepository_Test.cs

@ -6,6 +6,7 @@ using System.Text;
using System.Threading.Tasks;
using Volo.Abp.Domain.Entities;
using Volo.Abp.Modularity;
using Volo.CmsKit.Users;
using Xunit;
namespace Volo.CmsKit.Blogs;
@ -15,11 +16,16 @@ public abstract class BlogPostRepository_Test<TStartupModule> : CmsKitTestBase<T
{
private readonly CmsKitTestData testData;
private readonly IBlogPostRepository blogPostRepository;
private readonly BlogPostManager blogPostManager;
private readonly ICmsUserRepository userRepository;
private readonly IBlogRepository blogRepository;
public BlogPostRepository_Test()
{
testData = GetRequiredService<CmsKitTestData>();
blogPostRepository = GetRequiredService<IBlogPostRepository>();
blogPostManager = GetRequiredService<BlogPostManager>();
userRepository = GetRequiredService<ICmsUserRepository>();
blogRepository = GetRequiredService<IBlogRepository>();
}
[Fact]
@ -155,4 +161,117 @@ public abstract class BlogPostRepository_Test<TStartupModule> : CmsKitTestBase<T
authors.ShouldNotBeEmpty();
authors.ShouldContain(x => x.Id == testData.User1Id);
}
[Fact]
public async Task ShouldCreateItem_WithDraftStatus()
{
var user2 = await userRepository.GetAsync(testData.User2Id);
var blog = await blogRepository.GetAsync(testData.Blog_Id);
var draftPost = await blogPostManager.CreateAsync(
user2,
blog,
testData.BlogPost_1_Title + "draft",
testData.BlogPost_1_Slug + "draft",
BlogPostStatus.Draft,
"Short desc 1",
"Blog Post 1 Content"
);
await blogPostRepository.InsertAsync(draftPost);
var draftPostFromDb = await blogPostRepository.GetAsync(draftPost.Id);
draftPostFromDb.Title.ShouldBe(draftPost.Title);
draftPostFromDb.Slug.ShouldBe(draftPost.Slug);
draftPostFromDb.ShortDescription.ShouldBe(draftPost.ShortDescription);
draftPostFromDb.Content.ShouldBe(draftPost.Content);
draftPostFromDb.Status.ShouldBe(BlogPostStatus.Draft);
}
[Fact]
public async Task ShouldCreateItem_WithPublishedStatus()
{
var user2 = await userRepository.GetAsync(testData.User2Id);
var blog = await blogRepository.GetAsync(testData.Blog_Id);
var publishedPost = await blogPostManager.CreateAsync(
user2,
blog,
testData.BlogPost_1_Title + "published",
testData.BlogPost_1_Slug + "published",
BlogPostStatus.Published,
"Short desc 1",
"Blog Post 1 Content"
);
await blogPostRepository.InsertAsync(publishedPost);
var publishedPostFromDb = await blogPostRepository.GetAsync(publishedPost.Id);
publishedPostFromDb.Title.ShouldBe(publishedPost.Title);
publishedPostFromDb.Slug.ShouldBe(publishedPost.Slug);
publishedPostFromDb.ShortDescription.ShouldBe(publishedPost.ShortDescription);
publishedPostFromDb.Content.ShouldBe(publishedPost.Content);
publishedPostFromDb.Status.ShouldBe(BlogPostStatus.Published);
}
[Fact]
public async Task GetListAsync_ShouldFilter_ByStatus()
{
var user2 = await userRepository.GetAsync(testData.User2Id);
var blog = await blogRepository.GetAsync(testData.Blog_Id);
var draftPost = await blogPostManager.CreateAsync(
user2,
blog,
testData.BlogPost_1_Title + "draft",
testData.BlogPost_1_Slug + "draft",
BlogPostStatus.Draft,
"Short desc 1",
"Blog Post 1 Content"
);
var publishedPost = await blogPostManager.CreateAsync(
user2,
blog,
testData.BlogPost_1_Title + "published",
testData.BlogPost_1_Slug + "published",
BlogPostStatus.Published,
"Short desc 1",
"Blog Post 1 Content"
);
await blogPostRepository.InsertAsync(draftPost);
await blogPostRepository.InsertAsync(publishedPost);
var draftPostFromDb = await blogPostRepository.GetAsync(draftPost.Id);
draftPostFromDb.Title.ShouldBe(draftPost.Title);
draftPostFromDb.Slug.ShouldBe(draftPost.Slug);
draftPostFromDb.ShortDescription.ShouldBe(draftPost.ShortDescription);
draftPostFromDb.Content.ShouldBe(draftPost.Content);
draftPostFromDb.Status.ShouldBe(BlogPostStatus.Draft);
var publishedPostFromDb = await blogPostRepository.GetAsync(publishedPost.Id);
publishedPostFromDb.Title.ShouldBe(publishedPost.Title);
publishedPostFromDb.Slug.ShouldBe(publishedPost.Slug);
publishedPostFromDb.ShortDescription.ShouldBe(publishedPost.ShortDescription);
publishedPostFromDb.Content.ShouldBe(publishedPost.Content);
publishedPostFromDb.Status.ShouldBe(BlogPostStatus.Published);
var draftPosts = await blogPostRepository.GetListAsync(null, statusFilter: BlogPostStatus.Draft);
draftPosts.ShouldNotBeNull();
draftPosts.Count.ShouldBe(1);
draftPosts.Any(x => x.Id == draftPost.Id).ShouldBeTrue();
draftPosts.Any(x => x.Id == publishedPost.Id).ShouldBeFalse();
var publishedPosts = await blogPostRepository.GetListAsync(null, statusFilter: BlogPostStatus.Published);
publishedPosts.ShouldNotBeNull();
publishedPosts.Count.ShouldBe(3);//1 new added 2 already existing
publishedPosts.Any(x => x.Id == draftPost.Id).ShouldBeFalse();
publishedPosts.Any(x => x.Id == publishedPost.Id).ShouldBeTrue();
}
}

Loading…
Cancel
Save