mirror of https://github.com/abpframework/abp
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.
107 lines
3.5 KiB
107 lines
3.5 KiB
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Shouldly;
|
|
using Volo.Blogging.Blogs;
|
|
using Volo.Blogging.Pages.Blogs.Shared.Helpers;
|
|
using Volo.Blogging.Admin.Blogs;
|
|
using Xunit;
|
|
|
|
namespace Volo.Blogging
|
|
{
|
|
public class BlogAppService_Tests : BloggingApplicationTestBase
|
|
{
|
|
private readonly IBlogAppService _blogAppService;
|
|
private readonly IBlogManagementAppService _blogManagementAppService;
|
|
private readonly IBlogRepository _blogRepository;
|
|
|
|
public BlogAppService_Tests()
|
|
{
|
|
_blogAppService = GetRequiredService<IBlogAppService>();
|
|
_blogManagementAppService = GetRequiredService<IBlogManagementAppService>();
|
|
_blogRepository = GetRequiredService<IBlogRepository>();
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Should_Get_List_Of_Blogs()
|
|
{
|
|
var blogs = await _blogAppService.GetListAsync();
|
|
|
|
blogs.Items.Count.ShouldBeGreaterThan(0);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Should_Get_Blog_By_Shortname()
|
|
{
|
|
var targetBlog = (await _blogAppService.GetListAsync()).Items.First();
|
|
|
|
var blog = await _blogAppService.GetByShortNameAsync(targetBlog.ShortName);
|
|
|
|
blog.ShouldNotBeNull();
|
|
blog.Name.ShouldBe(targetBlog.Name);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("favicon.ICO")]
|
|
[InlineData("favicon.ico")]
|
|
[InlineData("wp-login.php")]
|
|
[InlineData("wp-login.PHP")]
|
|
[InlineData("robots.txt")]
|
|
public void Should_Return_True_For_FileExtension_Shortname(string blogShortName)
|
|
{
|
|
BlogNameControlHelper.IsProhibitedFileFormatName(blogShortName).ShouldBe(true);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("test-post")]
|
|
[InlineData("Test.Module")]
|
|
public void Should_Return_False_For_Normal_Shortname(string blogShortName)
|
|
{
|
|
BlogNameControlHelper.IsProhibitedFileFormatName(blogShortName).ShouldBe(false);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Should_Create_A_Blog()
|
|
{
|
|
var name = "test name";
|
|
var shortName = "test shortName";
|
|
var description = "test description";
|
|
|
|
var blogDto = await _blogManagementAppService.CreateAsync(new CreateBlogDto() { Name = name, ShortName = name, Description = description });
|
|
|
|
UsingDbContext(context =>
|
|
{
|
|
var blog = context.Blogs.FirstOrDefault(q => q.Id == blogDto.Id);
|
|
blog.ShouldNotBeNull();
|
|
blog.Name.ShouldBe(blogDto.Name);
|
|
blog.ShortName.ShouldBe(blogDto.ShortName);
|
|
blog.Description.ShouldBe(blogDto.Description);
|
|
});
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Should_Update_A_Blog()
|
|
{
|
|
var newDescription = "new description";
|
|
|
|
var oldBlog = (await _blogManagementAppService.GetListAsync()).Items.FirstOrDefault(); ;
|
|
|
|
await _blogManagementAppService.UpdateAsync(oldBlog.Id, new UpdateBlogDto()
|
|
{ Description = newDescription, Name = oldBlog.Name, ShortName = oldBlog.ShortName });
|
|
|
|
UsingDbContext(context =>
|
|
{
|
|
var blog = context.Blogs.FirstOrDefault(q => q.Id == oldBlog.Id);
|
|
blog.Description.ShouldBe(newDescription);
|
|
});
|
|
}
|
|
|
|
[Fact]
|
|
public async Task Should_Delete_A_Blog()
|
|
{
|
|
var blog = (await _blogRepository.GetListAsync()).First();
|
|
|
|
await _blogManagementAppService.DeleteAsync(blog.Id);
|
|
}
|
|
}
|
|
}
|