Merge pull request #6901 from abpframework/cms-kit/tag-rafactoring

Cms Kit - Tag Refactoring
pull/6931/head
İlkay İlknur 5 years ago committed by GitHub
commit ea50b253ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1,12 +1,17 @@
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Validation;
using Volo.CmsKit.Tags;
namespace Volo.CmsKit.Admin.Tags
{
public class TagCreateDto
{
[Required]
[DynamicMaxLength(typeof(TagConsts), nameof(TagConsts.MaxEntityTypeLength))]
public string EntityType { get; set; }
[Required]
[DynamicMaxLength(typeof(TagConsts), nameof(TagConsts.MaxNameLength))]
public string Name { get; set; }
}
}

@ -1,10 +1,13 @@
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Validation;
using Volo.CmsKit.Tags;
namespace Volo.CmsKit.Admin.Tags
{
public class TagUpdateDto
{
[Required]
[DynamicMaxLength(typeof(TagConsts), nameof(TagConsts.MaxNameLength))]
public string Name { get; set; }
}
}

@ -2,6 +2,6 @@
{
public static class CmsKitErrorCodes
{
//Add your business exception error codes here...
public const string TagAlreadyExist = "CmsKit:0001";
}
}

@ -0,0 +1,17 @@
using JetBrains.Annotations;
using System;
using Volo.Abp;
namespace Volo.CmsKit.Tags
{
[Serializable]
public class TagAlreadyExistException : BusinessException
{
public TagAlreadyExistException([NotNull] string entityType, [NotNull] string name)
{
Code = CmsKitErrorCodes.TagAlreadyExist;
WithData(nameof(Tag.EntityType), entityType);
WithData(nameof(Tag.Name), name);
}
}
}

@ -41,7 +41,7 @@ namespace Volo.CmsKit.Tags
{
if (await _tagRepository.AnyAsync(entityType, name, tenantId, cancellationToken))
{
throw new BusinessException(message: "Tag already exist!"); // Already Exist
throw new TagAlreadyExistException(entityType, name);
}
return await _tagRepository.InsertAsync(
@ -63,7 +63,7 @@ namespace Volo.CmsKit.Tags
if (name != entity.Name &&
await _tagRepository.AnyAsync(entity.EntityType, name, entity.TenantId, cancellationToken))
{
throw new BusinessException(message: "Tag already exist!"); // Already Exist
throw new TagAlreadyExistException(entity.EntityType, name);
}
entity.SetName(name);

@ -0,0 +1,52 @@
using Microsoft.Extensions.DependencyInjection;
using NSubstitute;
using Shouldly;
using System;
using System.Threading.Tasks;
using Volo.Abp.Users;
using Volo.CmsKit.Admin.Tags;
using Xunit;
namespace Volo.CmsKit.Tags
{
public class TagAdminAppService_Tests : CmsKitApplicationTestBase
{
private readonly ITagAdminAppService _tagAdminAppService;
private ICurrentUser _currentUser;
private readonly CmsKitTestData _cmsKitTestData;
public TagAdminAppService_Tests()
{
_tagAdminAppService = GetRequiredService<ITagAdminAppService>();
_cmsKitTestData = GetRequiredService<CmsKitTestData>();
}
protected override void AfterAddApplication(IServiceCollection services)
{
_currentUser = Substitute.For<ICurrentUser>();
services.AddSingleton(_currentUser);
}
[Fact]
public async Task ShouldCreateProperly()
{
var list = await _tagAdminAppService.CreateAsync(new TagCreateDto
{
EntityType = "any_new_type",
Name = "1",
});
list.Id.ShouldNotBe(Guid.Empty);
}
[Fact]
public async Task ShouldThrowException_WhenTagAlreadyExist()
{
await Should.ThrowAsync<TagAlreadyExistException>(async () => await _tagAdminAppService.CreateAsync(new TagCreateDto
{
EntityType = _cmsKitTestData.Content_1_EntityType,
Name = _cmsKitTestData.Content_1_Tags[0],
}));
}
}
}

@ -10,13 +10,13 @@ using Xunit;
namespace Volo.CmsKit.Tags
{
public class TagAppService_Tests : CmsKitApplicationTestBase
public class TagPublicAppService_Tests : CmsKitApplicationTestBase
{
private readonly ITagAppService _tagAppService;
private ICurrentUser _currentUser;
private readonly CmsKitTestData _cmsKitTestData;
public TagAppService_Tests()
public TagPublicAppService_Tests()
{
_tagAppService = GetRequiredService<ITagAppService>();
_cmsKitTestData = GetRequiredService<CmsKitTestData>();
Loading…
Cancel
Save