Browse Source

CmsKit - Add EntityTag tests

pull/7103/head
enisn 6 years ago
parent
commit
5651300275
  1. 55
      modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs
  2. 8
      modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs
  3. 9
      modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs

55
modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Tags/EntityTagManager_Tests.cs

@ -0,0 +1,55 @@
using Shouldly;
using System.Linq;
using System.Threading.Tasks;
using Xunit;
namespace Volo.CmsKit.Tags
{
public class EntityTagManager_Tests : CmsKitDomainTestBase
{
private readonly CmsKitTestData _cmsKitTestData;
private readonly IEntityTagManager _entityTagManager;
private readonly ITagRepository _tagRepository;
public EntityTagManager_Tests()
{
_cmsKitTestData = GetRequiredService<CmsKitTestData>();
_entityTagManager = GetRequiredService<IEntityTagManager>();
_tagRepository = GetRequiredService<ITagRepository>();
}
[Fact]
public async Task AddTagToEntityAsync_ShouldAdd_WhenEverythingCorrect()
{
var entityTag = await _entityTagManager.AddTagToEntityAsync(_cmsKitTestData.TagId_1, _cmsKitTestData.EntityType1, _cmsKitTestData.EntityId1);
entityTag.ShouldNotBeNull();
}
[Fact]
public async Task AddTagToEntity_ShouldThrowNotTaggable_WithNotConfiguredEntityType()
{
var entityType = "Not.Configured.EntityType";
var exception = Should.Throw<EntityNotTaggableException>(async () =>
await _entityTagManager.AddTagToEntityAsync(_cmsKitTestData.TagId_1, entityType, _cmsKitTestData.EntityId1)
);
exception.ShouldNotBeNull();
exception.Data[nameof(Tag.EntityType)].ShouldBe(entityType);
}
[Fact]
public async Task RemoveTagFromEntityAsync_ShouldRemove_WhenEverythingCorrect()
{
var tagToDelete = (await _tagRepository.GetAllRelatedTagsAsync(_cmsKitTestData.EntityType1, _cmsKitTestData.EntityId1))
.First();
await _entityTagManager.RemoveTagFromEntityAsync(tagToDelete.Id, tagToDelete.EntityType, _cmsKitTestData.EntityId1);
var tags = await _tagRepository.GetAllRelatedTagsAsync(_cmsKitTestData.EntityType1, _cmsKitTestData.EntityId1);
tags.ShouldNotContain(x => x.Id == tagToDelete.Id);
}
}
}

8
modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitDataSeedContributor.cs

@ -251,6 +251,14 @@ namespace Volo.CmsKit
private async Task SeedTagsAsync()
{
var created1 = await _tagManager.InsertAsync(_cmsKitTestData.TagId_1, _cmsKitTestData.EntityType1, _cmsKitTestData.TagName_1);
await _entityTagManager.AddTagToEntityAsync(created1.Id, created1.EntityType, _cmsKitTestData.EntityId1);
var created2 = await _tagManager.InsertAsync(_cmsKitTestData.TagId_2, _cmsKitTestData.EntityType2, _cmsKitTestData.TagName_2);
await _entityTagManager.AddTagToEntityAsync(created2.Id, created2.EntityType, _cmsKitTestData.EntityId2);
foreach (var tag in _cmsKitTestData.Content_1_Tags)
{
var tagEntity = await _tagManager.InsertAsync(_guidGenerator.Create(), _cmsKitTestData.Content_1_EntityType, tag);

9
modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs

@ -12,6 +12,7 @@ namespace Volo.CmsKit
public Guid CommentWithChildId { get; } = Guid.NewGuid();
public string EntityType1 { get; } = "EntityName1";
public string EntityType2 { get; } = "EntityName2";
@ -61,5 +62,13 @@ namespace Volo.CmsKit
public string Page_2_Content => Content_2;
public string TagDefinition_1_EntityType => "My.Namespace.CustomType";
public Guid TagId_1 { get; } = Guid.NewGuid();
public string TagName_1 => "Awesome";
public Guid TagId_2 { get; } = Guid.NewGuid();
public string TagName_2 => "News";
}
}

Loading…
Cancel
Save