added admin tests

pull/7685/head
Ahmet 5 years ago
parent 876b2b542d
commit 7bf8a90af6

@ -0,0 +1,53 @@
using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using Shouldly;
using Volo.CmsKit.Admin.MediaDescriptors;
using Xunit;
namespace Volo.CmsKit.MediaDescriptors
{
public class MediaDescriptorAdminAppService_Tests : CmsKitApplicationTestBase
{
private readonly CmsKitTestData _cmsKitTestData;
private readonly IMediaDescriptorAdminAppService _mediaDescriptorAdminAppService;
private readonly IMediaDescriptorRepository _mediaDescriptorRepository;
public MediaDescriptorAdminAppService_Tests()
{
_cmsKitTestData = GetRequiredService<CmsKitTestData>();
_mediaDescriptorAdminAppService = GetRequiredService<IMediaDescriptorAdminAppService>();
_mediaDescriptorRepository = GetRequiredService<IMediaDescriptorRepository>();
}
[Fact]
public async Task Should_Create_Media()
{
var mediaName = "README.md";
var mediaType = "text/markdown";
var mediaContent =
"# ABP Framework\nABP Framework is a complete **infrastructure** based on the **ASP.NET Core** to create **modern web applications** and **APIs** by following the software development **best practices** and the **latest technologies**.";
using var stream = new MemoryStream(Encoding.UTF8.GetBytes(mediaContent));
var inputStream = new CreateMediaInputStream(stream)
{
ContentType = mediaType,
Name = mediaName
};
var media = await _mediaDescriptorAdminAppService.CreateAsync(inputStream);
media.ShouldNotBeNull();
}
[Fact]
public async Task Should_Delete_Media()
{
await _mediaDescriptorAdminAppService.DeleteAsync(_cmsKitTestData.Media_1_Id);
(await _mediaDescriptorRepository.FindAsync(_cmsKitTestData.Media_1_Id)).ShouldBeNull();
}
}
}

@ -1,8 +1,11 @@
using Microsoft.Extensions.Options;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Volo.Abp.BlobStoring;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain.Repositories;
@ -12,6 +15,7 @@ using Volo.Abp.Users;
using Volo.CmsKit.Blogs;
using Volo.CmsKit.Comments;
using Volo.CmsKit.Contents;
using Volo.CmsKit.MediaDescriptors;
using Volo.CmsKit.Pages;
using Volo.CmsKit.Ratings;
using Volo.CmsKit.Reactions;
@ -38,6 +42,8 @@ namespace Volo.CmsKit
private readonly IBlogPostRepository _blogPostRepository;
private readonly IOptions<CmsKitOptions> _options;
private readonly IOptions<CmsKitTagOptions> _tagOptions;
private readonly IMediaDescriptorRepository _mediaDescriptorRepository;
private readonly IBlobContainer<MediaContainer> _mediaBlobContainer;
public CmsKitDataSeedContributor(
IGuidGenerator guidGenerator,
@ -55,7 +61,9 @@ namespace Volo.CmsKit
IBlogPostRepository blogPostRepository,
IEntityTagManager entityTagManager,
IOptions<CmsKitOptions> options,
IOptions<CmsKitTagOptions> tagOptions)
IOptions<CmsKitTagOptions> tagOptions,
IMediaDescriptorRepository mediaDescriptorRepository,
IBlobContainer<MediaContainer> mediaBlobContainer)
{
_guidGenerator = guidGenerator;
_cmsUserRepository = cmsUserRepository;
@ -73,6 +81,8 @@ namespace Volo.CmsKit
_blogPostRepository = blogPostRepository;
_options = options;
_tagOptions = tagOptions;
_mediaDescriptorRepository = mediaDescriptorRepository;
_mediaBlobContainer = mediaBlobContainer;
}
public async Task SeedAsync(DataSeedContext context)
@ -96,6 +106,8 @@ namespace Volo.CmsKit
await SeedPagesAsync();
await SeedBlogsAsync();
await SeedMediaAsync();
}
}
@ -314,5 +326,17 @@ namespace Volo.CmsKit
await _blogPostRepository.InsertAsync(new BlogPost(_cmsKitTestData.BlogPost_2_Id, blog.Id, _cmsKitTestData.BlogPost_2_Title, _cmsKitTestData.BlogPost_2_Slug, "Short desc 2"));
}
private async Task SeedMediaAsync()
{
using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(_cmsKitTestData.Media_1_Content)))
{
var media = new MediaDescriptor(_cmsKitTestData.Media_1_Id, _cmsKitTestData.Media_1_Name, _cmsKitTestData.Media_1_ContentType, stream.Length);
await _mediaDescriptorRepository.InsertAsync(media);
await _mediaBlobContainer.SaveAsync(media.Id.ToString(), stream);
}
}
}
}

@ -90,5 +90,13 @@ namespace Volo.CmsKit
public string BlogPost_2_Title => "How to use CmsKit";
public string BlogPost_2_Slug => "how-to-use-cms-kit";
public Guid Media_1_Id { get; } = Guid.NewGuid();
public string Media_1_Content = "Hi, this is text file";
public string Media_1_Name = "hello.txt";
public string Media_1_ContentType = "text/plain";
}
}

Loading…
Cancel
Save