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