diff --git a/templates/mvc/MyCompanyName.MyProjectName.sln b/templates/mvc/MyCompanyName.MyProjectName.sln index 2c900dd961..ce5199dc30 100644 --- a/templates/mvc/MyCompanyName.MyProjectName.sln +++ b/templates/mvc/MyCompanyName.MyProjectName.sln @@ -41,6 +41,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName.TestBase", "test\MyCompanyName.MyProjectName.TestBase\MyCompanyName.MyProjectName.TestBase.csproj", "{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyCompanyName.MyProjectName.Domain.Tests", "test\MyCompanyName.MyProjectName.Domain.Tests\MyCompanyName.MyProjectName.Domain.Tests.csproj", "{E512F4D9-9375-480F-A2F6-A46509F9D824}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -115,6 +117,10 @@ Global {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Debug|Any CPU.Build.0 = Debug|Any CPU {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Release|Any CPU.ActiveCfg = Release|Any CPU {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Release|Any CPU.Build.0 = Release|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -137,6 +143,7 @@ Global {E6D5BF0E-DE92-4D82-A352-EF04B37CB11C} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} {1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} {91853F21-9CD9-4132-BC29-A7D5D84FFFE7} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {E512F4D9-9375-480F-A2F6-A46509F9D824} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F} diff --git a/templates/mvc/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppServiceTests.cs b/templates/mvc/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppServiceTests.cs index eb448aaccc..08bab7e852 100644 --- a/templates/mvc/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppServiceTests.cs +++ b/templates/mvc/test/MyCompanyName.MyProjectName.Application.Tests/Samples/SampleAppServiceTests.cs @@ -1,5 +1,4 @@ -using Microsoft.Extensions.DependencyInjection; -using Shouldly; +using Shouldly; using System.Threading.Tasks; using Volo.Abp.Identity; using Xunit; @@ -17,7 +16,7 @@ namespace MyCompanyName.MyProjectName.Samples public SampleAppServiceTests() { - _userAppService = ServiceProvider.GetRequiredService(); + _userAppService = GetRequiredService(); } [Fact] diff --git a/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj b/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj new file mode 100644 index 0000000000..0cc541e353 --- /dev/null +++ b/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/MyCompanyName.MyProjectName.Domain.Tests.csproj @@ -0,0 +1,18 @@ + + + + + + netcoreapp2.2 + MyCompanyName.MyProjectName + + + + + + + + + + + diff --git a/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs b/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs new file mode 100644 index 0000000000..a7d2dd7a1d --- /dev/null +++ b/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestBase.cs @@ -0,0 +1,7 @@ +namespace MyCompanyName.MyProjectName +{ + public abstract class MyProjectNameDomainTestBase : MyProjectNameTestBase + { + + } +} diff --git a/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs b/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs new file mode 100644 index 0000000000..9dca6ff611 --- /dev/null +++ b/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/MyProjectNameDomainTestModule.cs @@ -0,0 +1,13 @@ +using MyCompanyName.MyProjectName.EntityFrameworkCore; +using Volo.Abp.Modularity; + +namespace MyCompanyName.MyProjectName +{ + [DependsOn( + typeof(MyProjectNameEntityFrameworkCoreTestModule) + )] + public class MyProjectNameDomainTestModule : AbpModule + { + + } +} \ No newline at end of file diff --git a/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleDomainTests.cs b/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleDomainTests.cs new file mode 100644 index 0000000000..8253d62cb7 --- /dev/null +++ b/templates/mvc/test/MyCompanyName.MyProjectName.Domain.Tests/Samples/SampleDomainTests.cs @@ -0,0 +1,51 @@ +using System.Threading.Tasks; +using MyCompanyName.MyProjectName.EntityFrameworkCore; +using Shouldly; +using Volo.Abp.Identity; +using Volo.Abp.Uow; +using Xunit; + +namespace MyCompanyName.MyProjectName.Samples +{ + /* This is just an example test class. + * Normally, you don't test code of the modules you are using + * (like IdentityUserManager here). + * Only test your own domain services. + */ + public class SampleDomainTests : MyProjectNameEntityFrameworkCoreTestBase + { + private readonly IIdentityUserRepository _identityUserRepository; + private readonly IdentityUserManager _identityUserManager; + private readonly IUnitOfWorkManager _unitOfWorkManager; + + public SampleDomainTests() + { + _identityUserRepository = GetRequiredService(); + _unitOfWorkManager = GetRequiredService(); + _identityUserManager = GetRequiredService(); + } + + [Fact] + public async Task Should_Set_Email_Of_A_User() + { + IdentityUser adminUser; + + /* Need to manually start Unit Of Work because + * FirstOrDefaultAsync should be executed while db connection / context is available. + */ + using (var uow = _unitOfWorkManager.Begin()) + { + adminUser = await _identityUserRepository + .FindByNormalizedUserNameAsync("ADMIN"); + + await _identityUserManager.SetEmailAsync(adminUser, "newemail@abp.io"); + await _identityUserRepository.UpdateAsync(adminUser); + + await uow.CompleteAsync(); + } + + adminUser = await _identityUserRepository.FindByNormalizedUserNameAsync("ADMIN"); + adminUser.Email.ShouldBe("newemail@abp.io"); + } + } +} diff --git a/templates/mvc/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs b/templates/mvc/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs index 8e1b078e21..872c55b525 100644 --- a/templates/mvc/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs +++ b/templates/mvc/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/EntityFrameworkCore/Samples/SampleRepositoryTests.cs @@ -2,7 +2,6 @@ using System.Linq; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; -using Microsoft.Extensions.DependencyInjection; using MyCompanyName.MyProjectName.Users; using Shouldly; using Volo.Abp.Domain.Repositories; @@ -23,8 +22,8 @@ namespace MyCompanyName.MyProjectName.EntityFrameworkCore.Samples public SampleRepositoryTests() { - _appUserRepository = ServiceProvider.GetRequiredService>(); - _unitOfWorkManager = ServiceProvider.GetRequiredService(); + _appUserRepository = GetRequiredService>(); + _unitOfWorkManager = GetRequiredService(); } [Fact]