aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Tests/DevHive.Services.Tests/PostService.Tests.cs
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2021-02-05 19:00:24 +0200
committertranstrike <transtrike@gmail.com>2021-02-05 19:00:24 +0200
commit75eeb4358e746d887677903052ed4bd5ca176f4d (patch)
tree9f9b9eb0103d61f488c08fa4b4b5f308ca9ab35a /src/DevHive.Tests/DevHive.Services.Tests/PostService.Tests.cs
parent51e157d1e1dc57ea2ba9c29b355fa7982a29bebe (diff)
parent4eb5ccdfc8ee4ac9795c48c701e565dbe2b641f9 (diff)
downloadDevHive-75eeb4358e746d887677903052ed4bd5ca176f4d.tar
DevHive-75eeb4358e746d887677903052ed4bd5ca176f4d.tar.gz
DevHive-75eeb4358e746d887677903052ed4bd5ca176f4d.zip
Merge branch 'dev' of github.com:Team-Kaleidoscope/DevHive into dev
Diffstat (limited to 'src/DevHive.Tests/DevHive.Services.Tests/PostService.Tests.cs')
-rw-r--r--src/DevHive.Tests/DevHive.Services.Tests/PostService.Tests.cs261
1 files changed, 15 insertions, 246 deletions
diff --git a/src/DevHive.Tests/DevHive.Services.Tests/PostService.Tests.cs b/src/DevHive.Tests/DevHive.Services.Tests/PostService.Tests.cs
index b47c8bc..900608c 100644
--- a/src/DevHive.Tests/DevHive.Services.Tests/PostService.Tests.cs
+++ b/src/DevHive.Tests/DevHive.Services.Tests/PostService.Tests.cs
@@ -1,11 +1,13 @@
using System;
+using System.Collections.Generic;
using System.Threading.Tasks;
using AutoMapper;
using DevHive.Data.Interfaces.Repositories;
using DevHive.Data.Models;
-using DevHive.Services.Models.Post.Comment;
-using DevHive.Services.Models.Post.Post;
+using DevHive.Services.Interfaces;
+using DevHive.Services.Models.Post;
using DevHive.Services.Services;
+using Microsoft.AspNetCore.Http;
using Moq;
using NUnit.Framework;
@@ -15,9 +17,10 @@ namespace DevHive.Services.Tests
public class PostServiceTests
{
private const string MESSAGE = "Gosho Trapov";
+ private Mock<ICloudService> CloudServiceMock { get; set; }
private Mock<IPostRepository> PostRepositoryMock { get; set; }
- private Mock<IUserRepository> UserRepositoryMock { get; set; }
private Mock<ICommentRepository> CommentRepositoryMock { get; set; }
+ private Mock<IUserRepository> UserRepositoryMock { get; set; }
private Mock<IMapper> MapperMock { get; set; }
private PostService PostService { get; set; }
@@ -26,247 +29,14 @@ namespace DevHive.Services.Tests
public void Setup()
{
this.PostRepositoryMock = new Mock<IPostRepository>();
+ this.CloudServiceMock = new Mock<ICloudService>();
this.UserRepositoryMock = new Mock<IUserRepository>();
this.CommentRepositoryMock = new Mock<ICommentRepository>();
this.MapperMock = new Mock<IMapper>();
- this.PostService = new PostService(this.UserRepositoryMock.Object, this.PostRepositoryMock.Object, this.CommentRepositoryMock.Object, this.MapperMock.Object);
+ this.PostService = new PostService(this.CloudServiceMock.Object, this.UserRepositoryMock.Object, this.PostRepositoryMock.Object, this.CommentRepositoryMock.Object, this.MapperMock.Object);
}
#endregion
- #region Comment
- #region AddComment
- [Test]
- public async Task AddComment_ReturnsNonEmptyGuid_WhenEntityIsAddedSuccessfully()
- {
- Guid id = Guid.NewGuid();
- User creator = new User { Id = Guid.NewGuid() };
- CreateCommentServiceModel createCommentServiceModel = new CreateCommentServiceModel
- {
- Message = MESSAGE
- };
- Comment comment = new Comment
- {
- Message = MESSAGE,
- Id = id,
- };
-
- this.CommentRepositoryMock.Setup(p => p.AddAsync(It.IsAny<Comment>())).Returns(Task.FromResult(true));
- this.CommentRepositoryMock.Setup(p => p.GetCommentByIssuerAndTimeCreatedAsync(It.IsAny<Guid>(), It.IsAny<DateTime>())).Returns(Task.FromResult(comment));
- this.PostRepositoryMock.Setup(p => p.DoesPostExist(It.IsAny<Guid>())).Returns(Task.FromResult(true));
- this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(creator));
- this.MapperMock.Setup(p => p.Map<Comment>(It.IsAny<CreateCommentServiceModel>())).Returns(comment);
-
- Guid result = await this.PostService.AddComment(createCommentServiceModel);
-
- Assert.AreEqual(id, result);
- }
-
- [Test]
- public async Task AddComment_ReturnsEmptyGuid_WhenEntityIsNotAddedSuccessfully()
- {
- CreateCommentServiceModel createCommentServiceModel = new CreateCommentServiceModel
- {
- Message = MESSAGE
- };
- Comment comment = new Comment
- {
- Message = MESSAGE,
- };
-
- this.CommentRepositoryMock.Setup(p => p.AddAsync(It.IsAny<Comment>())).Returns(Task.FromResult(false));
- this.PostRepositoryMock.Setup(p => p.DoesPostExist(It.IsAny<Guid>())).Returns(Task.FromResult(true));
- this.MapperMock.Setup(p => p.Map<Comment>(It.IsAny<CreateCommentServiceModel>())).Returns(comment);
-
- Guid result = await this.PostService.AddComment(createCommentServiceModel);
-
- Assert.IsTrue(result == Guid.Empty);
- }
-
- [Test]
- public void AddComment_ThrowsException_WhenPostDoesNotExist()
- {
- const string EXCEPTION_MESSAGE = "Post does not exist!";
-
- CreateCommentServiceModel createCommentServiceModel = new CreateCommentServiceModel
- {
- Message = MESSAGE
- };
-
- Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.PostService.AddComment(createCommentServiceModel), "AddComment does not throw excpeion when the post does not exist");
-
- Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message, "Incorecct exception message");
- }
- #endregion
-
- #region GetCommentById
- [Test]
- public async Task GetCommentById_ReturnsTheComment_WhenItExists()
- {
- Guid creatorId = new Guid();
- User creator = new User { Id = creatorId };
- Comment comment = new Comment
- {
- Message = MESSAGE,
- Creator = creator
- };
- ReadCommentServiceModel commentServiceModel = new ReadCommentServiceModel
- {
- Message = MESSAGE
- };
- User user = new User
- {
- Id = creatorId,
- };
-
- this.CommentRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(comment));
- this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(user));
- this.MapperMock.Setup(p => p.Map<ReadCommentServiceModel>(It.IsAny<Comment>())).Returns(commentServiceModel);
-
- ReadCommentServiceModel result = await this.PostService.GetCommentById(new Guid());
-
- Assert.AreEqual(MESSAGE, result.Message);
- }
-
- [Test]
- public void GetCommentById_ThorwsException_WhenTheUserDoesNotExist()
- {
- const string EXCEPTION_MESSAGE = "The user does not exist";
- Guid creatorId = new Guid();
- User creator = new User { Id = creatorId };
- Comment comment = new Comment
- {
- Message = MESSAGE,
- Creator = creator
- };
-
- this.CommentRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(comment));
-
- Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.PostService.GetCommentById(new Guid()), "GetCommentById does not throw exception when the user does not exist");
-
- Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message);
- }
-
- [Test]
- public void GetCommentById_ThrowsException_WhenCommentDoesNotExist()
- {
- string exceptionMessage = "The comment does not exist";
- Guid creatorId = new Guid();
- User user = new User
- {
- Id = creatorId,
- };
-
- this.CommentRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult<Comment>(null));
- this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(user));
-
- Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.PostService.GetCommentById(new Guid()));
-
- Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message");
- }
- #endregion
-
- #region UpdateComment
- [Test]
- public async Task UpdateComment_ReturnsTheIdOfTheComment_WhenUpdatedSuccessfully()
- {
- Guid id = Guid.NewGuid();
- Comment comment = new Comment
- {
- Id = id,
- Message = MESSAGE
- };
- UpdateCommentServiceModel updateCommentServiceModel = new UpdateCommentServiceModel
- {
- CommentId = id,
- NewMessage = MESSAGE
- };
-
- this.CommentRepositoryMock.Setup(p => p.DoesCommentExist(It.IsAny<Guid>())).Returns(Task.FromResult(true));
- this.CommentRepositoryMock.Setup(p => p.EditAsync(It.IsAny<Guid>(), It.IsAny<Comment>())).Returns(Task.FromResult(true));
- this.CommentRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(comment));
- this.MapperMock.Setup(p => p.Map<Comment>(It.IsAny<UpdateCommentServiceModel>())).Returns(comment);
-
- Guid result = await this.PostService.UpdateComment(updateCommentServiceModel);
-
- Assert.AreEqual(updateCommentServiceModel.CommentId, result);
- }
-
- [Test]
- public async Task UpdateComment_ReturnsEmptyId_WhenTheCommentIsNotUpdatedSuccessfully()
- {
- Comment comment = new Comment
- {
- Message = MESSAGE
- };
- UpdateCommentServiceModel updateCommentServiceModel = new UpdateCommentServiceModel
- {
- CommentId = Guid.NewGuid(),
- NewMessage = MESSAGE
- };
-
- this.CommentRepositoryMock.Setup(p => p.DoesCommentExist(It.IsAny<Guid>())).Returns(Task.FromResult(true));
- this.CommentRepositoryMock.Setup(p => p.EditAsync(It.IsAny<Guid>(), It.IsAny<Comment>())).Returns(Task.FromResult(false));
- this.MapperMock.Setup(p => p.Map<Comment>(It.IsAny<UpdateCommentServiceModel>())).Returns(comment);
-
- Guid result = await this.PostService.UpdateComment(updateCommentServiceModel);
-
- Assert.AreEqual(Guid.Empty, result);
- }
-
- [Test]
- public void UpdateComment_ThrowsArgumentException_WhenCommentDoesNotExist()
- {
- string exceptionMessage = "Comment does not exist!";
- UpdateCommentServiceModel updateCommentServiceModel = new UpdateCommentServiceModel
- {
- };
-
- this.CommentRepositoryMock.Setup(p => p.DoesCommentExist(It.IsAny<Guid>())).Returns(Task.FromResult(false));
-
- Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.PostService.UpdateComment(updateCommentServiceModel));
-
- Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message");
- }
- #endregion
-
- #region DeleteComment
- [Test]
- [TestCase(true)]
- [TestCase(false)]
- public async Task DeleteComment_ShouldReturnIfDeletionIsSuccessfull_WhenCommentExists(bool shouldPass)
- {
- Guid id = new Guid();
- Comment comment = new Comment();
-
- this.CommentRepositoryMock.Setup(p => p.DoesCommentExist(It.IsAny<Guid>())).Returns(Task.FromResult(true));
- this.CommentRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(comment));
- this.CommentRepositoryMock.Setup(p => p.DeleteAsync(It.IsAny<Comment>())).Returns(Task.FromResult(shouldPass));
-
- bool result = await this.PostService.DeleteComment(id);
-
- Assert.AreEqual(shouldPass, result);
- }
-
- [Test]
- public void DeleteComment_ThrowsException_WhenCommentDoesNotExist()
- {
- string exceptionMessage = "Comment does not exist!";
- Guid id = new Guid();
-
- this.CommentRepositoryMock.Setup(p => p.DoesCommentExist(It.IsAny<Guid>())).Returns(Task.FromResult(false));
-
- Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.PostService.DeleteComment(id));
-
- Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message");
- }
- #endregion
-
- #region ValidateJwtForComment
- //TO DO: Implement
- #endregion
- #endregion
-
- #region Posts
#region CreatePost
[Test]
public async Task CreatePost_ReturnsIdOfThePost_WhenItIsSuccessfullyCreated()
@@ -275,11 +45,12 @@ namespace DevHive.Services.Tests
User creator = new User { Id = Guid.NewGuid() };
CreatePostServiceModel createPostServiceModel = new CreatePostServiceModel
{
+ Files = new List<IFormFile>()
};
Post post = new Post
{
Message = MESSAGE,
- Id = postId
+ Id = postId,
};
this.PostRepositoryMock.Setup(p => p.AddAsync(It.IsAny<Post>())).Returns(Task.FromResult(true));
@@ -298,6 +69,7 @@ namespace DevHive.Services.Tests
{
CreatePostServiceModel createPostServiceModel = new CreatePostServiceModel
{
+ Files = new List<IFormFile>()
};
Post post = new Post
{
@@ -411,7 +183,8 @@ namespace DevHive.Services.Tests
UpdatePostServiceModel updatePostServiceModel = new UpdatePostServiceModel
{
PostId = id,
- NewMessage = MESSAGE
+ NewMessage = MESSAGE,
+ Files = new List<IFormFile>()
};
this.PostRepositoryMock.Setup(p => p.DoesPostExist(It.IsAny<Guid>())).Returns(Task.FromResult(true));
@@ -434,7 +207,8 @@ namespace DevHive.Services.Tests
UpdatePostServiceModel updatePostServiceModel = new UpdatePostServiceModel
{
PostId = Guid.NewGuid(),
- NewMessage = MESSAGE
+ NewMessage = MESSAGE,
+ Files = new List<IFormFile>()
};
this.PostRepositoryMock.Setup(p => p.DoesPostExist(It.IsAny<Guid>())).Returns(Task.FromResult(true));
@@ -493,10 +267,5 @@ namespace DevHive.Services.Tests
Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message");
}
#endregion
-
- #region ValidateJwtForPost
- //TO DO: Implement
- #endregion
- #endregion
}
}