mirror of https://github.com/abpframework/abp.git
csharpabpc-sharpframeworkblazoraspnet-coredotnet-coreaspnetcorearchitecturesaasdomain-driven-designangularmulti-tenancy
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.
101 lines
3.1 KiB
101 lines
3.1 KiB
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using NSubstitute;
|
|
using Shouldly;
|
|
using Volo.Abp.Users;
|
|
using Volo.CmsKit.Public.Reactions;
|
|
using Xunit;
|
|
|
|
namespace Volo.CmsKit.Reactions;
|
|
|
|
public class ReactionPublicAppService_Tests : CmsKitApplicationTestBase
|
|
{
|
|
|
|
private readonly CmsKitTestData _cmsKitTestData;
|
|
private readonly ReactionPublicAppService _reactionPublicAppService;
|
|
private ICurrentUser _currentUser;
|
|
|
|
public ReactionPublicAppService_Tests()
|
|
{
|
|
_cmsKitTestData = GetRequiredService<CmsKitTestData>();
|
|
_reactionPublicAppService = GetRequiredService<ReactionPublicAppService>();
|
|
}
|
|
|
|
protected override void AfterAddApplication(IServiceCollection services)
|
|
{
|
|
_currentUser = Substitute.For<ICurrentUser>();
|
|
services.AddSingleton(_currentUser);
|
|
}
|
|
|
|
[Fact]
|
|
public async Task GetForSelectionAsync()
|
|
{
|
|
_currentUser.Id.Returns(_cmsKitTestData.User1Id);
|
|
_currentUser.IsAuthenticated.Returns(true);
|
|
|
|
var reactions = await _reactionPublicAppService.GetForSelectionAsync(
|
|
_cmsKitTestData.EntityType2,
|
|
_cmsKitTestData.EntityId1
|
|
);
|
|
|
|
reactions.Items.
|
|
First(r => r.Reaction.Name == StandardReactions.Rocket).IsSelectedByCurrentUser.ShouldBeTrue();
|
|
|
|
reactions.Items.
|
|
First(r => r.Reaction.Name == StandardReactions.Rocket).Count.ShouldBe(1);
|
|
|
|
reactions.Items.
|
|
Where(r => r.Reaction.Name != StandardReactions.Rocket).All(r => !r.IsSelectedByCurrentUser)
|
|
.ShouldBeTrue();
|
|
reactions.Items.
|
|
Where(r => r.Reaction.Name != StandardReactions.Rocket).All(r => r.Count == 0)
|
|
.ShouldBeTrue();
|
|
}
|
|
|
|
[Fact]
|
|
public async Task CreateAsync()
|
|
{
|
|
_currentUser.Id.Returns(_cmsKitTestData.User1Id);
|
|
|
|
await _reactionPublicAppService.CreateAsync(
|
|
_cmsKitTestData.EntityType2,
|
|
_cmsKitTestData.EntityId2,
|
|
StandardReactions.Eyes
|
|
);
|
|
|
|
UsingDbContext(context =>
|
|
{
|
|
var reaction = context.Set<UserReaction>().Where(x =>
|
|
x.CreatorId == _cmsKitTestData.User1Id &&
|
|
x.ReactionName == StandardReactions.Eyes &&
|
|
x.EntityId == _cmsKitTestData.EntityId2 &&
|
|
x.EntityType == _cmsKitTestData.EntityType2).ToList();
|
|
|
|
reaction.Count.ShouldBe(1);
|
|
});
|
|
}
|
|
|
|
[Fact]
|
|
public async Task DeleteAsync()
|
|
{
|
|
_currentUser.Id.Returns(_cmsKitTestData.User1Id);
|
|
|
|
await _reactionPublicAppService.DeleteAsync(
|
|
_cmsKitTestData.EntityType1,
|
|
_cmsKitTestData.EntityId1,
|
|
StandardReactions.Confused
|
|
);
|
|
|
|
UsingDbContext(context =>
|
|
{
|
|
var reaction = context.Set<UserReaction>().FirstOrDefault(x =>
|
|
x.CreatorId == _cmsKitTestData.User1Id &&
|
|
x.ReactionName == StandardReactions.Confused &&
|
|
x.EntityId == _cmsKitTestData.EntityId1 &&
|
|
x.EntityType == _cmsKitTestData.EntityType1);
|
|
|
|
reaction.ShouldBeNull();
|
|
});
|
|
}
|
|
}
|
|
|