mirror of https://github.com/abpframework/abp.git
6 changed files with 120 additions and 0 deletions
@ -0,0 +1,7 @@ |
|||
namespace MyCompanyName.MyProjectName.MongoDB |
|||
{ |
|||
public abstract class MyProjectNameMongoDbTestBase : MyProjectNameTestBase<MyProjectNameMongoDbTestModule> |
|||
{ |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,32 @@ |
|||
using Mongo2Go; |
|||
using MyCompanyName.MyProjectName.MongoDb; |
|||
using Volo.Abp; |
|||
using Volo.Abp.Data; |
|||
using Volo.Abp.Modularity; |
|||
|
|||
namespace MyCompanyName.MyProjectName.MongoDB |
|||
{ |
|||
[DependsOn( |
|||
typeof(MyProjectNameTestBaseModule), |
|||
typeof(MyProjectNameMongoDbModule) |
|||
)] |
|||
public class MyProjectNameMongoDbTestModule : AbpModule |
|||
{ |
|||
private MongoDbRunner _mongoDbRunner; |
|||
|
|||
public override void ConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
_mongoDbRunner = MongoDbRunner.Start(); |
|||
|
|||
Configure<DbConnectionOptions>(options => |
|||
{ |
|||
options.ConnectionStrings.Default = _mongoDbRunner.ConnectionString + "|MyProjectName"; |
|||
}); |
|||
} |
|||
|
|||
public override void OnApplicationShutdown(ApplicationShutdownContext context) |
|||
{ |
|||
_mongoDbRunner.Dispose(); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,48 @@ |
|||
using System; |
|||
using System.Threading.Tasks; |
|||
using MyCompanyName.MyProjectName.Users; |
|||
using MongoDB.Driver.Linq; |
|||
using Shouldly; |
|||
using Volo.Abp.Domain.Repositories; |
|||
using Volo.Abp.Uow; |
|||
using Xunit; |
|||
|
|||
namespace MyCompanyName.MyProjectName.MongoDB.Samples |
|||
{ |
|||
/* This is just an example test class. |
|||
* Normally, you don't test ABP framework code |
|||
* (like default AppUser repository IRepository<AppUser, Guid> here). |
|||
* Only test your custom repository methods. |
|||
*/ |
|||
public class SampleRepositoryTests : MyProjectNameMongoDbTestBase |
|||
{ |
|||
private readonly IRepository<AppUser, Guid> _appUserRepository; |
|||
private readonly IUnitOfWorkManager _unitOfWorkManager; |
|||
|
|||
public SampleRepositoryTests() |
|||
{ |
|||
_appUserRepository = GetRequiredService<IRepository<AppUser, Guid>>(); |
|||
_unitOfWorkManager = GetRequiredService<IUnitOfWorkManager>(); |
|||
} |
|||
|
|||
[Fact] |
|||
public async Task Should_Query_AppUser() |
|||
{ |
|||
/* Need to manually start Unit Of Work because |
|||
* FirstOrDefaultAsync should be executed while db connection / context is available. |
|||
*/ |
|||
using (var uow = _unitOfWorkManager.Begin()) |
|||
{ |
|||
//Act
|
|||
var adminUser = await _appUserRepository |
|||
.GetMongoQueryable() |
|||
.FirstOrDefaultAsync(u => u.UserName == "admin"); |
|||
|
|||
//Assert
|
|||
adminUser.ShouldNotBeNull(); |
|||
|
|||
await uow.CompleteAsync(); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,20 @@ |
|||
<Project Sdk="Microsoft.NET.Sdk"> |
|||
|
|||
<Import Project="..\..\common.props" /> |
|||
|
|||
<PropertyGroup> |
|||
<TargetFramework>netcoreapp2.2</TargetFramework> |
|||
<RootNamespace>MyCompanyName.MyProjectName</RootNamespace> |
|||
</PropertyGroup> |
|||
|
|||
<ItemGroup> |
|||
<ProjectReference Include="..\..\src\MyCompanyName.MyProjectName.MongoDB\MyCompanyName.MyProjectName.MongoDB.csproj" /> |
|||
<ProjectReference Include="..\MyCompanyName.MyProjectName.TestBase\MyCompanyName.MyProjectName.TestBase.csproj" /> |
|||
</ItemGroup> |
|||
|
|||
<ItemGroup> |
|||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.1.0" /> |
|||
<PackageReference Include="Mongo2Go" Version="2.2.8" /> |
|||
</ItemGroup> |
|||
|
|||
</Project> |
|||
Loading…
Reference in new issue