mirror of https://github.com/abpframework/abp.git
17 changed files with 337 additions and 6 deletions
@ -0,0 +1,12 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using Volo.Blogging.EntityFrameworkCore; |
||||
|
|
||||
|
namespace Volo.Blogging.Comments |
||||
|
{ |
||||
|
public class CommentRepository_Tests : CommentRepository_Tests<BloggingEntityFrameworkCoreTestModule> |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using Volo.Blogging.EntityFrameworkCore; |
||||
|
|
||||
|
namespace Volo.Blogging.Posts |
||||
|
{ |
||||
|
public class PostRepository_Tests : PostRepository_Tests<BloggingEntityFrameworkCoreTestModule> |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using Volo.Blogging.EntityFrameworkCore; |
||||
|
|
||||
|
namespace Volo.Blogging.Tagging |
||||
|
{ |
||||
|
public class TagRepository_Tests : TagRepository_Tests<BloggingEntityFrameworkCoreTestModule> |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,19 @@ |
|||||
|
<Project Sdk="Microsoft.NET.Sdk"> |
||||
|
|
||||
|
<PropertyGroup> |
||||
|
<TargetFramework>netcoreapp2.2</TargetFramework> |
||||
|
|
||||
|
<IsPackable>false</IsPackable> |
||||
|
</PropertyGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" /> |
||||
|
<PackageReference Include="Mongo2Go" Version="2.2.8" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
<ItemGroup> |
||||
|
<ProjectReference Include="..\..\src\Volo.Blogging.MongoDB\Volo.Blogging.MongoDB.csproj" /> |
||||
|
<ProjectReference Include="..\Volo.Blogging.TestBase\Volo.Blogging.TestBase.csproj" /> |
||||
|
</ItemGroup> |
||||
|
|
||||
|
</Project> |
||||
@ -0,0 +1,12 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using Volo.Blogging.Blogs; |
||||
|
|
||||
|
namespace Volo.Blogging.MongoDB |
||||
|
{ |
||||
|
public class BlogRepository_Tests : BlogRepository_Tests<BloggingMongoDBTestModule> |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using Volo.Blogging.Comments; |
||||
|
|
||||
|
namespace Volo.Blogging.MongoDB |
||||
|
{ |
||||
|
public class CommentRepository_Tests : CommentRepository_Tests<BloggingMongoDBTestModule> |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,34 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using Mongo2Go; |
||||
|
using Volo.Abp; |
||||
|
using Volo.Abp.Data; |
||||
|
using Volo.Abp.Modularity; |
||||
|
|
||||
|
namespace Volo.Blogging.MongoDB |
||||
|
{ |
||||
|
[DependsOn( |
||||
|
typeof(BloggingTestBaseModule), |
||||
|
typeof(BloggingMongoDbModule) |
||||
|
)] |
||||
|
public class BloggingMongoDBTestModule : AbpModule |
||||
|
{ |
||||
|
private MongoDbRunner _mongoDbRunner; |
||||
|
|
||||
|
public override void ConfigureServices(ServiceConfigurationContext context) |
||||
|
{ |
||||
|
_mongoDbRunner = MongoDbRunner.Start(); |
||||
|
|
||||
|
Configure<DbConnectionOptions>(options => |
||||
|
{ |
||||
|
options.ConnectionStrings.Default = _mongoDbRunner.ConnectionString; |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
public override void OnApplicationShutdown(ApplicationShutdownContext context) |
||||
|
{ |
||||
|
_mongoDbRunner.Dispose(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using Volo.Blogging.Posts; |
||||
|
|
||||
|
namespace Volo.Blogging.MongoDB.Tests.Volo.Blogging.Posts |
||||
|
{ |
||||
|
public class PostRepository_Tests : PostRepository_Tests<BloggingMongoDBTestModule> |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,12 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using Volo.Blogging.Tagging; |
||||
|
|
||||
|
namespace Volo.Blogging.MongoDB |
||||
|
{ |
||||
|
public class TagRepository_Tests : TagRepository_Tests<BloggingMongoDBTestModule> |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,54 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using Shouldly; |
||||
|
using Volo.Abp.Modularity; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Volo.Blogging.Comments |
||||
|
{ |
||||
|
public abstract class CommentRepository_Tests<TStartupModule> : BloggingTestBase<TStartupModule> |
||||
|
where TStartupModule : IAbpModule |
||||
|
{ |
||||
|
protected ICommentRepository CommentRepository { get; } |
||||
|
protected BloggingTestData BloggingTestData { get; } |
||||
|
|
||||
|
protected CommentRepository_Tests() |
||||
|
{ |
||||
|
CommentRepository = GetRequiredService<ICommentRepository>(); |
||||
|
BloggingTestData = GetRequiredService<BloggingTestData>(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetListOfPostAsync() |
||||
|
{ |
||||
|
var comments = await CommentRepository.GetListOfPostAsync(BloggingTestData.Blog1Post1Id); |
||||
|
comments.ShouldNotBeNull(); |
||||
|
comments.Count.ShouldBe(2); |
||||
|
comments.ShouldAllBe(x => x.PostId == BloggingTestData.Blog1Post1Id); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetCommentCountOfPostAsync() |
||||
|
{ |
||||
|
var count = await CommentRepository.GetCommentCountOfPostAsync(BloggingTestData.Blog1Post1Id); |
||||
|
count.ShouldBe(2); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetRepliesOfComment() |
||||
|
{ |
||||
|
var comment = await CommentRepository.GetRepliesOfComment(BloggingTestData.Blog1Post1Comment1Id); |
||||
|
comment.ShouldNotBeNull(); |
||||
|
comment.ShouldContain(x => x.Id == BloggingTestData.Blog1Post1Comment2Id); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task DeleteOfPost() |
||||
|
{ |
||||
|
await CommentRepository.DeleteOfPost(BloggingTestData.Blog1Post1Id); |
||||
|
(await CommentRepository.GetListAsync()).ShouldBeEmpty(); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,41 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using Shouldly; |
||||
|
using Volo.Abp.Modularity; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Volo.Blogging.Posts |
||||
|
{ |
||||
|
public abstract class PostRepository_Tests<TStartupModule> : BloggingTestBase<TStartupModule> |
||||
|
where TStartupModule : IAbpModule |
||||
|
{ |
||||
|
protected IPostRepository PostRepository { get; } |
||||
|
protected BloggingTestData BloggingTestData { get; } |
||||
|
|
||||
|
protected PostRepository_Tests() |
||||
|
{ |
||||
|
PostRepository = GetRequiredService<IPostRepository>(); |
||||
|
BloggingTestData = GetRequiredService<BloggingTestData>(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetListOfPostAsync() |
||||
|
{ |
||||
|
var posts = await PostRepository.GetPostsByBlogId(BloggingTestData.Blog1Id); |
||||
|
posts.ShouldNotBeNull(); |
||||
|
posts.Count.ShouldBe(2); |
||||
|
posts.ShouldContain(x => x.Id == BloggingTestData.Blog1Post1Id); |
||||
|
posts.ShouldContain(x => x.Id == BloggingTestData.Blog1Post2Id); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetPostByUrl() |
||||
|
{ |
||||
|
var post = await PostRepository.GetPostByUrl(BloggingTestData.Blog1Id, "url"); |
||||
|
post.ShouldNotBeNull(); |
||||
|
post.Url.ShouldBe("url"); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,73 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using Shouldly; |
||||
|
using Volo.Abp.Modularity; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Volo.Blogging.Tagging |
||||
|
{ |
||||
|
public abstract class TagRepository_Tests<TStartupModule> : BloggingTestBase<TStartupModule> |
||||
|
where TStartupModule : IAbpModule |
||||
|
{ |
||||
|
protected ITagRepository TagRepository { get; } |
||||
|
protected BloggingTestData BloggingTestData { get; } |
||||
|
|
||||
|
protected TagRepository_Tests() |
||||
|
{ |
||||
|
TagRepository = GetRequiredService<ITagRepository>(); |
||||
|
BloggingTestData = GetRequiredService<BloggingTestData>(); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetListAsync() |
||||
|
{ |
||||
|
var tags = await TagRepository.GetListAsync(BloggingTestData.Blog1Id); |
||||
|
tags.ShouldNotBeNull(); |
||||
|
tags.Count.ShouldBe(2); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetByNameAsync() |
||||
|
{ |
||||
|
var tag = await TagRepository.GetByNameAsync(BloggingTestData.Blog1Id, BloggingTestData.Tag1Name); |
||||
|
tag.ShouldNotBeNull(); |
||||
|
tag.Name.ShouldBe(BloggingTestData.Tag1Name); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task FindByNameAsync() |
||||
|
{ |
||||
|
var tag = await TagRepository.FindByNameAsync(BloggingTestData.Blog1Id, BloggingTestData.Tag1Name); |
||||
|
tag.ShouldNotBeNull(); |
||||
|
tag.Name.ShouldBe(BloggingTestData.Tag1Name); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task GetListAsync2() |
||||
|
{ |
||||
|
var tagIds = (await TagRepository.GetListAsync()).Select(x => x.Id).ToList(); |
||||
|
var tags = await TagRepository.GetListAsync(tagIds); |
||||
|
tags.ShouldNotBeNull(); |
||||
|
tags.Count.ShouldBe(tagIds.Count); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public async Task DecreaseUsageCountOfTags() |
||||
|
{ |
||||
|
var tag = await TagRepository.FindByNameAsync(BloggingTestData.Blog1Id, BloggingTestData.Tag1Name); |
||||
|
var usageCount = tag.UsageCount; |
||||
|
|
||||
|
TagRepository.DecreaseUsageCountOfTags(new List<Guid>() |
||||
|
{ |
||||
|
tag.Id |
||||
|
}); |
||||
|
|
||||
|
var qq = await TagRepository.FindByNameAsync(BloggingTestData.Blog1Id, BloggingTestData.Tag1Name); |
||||
|
(await TagRepository.FindByNameAsync(BloggingTestData.Blog1Id, BloggingTestData.Tag1Name)).UsageCount |
||||
|
.ShouldBe(usageCount - 1); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,13 @@ |
|||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Text; |
||||
|
using Volo.Abp.Modularity; |
||||
|
|
||||
|
namespace Volo.Blogging.Users |
||||
|
{ |
||||
|
public abstract class BlogUserRepository_Tests<TStartupModule> : BloggingTestBase<TStartupModule> |
||||
|
where TStartupModule : IAbpModule |
||||
|
{ |
||||
|
|
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue