You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
abp/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Reactions/ReactionManager_Tests.cs

83 lines
2.7 KiB

using System.Linq;
using System.Threading.Tasks;
using Shouldly;
using Xunit;
namespace Volo.CmsKit.Reactions
{
public class ReactionManager_Tests : CmsKitDomainTestBase
{
private readonly CmsKitTestData _cmsKitTestData;
private readonly ReactionManager _reactionManager;
public ReactionManager_Tests()
{
_cmsKitTestData = GetRequiredService<CmsKitTestData>();
_reactionManager = GetRequiredService<ReactionManager>();
}
[Fact]
public async Task GetReactionsAsync()
{
var reactions = await _reactionManager.GetReactionsAsync();
reactions.Count.ShouldBe(8);
var reactionsByEntityType = await _reactionManager.GetReactionsAsync(_cmsKitTestData.EntityType1);
reactionsByEntityType.Count.ShouldBe(8);
}
[Fact]
public async Task GetSummariesAsync()
{
var summary = await _reactionManager.GetSummariesAsync(
_cmsKitTestData.EntityType1,
_cmsKitTestData.EntityId1
);
summary.Single(s=>s.Reaction.Name == StandardReactions.ThumbsUp).Count.ShouldBe(2);
summary.Single(s=>s.Reaction.Name == StandardReactions.Confused).Count.ShouldBe(1);
summary.Single(s=>s.Reaction.Name == StandardReactions.Rocket).Count.ShouldBe(0);
}
[Fact]
public async Task CreateAsync()
{
var reaction = await _reactionManager.CreateAsync(
_cmsKitTestData.User2Id,
_cmsKitTestData.EntityType1,
_cmsKitTestData.EntityId2,
StandardReactions.Eyes
);
reaction.CreatorId.ShouldBe(_cmsKitTestData.User2Id);
reaction.EntityType.ShouldBe(_cmsKitTestData.EntityType1);
reaction.EntityId.ShouldBe(_cmsKitTestData.EntityId2);
reaction.ReactionName.ShouldBe(StandardReactions.Eyes);
}
[Fact]
public async Task DeleteAsync()
{
await _reactionManager.DeleteAsync(
_cmsKitTestData.User1Id,
_cmsKitTestData.EntityType1,
_cmsKitTestData.EntityId1,
StandardReactions.Confused
);
UsingDbContext(context =>
{
var reaction = context.UserReactions.FirstOrDefault(x =>
x.CreatorId == _cmsKitTestData.User1Id &&
x.ReactionName == StandardReactions.Confused &&
x.EntityId == _cmsKitTestData.EntityId1 &&
x.EntityType == _cmsKitTestData.EntityType1);
reaction.ShouldBeNull();
});
}
}
}