From e2d438b286913114f558676e28983535c5384ea4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 19 Sep 2017 22:15:12 +0300 Subject: [PATCH] Added test for Create method. --- .../Identity/IdentityUserCreateOrUpdateDto.cs | 11 +++++-- .../Abp/Identity/IdentityUserAppService.cs | 4 ++- .../AbpIdentityApplicationTestBase.cs | 3 +- .../Identity/IdentityUserAppService_Tests.cs | 30 +++++++++++++++++-- .../MemoryDb_Basic_Repository_Tests.cs | 5 +--- 5 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IdentityUserCreateOrUpdateDto.cs b/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IdentityUserCreateOrUpdateDto.cs index e289475e4b..20b129e08b 100644 --- a/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IdentityUserCreateOrUpdateDto.cs +++ b/src/Volo.Abp.Identity.Application.Contracts/Volo/Abp/Identity/IdentityUserCreateOrUpdateDto.cs @@ -1,5 +1,8 @@ -namespace Volo.Abp.Identity +using System.ComponentModel.DataAnnotations; + +namespace Volo.Abp.Identity { + //TODO: Use different Dtos for Create & Update even if they are derived from a base Dto. Thus, clients will be backward compatible in a future change. public class IdentityUserCreateOrUpdateDto { public string UserName { get; set; } @@ -8,10 +11,12 @@ public string PhoneNumber { get; set; } - public bool TwoFactorEnabled { get; set; } + public bool TwoFactorEnabled { get; set; } //TODO: Optional? - public bool LockoutEnabled { get; set; } + public bool LockoutEnabled { get; set; } //TODO: Optional? + [Required] + [MaxLength(16)] //TODO: Create a shared dll of Identity and move consts to there for sharing! public string Password { get; set; } } } \ No newline at end of file diff --git a/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs b/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs index 3cf16c8678..c30a69bf09 100644 --- a/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs +++ b/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/IdentityUserAppService.cs @@ -41,7 +41,8 @@ namespace Volo.Abp.Identity var user = new IdentityUser(GuidGenerator.Create(), input.UserName); await UpdateUserProperties(input, user); - await _userManager.CreateAsync(user, input.Password); + await _userManager.AddPasswordAsync(user, input.Password); + await _userManager.CreateAsync(user); await CurrentUnitOfWork.SaveChangesAsync(); return ObjectMapper.Map(user); @@ -53,6 +54,7 @@ namespace Volo.Abp.Identity await _userManager.SetUserNameAsync(user, input.UserName); await UpdateUserProperties(input, user); + await _userManager.UpdateAsync(user); await CurrentUnitOfWork.SaveChangesAsync(); return ObjectMapper.Map(user); diff --git a/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/AbpIdentityApplicationTestBase.cs b/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/AbpIdentityApplicationTestBase.cs index 59e1a1161c..2bf77ad26d 100644 --- a/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/AbpIdentityApplicationTestBase.cs +++ b/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/AbpIdentityApplicationTestBase.cs @@ -1,5 +1,4 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.TestBase; +using Volo.Abp.TestBase; namespace Volo.Abp.Identity { diff --git a/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserAppService_Tests.cs b/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserAppService_Tests.cs index aee0f15889..2e619067f0 100644 --- a/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserAppService_Tests.cs +++ b/test/Volo.Abp.Identity.Application.Tests/Volo/Abp/Identity/IdentityUserAppService_Tests.cs @@ -1,4 +1,5 @@ -using System.Threading.Tasks; +using System; +using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Shouldly; using Volo.Abp.Application.Dtos; @@ -16,11 +17,34 @@ namespace Volo.Abp.Identity } [Fact] - public async Task GetList() + public async Task GetListAsync() { - var result = await _identityUserAppService.GetListAsync(new PagedAndSortedResultRequestDto { MaxResultCount = 10 }); + var result = await _identityUserAppService.GetListAsync(new PagedAndSortedResultRequestDto()); result.TotalCount.ShouldBeGreaterThan(0); result.Items.Count.ShouldBeGreaterThan(0); } + + [Fact] + public async Task CreateAsync() + { + var input = new IdentityUserCreateOrUpdateDto + { + UserName = Guid.NewGuid().ToString(), + Email = Guid.NewGuid().ToString("N").Left(16) + "@abp.io", + LockoutEnabled = true, + PhoneNumber = RandomHelper.GetRandom(10000000,100000000).ToString(), + Password = "123qwe" + }; + + var result = await _identityUserAppService.CreateAsync(input); + + result.Id.ShouldNotBe(Guid.Empty); + result.UserName.ShouldBe(input.UserName); + result.Email.ShouldBe(input.Email); + result.LockoutEnabled.ShouldBe(input.LockoutEnabled); + result.PhoneNumber.ShouldBe(input.PhoneNumber); + + //TODO: Also check repository + } } } diff --git a/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/Repositories/MemoryDb_Basic_Repository_Tests.cs b/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/Repositories/MemoryDb_Basic_Repository_Tests.cs index 07b38b227f..768460f0ba 100644 --- a/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/Repositories/MemoryDb_Basic_Repository_Tests.cs +++ b/test/Volo.Abp.MemoryDb.Tests/Volo/Abp/MemoryDb/Repositories/MemoryDb_Basic_Repository_Tests.cs @@ -34,10 +34,7 @@ namespace Volo.Abp.MemoryDb.Repositories _personRepository.Insert(new Person(Guid.NewGuid(), name, 42)); //Assert - WithUnitOfWork(() => - { - _personRepository.FirstOrDefault(p => p.Name == name).ShouldNotBeNull(); - }); + _personRepository.FirstOrDefault(p => p.Name == name).ShouldNotBeNull(); } } }