mirror of https://github.com/abpframework/abp
				
				
				
			
			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.
		
		
		
		
		
			
		
			
				
					
					
						
							60 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							60 lines
						
					
					
						
							2.1 KiB
						
					
					
				using Shouldly;
 | 
						|
using System;
 | 
						|
using System.Collections.Generic;
 | 
						|
using System.Linq;
 | 
						|
using System.Text;
 | 
						|
using System.Threading.Tasks;
 | 
						|
using Volo.CmsKit.Users;
 | 
						|
using Xunit;
 | 
						|
 | 
						|
namespace Volo.CmsKit.Comments
 | 
						|
{
 | 
						|
    public class CommentManager_Test : CmsKitDomainTestBase
 | 
						|
    {
 | 
						|
        private readonly CommentManager commentManager;
 | 
						|
        private readonly CmsKitTestData testData;
 | 
						|
        private readonly ICmsUserRepository userRepository;
 | 
						|
 | 
						|
        public CommentManager_Test()
 | 
						|
        {
 | 
						|
            commentManager = GetRequiredService<CommentManager>();
 | 
						|
            testData = GetRequiredService<CmsKitTestData>();
 | 
						|
            userRepository = GetRequiredService<ICmsUserRepository>();
 | 
						|
        }
 | 
						|
 | 
						|
        [Fact]
 | 
						|
        public async Task CreateAsync_ShouldWorkProperly_WithCorrectData()
 | 
						|
        {
 | 
						|
            var creator = await userRepository.GetAsync(testData.User1Id);
 | 
						|
 | 
						|
            var text = "Thank you for the article. It's awesome";
 | 
						|
 | 
						|
            var comment = await commentManager.CreateAsync(creator, testData.EntityType1, testData.EntityId1, text);
 | 
						|
 | 
						|
            comment.Id.ShouldNotBe(Guid.Empty);
 | 
						|
            comment.CreatorId.ShouldBe(creator.Id);
 | 
						|
            comment.EntityType.ShouldBe(testData.EntityType1);
 | 
						|
            comment.EntityId.ShouldBe(testData.EntityId1);
 | 
						|
            comment.Text.ShouldBe(text);
 | 
						|
        }
 | 
						|
 | 
						|
        [Fact]
 | 
						|
        public async Task CreateAsync_ShouldThrowException_WithNotConfiguredEntityType()
 | 
						|
        {
 | 
						|
            var creator = await userRepository.GetAsync(testData.User1Id);
 | 
						|
            var notConfiguredEntityType = "Some.New.Entity";
 | 
						|
            var text = "Thank you for the article. It's awesome";
 | 
						|
 | 
						|
            var exception = await Should.ThrowAsync<EntityNotCommentableException>(async () =>
 | 
						|
                                await commentManager.CreateAsync(
 | 
						|
                                    creator, 
 | 
						|
                                    notConfiguredEntityType, 
 | 
						|
                                    testData.EntityId1, 
 | 
						|
                                    text));
 | 
						|
 | 
						|
            exception.ShouldNotBeNull();
 | 
						|
            exception.EntityType.ShouldBe(notConfiguredEntityType);
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |