diff options
| author | Kamen Mladenov <kamen.d.mladenov@protonmail.com> | 2021-04-09 19:51:35 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-04-09 19:51:35 +0300 |
| commit | 233f38915ba0079079233eff55434ef349c05c45 (patch) | |
| tree | 6c5f69017865bcab87355e910c87339453da1406 /src/DevHive.Tests | |
| parent | f4a70c6430db923af9fa9958a11c2d6612cb52cc (diff) | |
| parent | a992357efcf1bc1ece81b95ecee5e05a0b73bfdc (diff) | |
| download | DevHive-233f38915ba0079079233eff55434ef349c05c45.tar DevHive-233f38915ba0079079233eff55434ef349c05c45.tar.gz DevHive-233f38915ba0079079233eff55434ef349c05c45.zip | |
Merge pull request #28 from Team-Kaleidoscope/devHEADv0.2mainheroku/main
Second stage: Complete
Diffstat (limited to 'src/DevHive.Tests')
24 files changed, 0 insertions, 4441 deletions
diff --git a/src/DevHive.Tests/DevHive.Data.Tests/CommentRepository.Tests.cs b/src/DevHive.Tests/DevHive.Data.Tests/CommentRepository.Tests.cs deleted file mode 100644 index 9cbb43b..0000000 --- a/src/DevHive.Tests/DevHive.Data.Tests/CommentRepository.Tests.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Threading.Tasks; -using DevHive.Data.Models; -using DevHive.Data.Repositories; -using Microsoft.EntityFrameworkCore; -using NUnit.Framework; - -namespace DevHive.Data.Tests -{ - [TestFixture] - public class CommentRepositoryTests - { - private const string COMMENT_MESSAGE = "Comment message"; - - protected DevHiveContext Context { get; set; } - - protected CommentRepository CommentRepository { get; set; } - - #region Setups - [SetUp] - public void Setup() - { - var optionsBuilder = new DbContextOptionsBuilder<DevHiveContext>() - .UseInMemoryDatabase(databaseName: "DevHive_Test_Database"); - - this.Context = new DevHiveContext(optionsBuilder.Options); - - CommentRepository = new CommentRepository(Context); - } - - [TearDown] - public void TearDown() - { - this.Context.Database.EnsureDeleted(); - } - #endregion - - #region GetCommentByIssuerAndTimeCreatedAsync - [Test] - public async Task GetCommentByCreatorAndTimeCreatedAsync_ReturnsTheCorrectComment_IfItExists() - { - Comment comment = await this.AddEntity(); - - Comment resultComment = await this.CommentRepository.GetCommentByIssuerAndTimeCreatedAsync(comment.Creator.Id, comment.TimeCreated); - - Assert.AreEqual(comment.Id, resultComment.Id, "GetCommentByIssuerAndTimeCreatedAsync does not return the corect comment when it exists"); - } - - [Test] - public async Task GetPostByCreatorAndTimeCreatedAsync_ReturnsNull_IfThePostDoesNotExist() - { - Comment comment = await this.AddEntity(); - - Comment resultComment = await this.CommentRepository.GetCommentByIssuerAndTimeCreatedAsync(Guid.Empty, DateTime.Now); - - Assert.IsNull(resultComment, "GetCommentByIssuerAndTimeCreatedAsync does not return null when the comment does not exist"); - } - #endregion - - #region DoesCommentExist - [Test] - public async Task DoesCommentExist_ReturnsTrue_WhenTheCommentExists() - { - Comment comment = await this.AddEntity(); - - bool result = await this.CommentRepository.DoesCommentExist(comment.Id); - - Assert.IsTrue(result, "DoesCommentExist does not return true whenm the Comment exists"); - } - - [Test] - public async Task DoesCommentExist_ReturnsFalse_WhenTheCommentDoesNotExist() - { - bool result = await this.CommentRepository.DoesCommentExist(Guid.Empty); - - Assert.IsFalse(result, "DoesCommentExist does not return false whenm the Comment" + - " does not exist"); - } - #endregion - - #region HelperMethods - private async Task<Comment> AddEntity(string name = COMMENT_MESSAGE) - { - User creator = new User { Id = Guid.NewGuid() }; - Comment comment = new Comment - { - Message = COMMENT_MESSAGE, - Creator = creator, - TimeCreated = DateTime.Now - }; - - this.Context.Comments.Add(comment); - await this.Context.SaveChangesAsync(); - - return comment; - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Data.Tests/DevHive.Data.Tests.csproj b/src/DevHive.Tests/DevHive.Data.Tests/DevHive.Data.Tests.csproj deleted file mode 100644 index d320450..0000000 --- a/src/DevHive.Tests/DevHive.Data.Tests/DevHive.Data.Tests.csproj +++ /dev/null @@ -1,25 +0,0 @@ -<Project Sdk="Microsoft.NET.Sdk"> - - <PropertyGroup> - <TargetFramework>net5.0</TargetFramework> - - <IsPackable>false</IsPackable> - </PropertyGroup> - - <ItemGroup> - <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.1" /> - <PackageReference Include="Moq" Version="4.16.0" /> - <PackageReference Include="NUnit" Version="3.13.0" /> - <PackageReference Include="NUnit3TestAdapter" Version="3.17.0" /> - <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" /> - </ItemGroup> - - <ItemGroup> - <ProjectReference Include="..\..\DevHive.Data\DevHive.Data.csproj" /> - </ItemGroup> - - <PropertyGroup> - <EnableNETAnalyzers>true</EnableNETAnalyzers> - <AnalysisLevel>latest</AnalysisLevel> - </PropertyGroup> -</Project> diff --git a/src/DevHive.Tests/DevHive.Data.Tests/FeedRepository.Tests.cs b/src/DevHive.Tests/DevHive.Data.Tests/FeedRepository.Tests.cs deleted file mode 100644 index f134bf3..0000000 --- a/src/DevHive.Tests/DevHive.Data.Tests/FeedRepository.Tests.cs +++ /dev/null @@ -1,119 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using DevHive.Data.Models; -using DevHive.Data.Repositories; -using Microsoft.EntityFrameworkCore; -using NUnit.Framework; - -namespace DevHive.Data.Tests -{ - [TestFixture] - public class FeedRepositoryTests - { - protected DevHiveContext Context { get; set; } - - protected FeedRepository FeedRepository { get; set; } - - #region Setups - [SetUp] - public void Setup() - { - var optionsBuilder = new DbContextOptionsBuilder<DevHiveContext>() - .UseInMemoryDatabase(databaseName: "DevHive_Test_Database"); - - this.Context = new DevHiveContext(optionsBuilder.Options); - - FeedRepository = new FeedRepository(Context); - } - - [TearDown] - public void TearDown() - { - this.Context.Database.EnsureDeleted(); - } - #endregion - - #region GetFriendsPosts - [Test] - public async Task GetFriendsPosts_ReturnsListOfPosts_WhenTheyExist() - { - User dummyUser = this.CreateDummyUser(); - List<User> friendsList = new List<User>(); - friendsList.Add(dummyUser); - - DateTime dateTime = new DateTime(3000, 05, 09, 9, 15, 0); - Console.WriteLine(dateTime.ToFileTime()); - - Post dummyPost = this.CreateDummyPost(dummyUser); - Post anotherDummnyPost = this.CreateDummyPost(dummyUser); - - const int PAGE_NUMBER = 1; - const int PAGE_SIZE = 10; - - List<Post> resultList = await this.FeedRepository.GetFriendsPosts(friendsList, dateTime, PAGE_NUMBER, PAGE_SIZE); - - Assert.GreaterOrEqual(2, resultList.Count, "GetFriendsPosts does not return all correct posts"); - } - - [Test] - public async Task GetFriendsPosts_ReturnsNull_WhenNoSuitablePostsExist() - { - User dummyUser = this.CreateDummyUser(); - List<User> friendsList = new List<User>(); - friendsList.Add(dummyUser); - - DateTime dateTime = new DateTime(3000, 05, 09, 9, 15, 0); - - const int PAGE_NUMBER = 1; - const int PAGE_SIZE = 10; - - List<Post> resultList = await this.FeedRepository.GetFriendsPosts(friendsList, dateTime, PAGE_NUMBER, PAGE_SIZE); - - Assert.LessOrEqual(0, resultList.Count, "GetFriendsPosts does not return all correct posts"); - } - #endregion - - #region HelperMethods - private User CreateDummyUser() - { - HashSet<Role> roles = new() - { - new Role() - { - Id = Guid.NewGuid(), - Name = Role.DefaultRole - }, - }; - - return new() - { - Id = Guid.NewGuid(), - UserName = "pioneer10", - FirstName = "Spas", - LastName = "Spasov", - Email = "abv@abv.bg", - Roles = roles - }; - } - - private Post CreateDummyPost(User poster) - { - const string POST_MESSAGE = "random message"; - Guid id = Guid.NewGuid(); - Post post = new Post - { - Id = id, - Message = POST_MESSAGE, - Creator = poster, - TimeCreated = new DateTime(2000, 05, 09, 9, 15, 0) - }; - - this.Context.Posts.Add(post); - this.Context.SaveChanges(); - - return post; - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs b/src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs deleted file mode 100644 index f02a1e4..0000000 --- a/src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs +++ /dev/null @@ -1,116 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using DevHive.Data.Models; -using DevHive.Data.Repositories; -using Microsoft.EntityFrameworkCore; -using NUnit.Framework; - -namespace DevHive.Data.Tests -{ - [TestFixture] - public class LenguageRepositoryTests - { - private const string LANGUAGE_NAME = "Language test name"; - protected DevHiveContext Context { get; set; } - protected LanguageRepository LanguageRepository { get; set; } - - #region Setups - [SetUp] - public void Setup() - { - var optionsBuilder = new DbContextOptionsBuilder<DevHiveContext>() - .UseInMemoryDatabase(databaseName: "DevHive_Test_Database"); - - this.Context = new DevHiveContext(optionsBuilder.Options); - - LanguageRepository = new LanguageRepository(Context); - } - - [TearDown] - public void TearDown() - { - this.Context.Database.EnsureDeleted(); - } - #endregion - - #region GetByNameAsync - [Test] - public async Task GetByNameAsync_ReturnsTheCorrectLanguage_IfItExists() - { - await AddEntity(); - - Language language = this.Context.Languages.Where(x => x.Name == LANGUAGE_NAME).ToList().FirstOrDefault(); - - Language languageResult = await this.LanguageRepository.GetByNameAsync(LANGUAGE_NAME); - - Assert.AreEqual(language.Id, languageResult.Id); - } - - [Test] - public async Task GetByNameAsync_ReturnsNull_IfTechnologyDoesNotExists() - { - Language languageResult = await this.LanguageRepository.GetByNameAsync(LANGUAGE_NAME); - - Assert.IsNull(languageResult); - } - #endregion - - #region DoesLanguageExistAsync - [Test] - public async Task DoesLanguageExist_ReturnsTrue_IfIdExists() - { - await AddEntity(); - Language language = this.Context.Languages.Where(x => x.Name == LANGUAGE_NAME).ToList().FirstOrDefault(); - - Guid id = language.Id; - - bool result = await this.LanguageRepository.DoesLanguageExistAsync(id); - - Assert.IsTrue(result, "DoesLanguageExistAsync returns flase when language exists"); - } - - [Test] - public async Task DoesLanguageExist_ReturnsFalse_IfIdDoesNotExists() - { - Guid id = Guid.NewGuid(); - - bool result = await this.LanguageRepository.DoesLanguageExistAsync(id); - - Assert.IsFalse(result, "DoesLanguageExistAsync returns true when language does not exist"); - } - #endregion - - #region DoesTechnologyNameExistAsync - [Test] - public async Task DoesLanguageNameExist_ReturnsTrue_IfLanguageExists() - { - await AddEntity(); - - bool result = await this.LanguageRepository.DoesLanguageNameExistAsync(LANGUAGE_NAME); - - Assert.IsTrue(result, "DoesLanguageNameExists returns true when language name does not exist"); - } - - [Test] - public async Task DoesLanguageNameExist_ReturnsFalse_IfLanguageDoesNotExists() - { - bool result = await this.LanguageRepository.DoesLanguageNameExistAsync(LANGUAGE_NAME); - - Assert.False(result, "DoesTechnologyNameExistAsync returns true when language name does not exist"); - } - #endregion - - #region HelperMethods - private async Task AddEntity(string name = LANGUAGE_NAME) - { - Language language = new Language - { - Name = name - }; - - await this.LanguageRepository.AddAsync(language); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Data.Tests/PostRepository.Tests.cs b/src/DevHive.Tests/DevHive.Data.Tests/PostRepository.Tests.cs deleted file mode 100644 index 6dacf0b..0000000 --- a/src/DevHive.Tests/DevHive.Data.Tests/PostRepository.Tests.cs +++ /dev/null @@ -1,145 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using DevHive.Data.Interfaces.Repositories; -using DevHive.Data.Models; -using DevHive.Data.RelationModels; -using DevHive.Data.Repositories; -using Microsoft.EntityFrameworkCore; -using Moq; -using NUnit.Framework; - -namespace DevHive.Data.Tests -{ - [TestFixture] - public class PostRepositoryTests - { - private const string POST_MESSAGE = "Post test message"; - - private DevHiveContext Context { get; set; } - - private Mock<IUserRepository> UserRepository { get; set; } - - private PostRepository PostRepository { get; set; } - - #region Setups - [SetUp] - public void Setup() - { - var optionsBuilder = new DbContextOptionsBuilder<DevHiveContext>() - .UseInMemoryDatabase(databaseName: "DevHive_Test_Database"); - - this.Context = new DevHiveContext(optionsBuilder.Options); - - this.UserRepository = new Mock<IUserRepository>(); - - PostRepository = new PostRepository(Context, this.UserRepository.Object); - } - - [TearDown] - public void TearDown() - { - this.Context.Database.EnsureDeleted(); - } - #endregion - - #region AddNewPostToCreator - // [Test] - // public async Task AddNewPostToCreator_ReturnsTrue_WhenNewPostIsAddedToCreator() - // { - // Post post = await this.AddEntity(); - // User user = new User { Id = Guid.NewGuid() }; - // - // this.UserRepository.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(user)); - // - // bool result = await this.PostRepository.AddNewPostToCreator(user.Id, post); - // - // Assert.IsTrue(result, "AddNewPostToCreator does not return true when Post Is Added To Creator successfully"); - // } - #endregion - - #region GetByIdAsync - [Test] - public async Task GetByNameAsync_ReturnsTheCorrectPost_IfItExists() - { - Post post = await AddEntity(); - - Post resultTechnology = await this.PostRepository.GetByIdAsync(post.Id); - - Assert.AreEqual(post.Id, resultTechnology.Id, "GetByIdAsync does not return the correct post"); - } - - [Test] - public async Task GetByIdAsync_ReturnsNull_IfTechnologyDoesNotExists() - { - Post resultPost = await this.PostRepository.GetByIdAsync(Guid.NewGuid()); - - Assert.IsNull(resultPost); - } - #endregion - - #region GetPostByCreatorAndTimeCreatedAsync - [Test] - public async Task GetPostByCreatorAndTimeCreatedAsync_ReturnsTheCorrectPost_IfItExists() - { - Post post = await this.AddEntity(); - - Post resultPost = await this.PostRepository.GetPostByCreatorAndTimeCreatedAsync(post.Creator.Id, post.TimeCreated); - - Assert.AreEqual(post.Id, resultPost.Id, "GetPostByCreatorAndTimeCreatedAsync does not return the corect post when it exists"); - } - - [Test] - public async Task GetPostByCreatorAndTimeCreatedAsync_ReturnsNull_IfThePostDoesNotExist() - { - Post post = await this.AddEntity(); - - Post resutPost = await this.PostRepository.GetPostByCreatorAndTimeCreatedAsync(Guid.Empty, DateTime.Now); - - Assert.IsNull(resutPost, "GetPostByCreatorAndTimeCreatedAsync does not return null when the post does not exist"); - } - #endregion - - #region DoesPostExist - [Test] - public async Task DoesPostExist_ReturnsTrue_WhenThePostExists() - { - Post post = await this.AddEntity(); - - bool result = await this.PostRepository.DoesPostExist(post.Id); - - Assert.IsTrue(result, "DoesPostExist does not return true whenm the Post exists"); - } - - [Test] - public async Task DoesPostExist_ReturnsFalse_WhenThePostDoesNotExist() - { - bool result = await this.PostRepository.DoesPostExist(Guid.Empty); - - Assert.IsFalse(result, "DoesPostExist does not return false whenm the Post does not exist"); - } - #endregion - - #region HelperMethods - private async Task<Post> AddEntity(string name = POST_MESSAGE) - { - User creator = new User { Id = Guid.NewGuid() }; - await this.Context.Users.AddAsync(creator); - Post post = new Post - { - Message = POST_MESSAGE, - Id = Guid.NewGuid(), - Creator = creator, - TimeCreated = DateTime.Now, - Attachments = new List<PostAttachments> { new PostAttachments { FileUrl = "kur" }, new PostAttachments { FileUrl = "za" }, new PostAttachments { FileUrl = "tva" } }, - Comments = new List<Comment>() - }; - - await this.Context.Posts.AddAsync(post); - await this.Context.SaveChangesAsync(); - - return post; - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Data.Tests/RoleRepository.Tests.cs b/src/DevHive.Tests/DevHive.Data.Tests/RoleRepository.Tests.cs deleted file mode 100644 index 7f62c24..0000000 --- a/src/DevHive.Tests/DevHive.Data.Tests/RoleRepository.Tests.cs +++ /dev/null @@ -1,119 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using DevHive.Data.Models; -using DevHive.Data.Repositories; -using Microsoft.EntityFrameworkCore; -using NUnit.Framework; - -namespace DevHive.Data.Tests -{ - [TestFixture] - public class RoleRepositoryTests - { - private const string ROLE_NAME = "Role test name"; - - protected DevHiveContext Context { get; set; } - - protected RoleRepository RoleRepository { get; set; } - - #region Setups - [SetUp] - public void Setup() - { - var optionsBuilder = new DbContextOptionsBuilder<DevHiveContext>() - .UseInMemoryDatabase(databaseName: "DevHive_Test_Database"); - - this.Context = new DevHiveContext(optionsBuilder.Options); - - RoleRepository = new RoleRepository(Context); - } - - [TearDown] - public void TearDown() - { - this.Context.Database.EnsureDeleted(); - } - #endregion - - #region GetByNameAsync - [Test] - public async Task GetByNameAsync_ReturnsTheRole_WhenItExists() - { - Role role = await this.AddEntity(); - - Role resultRole = await this.RoleRepository.GetByNameAsync(role.Name); - - Assert.AreEqual(role.Id, resultRole.Id, "GetByNameAsync does not return the correct role"); - } - - [Test] - public async Task GetByNameAsync_ReturnsNull_WhenTheRoleDoesNotExist() - { - Role resultRole = await this.RoleRepository.GetByNameAsync(ROLE_NAME); - - Assert.IsNull(resultRole, "GetByNameAsync does not return when the role does not exist"); - } - #endregion - - #region DoesNameExist - [Test] - public async Task DoesNameExist_ReturnsTrue_WhenTheNameExists() - { - Role role = await this.AddEntity(); - - bool result = await this.RoleRepository.DoesNameExist(role.Name); - - Assert.IsTrue(result, "DoesNameExist returns false when the role name exist"); - } - - [Test] - public async Task DoesNameExist_ReturnsFalse_WhenTheNameDoesNotExist() - { - bool result = await this.RoleRepository.DoesNameExist(ROLE_NAME); - - Assert.IsFalse(result, "DoesNameExist returns false when the role name exist"); - } - #endregion - - #region DoesRoleExist - [Test] - public async Task DoesRoleExist_ReturnsTrue_IfIdExists() - { - await AddEntity(); - Role role = this.Context.Roles.Where(x => x.Name == ROLE_NAME).ToList().FirstOrDefault(); - Guid id = role.Id; - - bool result = await this.RoleRepository.DoesRoleExist(id); - - Assert.IsTrue(result, "DoesRoleExistAsync returns flase when role exists"); - } - - [Test] - public async Task DoesRoleExist_ReturnsFalse_IfIdDoesNotExists() - { - Guid id = Guid.NewGuid(); - - bool result = await this.RoleRepository.DoesRoleExist(id); - - Assert.IsFalse(result, "DoesRoleExist returns true when role does not exist"); - } - #endregion - - #region HelperMethods - private async Task<Role> AddEntity(string name = ROLE_NAME) - { - Role role = new Role - { - Id = Guid.NewGuid(), - Name = name - }; - - this.Context.Roles.Add(role); - await this.Context.SaveChangesAsync(); - - return role; - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs b/src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs deleted file mode 100644 index d25fd3b..0000000 --- a/src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs +++ /dev/null @@ -1,118 +0,0 @@ -using DevHive.Data.Models; -using DevHive.Data.Repositories; -using Microsoft.EntityFrameworkCore; -using NUnit.Framework; -using System; -using System.Linq; -using System.Threading.Tasks; - -namespace DevHive.Data.Tests -{ - [TestFixture] - public class TechnologyRepositoryTests - { - private const string TECHNOLOGY_NAME = "Technology test name"; - - protected DevHiveContext Context { get; set; } - - protected TechnologyRepository TechnologyRepository { get; set; } - - #region Setups - [SetUp] - public void Setup() - { - var optionsBuilder = new DbContextOptionsBuilder<DevHiveContext>() - .UseInMemoryDatabase(databaseName: "DevHive_Test_Database"); - - this.Context = new DevHiveContext(optionsBuilder.Options); - - TechnologyRepository = new TechnologyRepository(Context); - } - - [TearDown] - public void TearDown() - { - this.Context.Database.EnsureDeleted(); - } - #endregion - - #region GetByNameAsync - [Test] - public async Task GetByNameAsync_ReturnsTheCorrectTechnology_IfItExists() - { - await AddEntity(); - - Technology technology = this.Context.Technologies.Where(x => x.Name == TECHNOLOGY_NAME).ToList().FirstOrDefault(); - - Technology resultTechnology = await this.TechnologyRepository.GetByNameAsync(TECHNOLOGY_NAME); - - Assert.AreEqual(technology.Id, resultTechnology.Id); - } - - [Test] - public async Task GetByNameAsync_ReturnsNull_IfTechnologyDoesNotExists() - { - Technology resultTechnology = await this.TechnologyRepository.GetByNameAsync(TECHNOLOGY_NAME); - - Assert.IsNull(resultTechnology); - } - #endregion - - #region DoesTechnologyExistAsync - [Test] - public async Task DoesTechnologyExist_ReturnsTrue_IfIdExists() - { - await AddEntity(); - Technology technology = this.Context.Technologies.Where(x => x.Name == TECHNOLOGY_NAME).ToList().FirstOrDefault(); - Guid id = technology.Id; - - bool result = await this.TechnologyRepository.DoesTechnologyExistAsync(id); - - Assert.IsTrue(result, "DoesTechnologyExistAsync returns flase hwen technology exists"); - } - - [Test] - public async Task DoesTechnologyExist_ReturnsFalse_IfIdDoesNotExists() - { - Guid id = Guid.NewGuid(); - - bool result = await this.TechnologyRepository.DoesTechnologyExistAsync(id); - - Assert.IsFalse(result, "DoesTechnologyExistAsync returns true when technology does not exist"); - } - #endregion - - #region DoesTechnologyNameExistAsync - [Test] - public async Task DoesTechnologyNameExist_ReturnsTrue_IfTechnologyExists() - { - await AddEntity(); - - bool result = await this.TechnologyRepository.DoesTechnologyNameExistAsync(TECHNOLOGY_NAME); - - Assert.IsTrue(result, "DoesTechnologyNameExists returns true when technology name does not exist"); - } - - [Test] - public async Task DoesTechnologyNameExist_ReturnsFalse_IfTechnologyDoesNotExists() - { - bool result = await this.TechnologyRepository.DoesTechnologyNameExistAsync(TECHNOLOGY_NAME); - - Assert.False(result, "DoesTechnologyNameExistAsync returns true when technology name does not exist"); - } - #endregion - - #region HelperMethods - private async Task AddEntity(string name = TECHNOLOGY_NAME) - { - Technology technology = new Technology - { - Name = name - }; - - this.Context.Technologies.Add(technology); - await this.Context.SaveChangesAsync(); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs b/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs deleted file mode 100644 index 43e9a36..0000000 --- a/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs +++ /dev/null @@ -1,350 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using DevHive.Data.Models; -using DevHive.Data.Repositories; -using Microsoft.EntityFrameworkCore; -using NUnit.Framework; - -namespace DevHive.Data.Tests -{ - [TestFixture] - public class UserRepositoryTests - { - private DevHiveContext _context; - private UserRepository _userRepository; - - #region Setups - [SetUp] - public void Setup() - { - var options = new DbContextOptionsBuilder<DevHiveContext>() - .UseInMemoryDatabase("DevHive_UserRepository_Database"); - - this._context = new DevHiveContext(options.Options); - this._userRepository = new UserRepository(_context); - } - - [TearDown] - public async Task Teardown() - { - await this._context.Database.EnsureDeletedAsync(); - } - #endregion - - #region QueryAll - // [Test] - // public async Task QueryAll_ShouldReturnAllUsersFromDatabase_WhenTheyExist() - // { - // //Arrange - // User dummyUserOne = CreateDummyUser(); - // User dummyUserTwo = CreateAnotherDummyUser(); - // - // await this._userRepository.AddAsync(dummyUserOne); - // await this._userRepository.AddAsync(dummyUserTwo); - // - // //Act - // IEnumerable<User> users = this._userRepository.QueryAll(); - // - // //Assert - // Assert.AreEqual(2, users.Count(), "Method doesn't return all instances of user"); - // } - - // [Test] - // public void QueryAll_ReturnsNull_WhenNoUsersExist() - // { - // IEnumerable<User> users = this._userRepository.QueryAll(); - // - // Assert.AreEqual(0, users.Count(), "Method returns Users when there are non"); - // } - #endregion - - #region EditAsync - [Test] - public async Task EditAsync_ReturnsTrue_WhenUserIsUpdatedSuccessfully() - { - User oldUser = this.CreateDummyUser(); - this._context.Users.Add(oldUser); - await this._context.SaveChangesAsync(); - - oldUser.UserName = "SuperSecretUserName"; - bool result = await this._userRepository.EditAsync(oldUser.Id, oldUser); - - Assert.IsTrue(result, "EditAsync does not return true when User is updated successfully"); - } - #endregion - - #region GetByIdAsync - [Test] - public async Task GetByIdAsync_ReturnsTheUse_WhenItExists() - { - User dummyUserOne = CreateDummyUser(); - await this._userRepository.AddAsync(dummyUserOne); - - User resultUser = await this._userRepository.GetByIdAsync(dummyUserOne.Id); - - Assert.AreEqual(dummyUserOne.UserName, resultUser.UserName); - } - - [Test] - public async Task GetByIdAsync_ReturnsNull_WhenUserDoesNotExist() - { - Guid id = Guid.NewGuid(); - - User resultUser = await this._userRepository.GetByIdAsync(id); - - Assert.IsNull(resultUser); - } - #endregion - - #region GetByUsernameAsync - [Test] - public async Task GetByUsernameAsync_ReturnsUserFromDatabase_WhenItExists() - { - //Arrange - User dummyUser = CreateDummyUser(); - await this._userRepository.AddAsync(dummyUser); - string username = dummyUser.UserName; - - //Act - User user = await this._userRepository.GetByUsernameAsync(username); - - //Assert - Assert.AreEqual(dummyUser.Id, user.Id, "Method doesn't get the proper user from database"); - } - - [Test] - public async Task GetByUsernameAsync_ReturnsNull_WhenUserDoesNotExist() - { - //Act - User user = await this._userRepository.GetByUsernameAsync(null); - - //Assert - Assert.IsNull(user, "Method returns user when it does not exist"); - } - #endregion - - #region DoesUserExistAsync - [Test] - public async Task DoesUserExistAsync_ReturnsTrue_WhenUserExists() - { - User dummyUser = this.CreateDummyUser(); - this._context.Users.Add(dummyUser); - await this._context.SaveChangesAsync(); - - bool result = await this._userRepository.DoesUserExistAsync(dummyUser.Id); - - Assert.IsTrue(result, "DoesUserExistAsync does not return true when user exists"); - } - - [Test] - public async Task DoesUserExistAsync_ReturnsFalse_WhenUserDoesNotExist() - { - Guid id = Guid.NewGuid(); - - bool result = await this._userRepository.DoesUserExistAsync(id); - - Assert.IsFalse(result, "DoesUserExistAsync does not return false when user does not exist"); - } - #endregion - - #region DoesUserNameExistAsync - [Test] - public async Task DoesUsernameExistAsync_ReturnsTrue_WhenUserWithTheNameExists() - { - User dummyUser = this.CreateDummyUser(); - this._context.Users.Add(dummyUser); - await this._context.SaveChangesAsync(); - - bool result = await this._userRepository.DoesUsernameExistAsync(dummyUser.UserName); - - Assert.IsTrue(result, "DoesUserNameExistAsync does not return true when username exists"); - } - - [Test] - public async Task DoesUsernameExistAsync_ReturnsFalse_WhenUserWithTheNameDoesNotExist() - { - string userName = "Fake name"; - - bool result = await this._userRepository.DoesUsernameExistAsync(userName); - - Assert.IsFalse(result, "DoesUserNameExistAsync does not return false when username does not exist"); - } - #endregion - - #region DoesEmailExistAsync - [Test] - public async Task DoesEmailExistAsync_ReturnsTrue_WhenUserWithTheEmailExists() - { - User dummyUser = this.CreateDummyUser(); - this._context.Users.Add(dummyUser); - await this._context.SaveChangesAsync(); - - bool result = await this._userRepository.DoesEmailExistAsync(dummyUser.Email); - - Assert.IsTrue(result, "DoesUserNameExistAsync does not return true when email exists"); - } - - [Test] - public async Task DoesEmailExistAsync_ReturnsFalse_WhenUserWithTheEmailDoesNotExist() - { - string email = "Fake email"; - - bool result = await this._userRepository.DoesUsernameExistAsync(email); - - Assert.IsFalse(result, "DoesUserNameExistAsync does not return false when email does not exist"); - } - #endregion - - #region DoesUserHaveThisFriendAsync - //[Test] - //public async Task DoesUserHaveThisFriendAsync_ReturnsTrue_WhenUserHasTheGivenFriend() - //{ - // User dummyUser = this.CreateDummyUser(); - // User anotherDummyUser = this.CreateAnotherDummyUser(); - // HashSet<User> friends = new HashSet<User> - // { - // anotherDummyUser - // }; - // dummyUser.Friends = friends; - - // this._context.Users.Add(dummyUser); - // this._context.Users.Add(anotherDummyUser); - // await this._context.SaveChangesAsync(); - - // bool result = await this._userRepository.DoesUserHaveThisFriendAsync(dummyUser.Id, anotherDummyUser.Id); - - // Assert.IsTrue(result, "DoesUserHaveThisFriendAsync does not return true when user has the given friend"); - //} - - // [Test] - // public async Task DoesUserHaveThisFriendAsync_ReturnsFalse_WhenUserDoesNotHaveTheGivenFriend() - // { - // User dummyUser = this.CreateDummyUser(); - // User anotherDummyUser = this.CreateAnotherDummyUser(); - // - // this._context.Users.Add(dummyUser); - // this._context.Users.Add(anotherDummyUser); - // await this._context.SaveChangesAsync(); - // - // bool result = await this._userRepository.DoesUserHaveThisFriendAsync(dummyUser.Id, anotherDummyUser.Id); - // - // Assert.IsFalse(result, "DoesUserHaveThisFriendAsync does not return false when user des not have the given friend"); - // } - #endregion - - #region DoesUserHaveThisUsername - [Test] - public async Task DoesUserHaveThisUsername_ReturnsTrue_WhenUserHasTheGivenUsername() - { - User dummyUser = this.CreateDummyUser(); - this._context.Users.Add(dummyUser); - await this._context.SaveChangesAsync(); - - bool result = this._userRepository.DoesUserHaveThisUsername(dummyUser.Id, dummyUser.UserName); - - Assert.IsTrue(result, "DoesUserHaveThisUsername does not return true when the user has the given name"); - } - - [Test] - public async Task DoesUserHaveThisUsername_ReturnsFalse_WhenUserDoesntHaveTheGivenUsername() - { - string username = "Fake username"; - User dummyUser = this.CreateDummyUser(); - this._context.Users.Add(dummyUser); - await this._context.SaveChangesAsync(); - - bool result = this._userRepository.DoesUserHaveThisUsername(dummyUser.Id, username); - - Assert.IsFalse(result, "DoesUserNameExistAsync does not return false when user doesnt have the given name"); - } - #endregion - - #region HelperMethods - private User CreateDummyUser() - { - HashSet<Language> languages = new() - { - new Language() - { - Id = Guid.NewGuid(), - Name = "csharp" - }, - }; - - HashSet<Technology> technologies = new() - { - new Technology() - { - Id = Guid.NewGuid(), - Name = "ASP.NET Core" - }, - }; - - HashSet<Role> roles = new() - { - new Role() - { - Id = Guid.NewGuid(), - Name = Role.DefaultRole - }, - }; - - return new() - { - Id = Guid.NewGuid(), - UserName = "dummyUser", - FirstName = "Spas", - LastName = "Spasov", - Email = "abv@abv.bg", - Languages = languages, - Technologies = technologies, - Roles = roles - }; - } - - private User CreateAnotherDummyUser() - { - HashSet<Language> languages = new() - { - new Language() - { - Id = Guid.NewGuid(), - Name = "typescript" - }, - }; - - HashSet<Technology> technologies = new() - { - new Technology() - { - Id = Guid.NewGuid(), - Name = "Angular" - }, - }; - - HashSet<Role> roles = new() - { - new Role() - { - Id = Guid.NewGuid(), - Name = Role.DefaultRole - }, - }; - - return new() - { - Id = Guid.NewGuid(), - UserName = "anotherDummyUser", - FirstName = "Alex", - LastName = "Spiridonov", - Email = "a_spiridonov@abv.bg", - Languages = languages, - Technologies = technologies, - Roles = roles - }; - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Services.Tests/CommentService.Tests.cs b/src/DevHive.Tests/DevHive.Services.Tests/CommentService.Tests.cs deleted file mode 100644 index ac022ea..0000000 --- a/src/DevHive.Tests/DevHive.Services.Tests/CommentService.Tests.cs +++ /dev/null @@ -1,262 +0,0 @@ -using System; -using System.Threading.Tasks; -using AutoMapper; -using DevHive.Data.Interfaces.Repositories; -using DevHive.Data.Models; -using DevHive.Services.Models.Comment; -using DevHive.Services.Services; -using Moq; -using NUnit.Framework; - -namespace DevHive.Services.Tests -{ - [TestFixture] - public class CommentServiceTests - { - private const string MESSAGE = "Gosho Trapov"; - private Mock<IUserRepository> UserRepositoryMock { get; set; } - private Mock<IPostRepository> PostRepositoryMock { get; set; } - private Mock<ICommentRepository> CommentRepositoryMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private CommentService CommentService { get; set; } - - #region Setup - [SetUp] - public void Setup() - { - this.UserRepositoryMock = new Mock<IUserRepository>(); - this.PostRepositoryMock = new Mock<IPostRepository>(); - this.CommentRepositoryMock = new Mock<ICommentRepository>(); - this.MapperMock = new Mock<IMapper>(); - this.CommentService = new CommentService(this.UserRepositoryMock.Object, this.PostRepositoryMock.Object, this.CommentRepositoryMock.Object, this.MapperMock.Object); - } - #endregion - - #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.CommentService.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.CommentService.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.CommentService.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.CommentService.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.CommentService.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.CommentService.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.CommentService.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.CommentService.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.CommentService.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.CommentService.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.CommentService.DeleteComment(id)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Services.Tests/DevHive.Services.Tests.csproj b/src/DevHive.Tests/DevHive.Services.Tests/DevHive.Services.Tests.csproj deleted file mode 100644 index ce5cb62..0000000 --- a/src/DevHive.Tests/DevHive.Services.Tests/DevHive.Services.Tests.csproj +++ /dev/null @@ -1,25 +0,0 @@ -<Project Sdk="Microsoft.NET.Sdk"> - - <PropertyGroup> - <TargetFramework>net5.0</TargetFramework> - - <IsPackable>false</IsPackable> - </PropertyGroup> - - <ItemGroup> - <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.1" /> - <PackageReference Include="Moq" Version="4.16.0" /> - <PackageReference Include="NUnit" Version="3.13.0" /> - <PackageReference Include="NUnit3TestAdapter" Version="3.17.0" /> - <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" /> - </ItemGroup> - - <ItemGroup> - <ProjectReference Include="..\..\DevHive.Services\DevHive.Services.csproj" /> - </ItemGroup> - - <PropertyGroup> - <EnableNETAnalyzers>true</EnableNETAnalyzers> - <AnalysisLevel>latest</AnalysisLevel> - </PropertyGroup> -</Project> diff --git a/src/DevHive.Tests/DevHive.Services.Tests/FeedService.Tests.cs b/src/DevHive.Tests/DevHive.Services.Tests/FeedService.Tests.cs deleted file mode 100644 index e4020c5..0000000 --- a/src/DevHive.Tests/DevHive.Services.Tests/FeedService.Tests.cs +++ /dev/null @@ -1,155 +0,0 @@ -//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; -//using DevHive.Services.Models.Post; -//using DevHive.Services.Services; -//using Moq; -//using NUnit.Framework; - -//namespace DevHive.Services.Tests -//{ -// [TestFixture] -// public class FeedServiceTests -// { -// private Mock<IFeedRepository> FeedRepositoryMock { get; set; } -// private Mock<IUserRepository> UserRepositoryMock { get; set; } -// private Mock<IMapper> MapperMock { get; set; } -// private FeedService FeedService { get; set; } - -// #region SetUps -// [SetUp] -// public void Setup() -// { -// this.FeedRepositoryMock = new Mock<IFeedRepository>(); -// this.UserRepositoryMock = new Mock<IUserRepository>(); -// this.MapperMock = new Mock<IMapper>(); -// this.FeedService = new FeedService(this.FeedRepositoryMock.Object, this.UserRepositoryMock.Object, this.MapperMock.Object); -// } -// #endregion - -// #region GetPage -// [Test] -// public async Task GetPage_ReturnsReadPageServiceModel_WhenSuitablePostsExist() -// { -// GetPageServiceModel getPageServiceModel = new GetPageServiceModel -// { -// UserId = Guid.NewGuid() -// }; - -// User dummyUser = CreateDummyUser(); -// User anotherDummyUser = CreateAnotherDummyUser(); -// HashSet<User> friends = new HashSet<User>(); -// friends.Add(anotherDummyUser); -// dummyUser.Friends = friends; - -// List<Post> posts = new List<Post> -// { -// new Post{ Message = "Message"} -// }; - -// ReadPostServiceModel readPostServiceModel = new ReadPostServiceModel -// { -// PostId = Guid.NewGuid(), -// Message = "Message" -// }; -// List<ReadPostServiceModel> readPostServiceModels = new List<ReadPostServiceModel>(); -// readPostServiceModels.Add(readPostServiceModel); -// ReadPageServiceModel readPageServiceModel = new ReadPageServiceModel -// { -// Posts = readPostServiceModels -// }; - -// this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(dummyUser)); -// this.FeedRepositoryMock.Setup(p => p.GetFriendsPosts(It.IsAny<List<User>>(), It.IsAny<DateTime>(), It.IsAny<int>(), It.IsAny<int>())).Returns(Task.FromResult(posts)); -// this.MapperMock.Setup(p => p.Map<ReadPostServiceModel>(It.IsAny<Post>())).Returns(readPostServiceModel); - -// ReadPageServiceModel result = await this.FeedService.GetPage(getPageServiceModel); - -// Assert.GreaterOrEqual(1, result.Posts.Count, "GetPage does not correctly return the posts"); -// } - -// [Test] -// public void GetPage_ThrowsException_WhenNoSuitablePostsExist() -// { -// const string EXCEPTION_MESSAGE = "No friends of user have posted anything yet!"; -// GetPageServiceModel getPageServiceModel = new GetPageServiceModel -// { -// UserId = Guid.NewGuid() -// }; - -// User dummyUser = CreateDummyUser(); -// User anotherDummyUser = CreateAnotherDummyUser(); -// HashSet<User> friends = new HashSet<User>(); -// friends.Add(anotherDummyUser); -// dummyUser.Friends = friends; - -// ReadPostServiceModel readPostServiceModel = new ReadPostServiceModel -// { -// PostId = Guid.NewGuid(), -// Message = "Message" -// }; -// List<ReadPostServiceModel> readPostServiceModels = new List<ReadPostServiceModel>(); -// readPostServiceModels.Add(readPostServiceModel); -// ReadPageServiceModel readPageServiceModel = new ReadPageServiceModel -// { -// Posts = readPostServiceModels -// }; - -// this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(dummyUser)); -// this.FeedRepositoryMock.Setup(p => p.GetFriendsPosts(It.IsAny<List<User>>(), It.IsAny<DateTime>(), It.IsAny<int>(), It.IsAny<int>())).Returns(Task.FromResult(new List<Post>())); - -// Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.FeedService.GetPage(getPageServiceModel)); - -// Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message, "Wrong exception message"); -// } - -// [Test] -// public void GetPage_ThrowsException_WhenUserHasNoFriendsToGetPostsFrom() -// { -// const string EXCEPTION_MESSAGE = "User has no friends to get feed from!"; -// GetPageServiceModel getPageServiceModel = new GetPageServiceModel -// { -// UserId = Guid.NewGuid() -// }; - -// User dummyUser = CreateDummyUser(); - -// this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(dummyUser)); - -// Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.FeedService.GetPage(getPageServiceModel)); - -// Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message, "Wrong exception message"); -// } -// #endregion - -// #region HelperMethods -// private User CreateDummyUser() -// { -// return new() -// { -// Id = Guid.NewGuid(), -// UserName = "dummyUser", -// FirstName = "Spas", -// LastName = "Spasov", -// Email = "abv@abv.bg", -// }; -// } - -// private User CreateAnotherDummyUser() -// { -// return new() -// { -// Id = Guid.NewGuid(), -// UserName = "anotherDummyUser", -// FirstName = "Alex", -// LastName = "Spiridonov", -// Email = "a_spiridonov@abv.bg", -// }; -// } -// #endregion -// } -//} diff --git a/src/DevHive.Tests/DevHive.Services.Tests/LanguageService.Tests.cs b/src/DevHive.Tests/DevHive.Services.Tests/LanguageService.Tests.cs deleted file mode 100644 index 1b59f91..0000000 --- a/src/DevHive.Tests/DevHive.Services.Tests/LanguageService.Tests.cs +++ /dev/null @@ -1,262 +0,0 @@ -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.Language; -using DevHive.Services.Services; -using Moq; -using NUnit.Framework; - -namespace DevHive.Services.Tests -{ - [TestFixture] - public class LanguageServiceTests - { - private Mock<ILanguageRepository> LanguageRepositoryMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private LanguageService LanguageService { get; set; } - - #region SetUps - [SetUp] - public void SetUp() - { - this.LanguageRepositoryMock = new Mock<ILanguageRepository>(); - this.MapperMock = new Mock<IMapper>(); - this.LanguageService = new LanguageService(this.LanguageRepositoryMock.Object, this.MapperMock.Object); - } - #endregion - - #region CreateLanguage - [Test] - public async Task CreateLanguage_ReturnsNonEmptyGuid_WhenEntityIsAddedSuccessfully() - { - string technologyName = "Gosho Trapov"; - Guid id = Guid.NewGuid(); - CreateLanguageServiceModel createLanguageServiceModel = new CreateLanguageServiceModel - { - Name = technologyName - }; - Language language = new Language - { - Name = technologyName, - Id = id - }; - - this.LanguageRepositoryMock.Setup(p => p.DoesLanguageNameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(false)); - this.LanguageRepositoryMock.Setup(p => p.AddAsync(It.IsAny<Language>())).Returns(Task.FromResult(true)); - this.LanguageRepositoryMock.Setup(p => p.GetByNameAsync(It.IsAny<string>())).Returns(Task.FromResult(language)); - this.MapperMock.Setup(p => p.Map<Language>(It.IsAny<CreateLanguageServiceModel>())).Returns(language); - - Guid result = await this.LanguageService.CreateLanguage(createLanguageServiceModel); - - Assert.AreEqual(id, result); - } - - [Test] - public async Task CreateLanguage_ReturnsEmptyGuid_WhenEntityIsNotAddedSuccessfully() - { - string languageName = "Gosho Trapov"; - - CreateLanguageServiceModel createLanguageServiceModel = new CreateLanguageServiceModel - { - Name = languageName - }; - Language language = new Language - { - Name = languageName - }; - - this.LanguageRepositoryMock.Setup(p => p.DoesLanguageNameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(false)); - this.LanguageRepositoryMock.Setup(p => p.AddAsync(It.IsAny<Language>())).Returns(Task.FromResult(false)); - this.MapperMock.Setup(p => p.Map<Language>(It.IsAny<CreateLanguageServiceModel>())).Returns(language); - - Guid result = await this.LanguageService.CreateLanguage(createLanguageServiceModel); - - Assert.IsTrue(result == Guid.Empty); - - } - - [Test] - public void CreateLanguage_ThrowsArgumentException_WhenEntityAlreadyExists() - { - string exceptionMessage = "Language already exists!"; - string languageName = "Gosho Trapov"; - - CreateLanguageServiceModel createLanguageServiceModel = new CreateLanguageServiceModel - { - Name = languageName - }; - Language language = new Language - { - Name = languageName - }; - - this.LanguageRepositoryMock.Setup(p => p.DoesLanguageNameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(true)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.LanguageService.CreateLanguage(createLanguageServiceModel)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region GetLanguageById - [Test] - public async Task GetLanguageById_ReturnsTheLanguage_WhenItExists() - { - Guid id = new Guid(); - string name = "Gosho Trapov"; - Language language = new Language - { - Name = name - }; - ReadLanguageServiceModel readLanguageServiceModel = new ReadLanguageServiceModel - { - Name = name - }; - - this.LanguageRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(language)); - this.MapperMock.Setup(p => p.Map<ReadLanguageServiceModel>(It.IsAny<Language>())).Returns(readLanguageServiceModel); - - ReadLanguageServiceModel result = await this.LanguageService.GetLanguageById(id); - - Assert.AreEqual(name, result.Name); - } - - [Test] - public void GetLanguageById_ThrowsException_WhenLanguageDoesNotExist() - { - string exceptionMessage = "The language does not exist"; - Guid id = new Guid(); - this.LanguageRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult<Language>(null)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.LanguageService.GetLanguageById(id)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region GetLanguages - [Test] - public void GetLanguages_ReturnsAllLanguages_IfAnyExist() - { - ReadLanguageServiceModel firstLanguage = new ReadLanguageServiceModel(); - ReadLanguageServiceModel secondLanguage = new ReadLanguageServiceModel(); - HashSet<ReadLanguageServiceModel> languges = new HashSet<ReadLanguageServiceModel>(); - languges.Add(firstLanguage); - languges.Add(secondLanguage); - - this.LanguageRepositoryMock.Setup(p => p.GetLanguages()).Returns(new HashSet<Language>()); - this.MapperMock.Setup(p => p.Map<HashSet<ReadLanguageServiceModel>>(It.IsAny<HashSet<Language>>())).Returns(languges); - - HashSet<ReadLanguageServiceModel> result = this.LanguageService.GetLanguages(); - - Assert.GreaterOrEqual(2, result.Count, "GetLanguages does not return all languages"); - } - - [Test] - public void GetLanguages_ReturnsEmptyHashSet_IfNoLanguagesExist() - { - this.LanguageRepositoryMock.Setup(p => p.GetLanguages()).Returns(new HashSet<Language>()); - this.MapperMock.Setup(p => p.Map<HashSet<ReadLanguageServiceModel>>(It.IsAny<HashSet<Language>>())).Returns(new HashSet<ReadLanguageServiceModel>()); - - HashSet<ReadLanguageServiceModel> result = this.LanguageService.GetLanguages(); - - Assert.IsEmpty(result, "GetLanguages does not return empty string when no languages exist"); - } - #endregion - - #region UpdateLanguage - [Test] - [TestCase(true)] - [TestCase(false)] - public async Task UpdateLanguage_ReturnsIfUpdateIsSuccessfull_WhenLanguageExistsy(bool shouldPass) - { - string name = "Gosho Trapov"; - Guid id = Guid.NewGuid(); - Language language = new Language - { - Name = name, - Id = id - }; - UpdateLanguageServiceModel updateLanguageServiceModel = new UpdateLanguageServiceModel - { - Name = name, - }; - - this.LanguageRepositoryMock.Setup(p => p.DoesLanguageExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.LanguageRepositoryMock.Setup(p => p.DoesLanguageNameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(false)); - this.LanguageRepositoryMock.Setup(p => p.EditAsync(It.IsAny<Guid>(), It.IsAny<Language>())).Returns(Task.FromResult(shouldPass)); - this.MapperMock.Setup(p => p.Map<Language>(It.IsAny<UpdateLanguageServiceModel>())).Returns(language); - - bool result = await this.LanguageService.UpdateLanguage(updateLanguageServiceModel); - - Assert.AreEqual(shouldPass, result); - } - - [Test] - public void UpdateLanguage_ThrowsArgumentException_WhenLanguageDoesNotExist() - { - string exceptionMessage = "Language does not exist!"; - UpdateLanguageServiceModel updateTechnologyServiceModel = new UpdateLanguageServiceModel - { - }; - - this.LanguageRepositoryMock.Setup(p => p.DoesLanguageExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.LanguageService.UpdateLanguage(updateTechnologyServiceModel)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - - [Test] - public void UpdateLanguage_ThrowsException_WhenLanguageNameAlreadyExists() - { - string exceptionMessage = "Language name already exists in our data base!"; - UpdateLanguageServiceModel updateTechnologyServiceModel = new UpdateLanguageServiceModel - { - }; - - this.LanguageRepositoryMock.Setup(p => p.DoesLanguageExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.LanguageRepositoryMock.Setup(p => p.DoesLanguageNameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(true)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.LanguageService.UpdateLanguage(updateTechnologyServiceModel)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region DeleteLanguage - [Test] - [TestCase(true)] - [TestCase(false)] - public async Task DeleteLanguage_ShouldReturnIfDeletionIsSuccessfull_WhenLanguageExists(bool shouldPass) - { - Guid id = new Guid(); - Language language = new Language(); - - this.LanguageRepositoryMock.Setup(p => p.DoesLanguageExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.LanguageRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(language)); - this.LanguageRepositoryMock.Setup(p => p.DeleteAsync(It.IsAny<Language>())).Returns(Task.FromResult(shouldPass)); - - bool result = await this.LanguageService.DeleteLanguage(id); - - Assert.AreEqual(shouldPass, result); - } - - [Test] - public void DeleteLanguage_ThrowsException_WhenLanguageDoesNotExist() - { - string exceptionMessage = "Language does not exist!"; - Guid id = new Guid(); - - this.LanguageRepositoryMock.Setup(p => p.DoesLanguageExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.LanguageService.DeleteLanguage(id)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Services.Tests/PostService.Tests.cs b/src/DevHive.Tests/DevHive.Services.Tests/PostService.Tests.cs deleted file mode 100644 index 900608c..0000000 --- a/src/DevHive.Tests/DevHive.Services.Tests/PostService.Tests.cs +++ /dev/null @@ -1,271 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using AutoMapper; -using DevHive.Data.Interfaces.Repositories; -using DevHive.Data.Models; -using DevHive.Services.Interfaces; -using DevHive.Services.Models.Post; -using DevHive.Services.Services; -using Microsoft.AspNetCore.Http; -using Moq; -using NUnit.Framework; - -namespace DevHive.Services.Tests -{ - [TestFixture] - public class PostServiceTests - { - private const string MESSAGE = "Gosho Trapov"; - private Mock<ICloudService> CloudServiceMock { get; set; } - private Mock<IPostRepository> PostRepositoryMock { 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; } - - #region SetUps - [SetUp] - 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.CloudServiceMock.Object, this.UserRepositoryMock.Object, this.PostRepositoryMock.Object, this.CommentRepositoryMock.Object, this.MapperMock.Object); - } - #endregion - - #region CreatePost - [Test] - public async Task CreatePost_ReturnsIdOfThePost_WhenItIsSuccessfullyCreated() - { - Guid postId = Guid.NewGuid(); - User creator = new User { Id = Guid.NewGuid() }; - CreatePostServiceModel createPostServiceModel = new CreatePostServiceModel - { - Files = new List<IFormFile>() - }; - Post post = new Post - { - Message = MESSAGE, - Id = postId, - }; - - this.PostRepositoryMock.Setup(p => p.AddAsync(It.IsAny<Post>())).Returns(Task.FromResult(true)); - this.PostRepositoryMock.Setup(p => p.GetPostByCreatorAndTimeCreatedAsync(It.IsAny<Guid>(), It.IsAny<DateTime>())).Returns(Task.FromResult(post)); - this.UserRepositoryMock.Setup(p => p.DoesUserExistAsync(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<Post>(It.IsAny<CreatePostServiceModel>())).Returns(post); - - Guid result = await this.PostService.CreatePost(createPostServiceModel); - - Assert.AreEqual(postId, result, "CreatePost does not return the correct id"); - } - - [Test] - public async Task CreatePost_ReturnsEmptyGuid_WhenItIsNotSuccessfullyCreated() - { - CreatePostServiceModel createPostServiceModel = new CreatePostServiceModel - { - Files = new List<IFormFile>() - }; - Post post = new Post - { - Message = MESSAGE, - }; - - this.PostRepositoryMock.Setup(p => p.AddAsync(It.IsAny<Post>())).Returns(Task.FromResult(false)); - this.UserRepositoryMock.Setup(p => p.DoesUserExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.MapperMock.Setup(p => p.Map<Post>(It.IsAny<CreatePostServiceModel>())).Returns(post); - - Guid result = await this.PostService.CreatePost(createPostServiceModel); - - Assert.AreEqual(Guid.Empty, result, "CreatePost does not return empty id"); - } - - [Test] - public void CreatePost_ThrowsException_WhenUserDoesNotExist() - { - const string EXCEPTION_MESSAGE = "User does not exist!"; - CreatePostServiceModel createPostServiceModel = new CreatePostServiceModel - { - }; - Post post = new Post - { - Message = MESSAGE, - }; - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.PostService.CreatePost(createPostServiceModel), "CreatePost does not throw excpeion when the user does not exist"); - - Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message, "Excapetion message is not correct"); - } - #endregion - - #region GetPostById - [Test] - public async Task GetPostById_ReturnsThePost_WhenItExists() - { - Guid creatorId = new Guid(); - User creator = new User { Id = creatorId }; - Post post = new Post - { - Message = MESSAGE, - Creator = creator - }; - ReadPostServiceModel readPostServiceModel = new ReadPostServiceModel - { - Message = MESSAGE - }; - User user = new User - { - Id = creatorId, - }; - - this.PostRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(post)); - this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(user)); - this.MapperMock.Setup(p => p.Map<ReadPostServiceModel>(It.IsAny<Post>())).Returns(readPostServiceModel); - - ReadPostServiceModel result = await this.PostService.GetPostById(new Guid()); - - Assert.AreEqual(MESSAGE, result.Message); - } - - [Test] - public void GetPostById_ThorwsException_WhenTheUserDoesNotExist() - { - const string EXCEPTION_MESSAGE = "The user does not exist!"; - Guid creatorId = new Guid(); - User creator = new User { Id = creatorId }; - Post post = new Post - { - Message = MESSAGE, - Creator = creator - }; - - this.PostRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(post)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.PostService.GetPostById(new Guid()), "GetPostById does not throw exception when the user does not exist"); - - Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message); - } - - [Test] - public void GetPostById_ThrowsException_WhenCommentDoesNotExist() - { - string exceptionMessage = "The post does not exist!"; - Guid creatorId = new Guid(); - User user = new User - { - Id = creatorId, - }; - - this.PostRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult<Post>(null)); - this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(user)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.PostService.GetPostById(new Guid())); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region UpdatePost - [Test] - public async Task UpdatePost_ReturnsTheIdOfThePost_WhenUpdatedSuccessfully() - { - Guid id = Guid.NewGuid(); - Post post = new Post - { - Id = id, - Message = MESSAGE - }; - UpdatePostServiceModel updatePostServiceModel = new UpdatePostServiceModel - { - PostId = id, - NewMessage = MESSAGE, - Files = new List<IFormFile>() - }; - - this.PostRepositoryMock.Setup(p => p.DoesPostExist(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.PostRepositoryMock.Setup(p => p.EditAsync(It.IsAny<Guid>(), It.IsAny<Post>())).Returns(Task.FromResult(true)); - this.PostRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(post)); - this.MapperMock.Setup(p => p.Map<Post>(It.IsAny<UpdatePostServiceModel>())).Returns(post); - - Guid result = await this.PostService.UpdatePost(updatePostServiceModel); - - Assert.AreEqual(updatePostServiceModel.PostId, result); - } - - [Test] - public async Task UpdatePost_ReturnsEmptyId_WhenThePostIsNotUpdatedSuccessfully() - { - Post post = new Post - { - Message = MESSAGE - }; - UpdatePostServiceModel updatePostServiceModel = new UpdatePostServiceModel - { - PostId = Guid.NewGuid(), - NewMessage = MESSAGE, - Files = new List<IFormFile>() - }; - - this.PostRepositoryMock.Setup(p => p.DoesPostExist(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.PostRepositoryMock.Setup(p => p.EditAsync(It.IsAny<Guid>(), It.IsAny<Post>())).Returns(Task.FromResult(false)); - this.MapperMock.Setup(p => p.Map<Post>(It.IsAny<UpdatePostServiceModel>())).Returns(post); - - Guid result = await this.PostService.UpdatePost(updatePostServiceModel); - - Assert.AreEqual(Guid.Empty, result); - } - - [Test] - public void UpdatePost_ThrowsArgumentException_WhenCommentDoesNotExist() - { - string exceptionMessage = "Post does not exist!"; - UpdatePostServiceModel updatePostServiceModel = new UpdatePostServiceModel - { - }; - - this.PostRepositoryMock.Setup(p => p.DoesPostExist(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.PostService.UpdatePost(updatePostServiceModel)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region DeletePost - [Test] - [TestCase(true)] - [TestCase(false)] - public async Task Deletepost_ShouldReturnIfDeletionIsSuccessfull_WhenPostExists(bool shouldPass) - { - Guid id = new Guid(); - Post post = new Post(); - - this.PostRepositoryMock.Setup(p => p.DoesPostExist(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.PostRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(post)); - this.PostRepositoryMock.Setup(p => p.DeleteAsync(It.IsAny<Post>())).Returns(Task.FromResult(shouldPass)); - - bool result = await this.PostService.DeletePost(id); - - Assert.AreEqual(shouldPass, result); - } - - [Test] - public void DeletePost_ThrowsException_WhenPostDoesNotExist() - { - string exceptionMessage = "Post does not exist!"; - Guid id = new Guid(); - - this.PostRepositoryMock.Setup(p => p.DoesPostExist(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.PostService.DeletePost(id)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Services.Tests/RoleService.Tests.cs b/src/DevHive.Tests/DevHive.Services.Tests/RoleService.Tests.cs deleted file mode 100644 index e500dd1..0000000 --- a/src/DevHive.Tests/DevHive.Services.Tests/RoleService.Tests.cs +++ /dev/null @@ -1,230 +0,0 @@ -using System; -using System.Threading.Tasks; -using AutoMapper; -using DevHive.Data.Interfaces.Repositories; -using DevHive.Data.Models; -using DevHive.Services.Models.Identity.Role; -using DevHive.Services.Services; -using Moq; -using NUnit.Framework; - -namespace DevHive.Services.Tests -{ - [TestFixture] - public class RoleServiceTests - { - private Mock<IRoleRepository> RoleRepositoryMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private RoleService RoleService { get; set; } - - #region SetUps - [SetUp] - public void Setup() - { - this.RoleRepositoryMock = new Mock<IRoleRepository>(); - this.MapperMock = new Mock<IMapper>(); - this.RoleService = new RoleService(this.RoleRepositoryMock.Object, this.MapperMock.Object); - } - #endregion - - #region CreateRole - [Test] - public async Task CreateRole_ReturnsNonEmptyGuid_WhenEntityIsAddedSuccessfully() - { - string roleName = "Gosho Trapov"; - Guid id = Guid.NewGuid(); - CreateRoleServiceModel createRoleServiceModel = new CreateRoleServiceModel - { - Name = roleName - }; - Role role = new() - { - Name = roleName, - Id = id - }; - - this.RoleRepositoryMock.Setup(p => p.DoesNameExist(It.IsAny<string>())).Returns(Task.FromResult(false)); - this.RoleRepositoryMock.Setup(p => p.AddAsync(It.IsAny<Role>())).Returns(Task.FromResult(true)); - this.RoleRepositoryMock.Setup(p => p.GetByNameAsync(It.IsAny<string>())).Returns(Task.FromResult(role)); - this.MapperMock.Setup(p => p.Map<Role>(It.IsAny<CreateRoleServiceModel>())).Returns(role); - - Guid result = await this.RoleService.CreateRole(createRoleServiceModel); - - Assert.AreEqual(id, result); - } - - [Test] - public async Task CreateRoley_ReturnsEmptyGuid_WhenEntityIsNotAddedSuccessfully() - { - string roleName = "Gosho Trapov"; - - CreateRoleServiceModel createRoleServiceModel = new CreateRoleServiceModel - { - Name = roleName - }; - Role role = new Role - { - Name = roleName - }; - - this.RoleRepositoryMock.Setup(p => p.DoesNameExist(It.IsAny<string>())).Returns(Task.FromResult(false)); - this.RoleRepositoryMock.Setup(p => p.AddAsync(It.IsAny<Role>())).Returns(Task.FromResult(false)); - this.MapperMock.Setup(p => p.Map<Role>(It.IsAny<CreateRoleServiceModel>())).Returns(role); - - Guid result = await this.RoleService.CreateRole(createRoleServiceModel); - - Assert.IsTrue(result == Guid.Empty); - } - - [Test] - public void CreateTechnology_ThrowsArgumentException_WhenEntityAlreadyExists() - { - string exceptionMessage = "Role already exists!"; - string roleName = "Gosho Trapov"; - - CreateRoleServiceModel createRoleServiceModel = new CreateRoleServiceModel - { - Name = roleName - }; - Role role = new Role - { - Name = roleName - }; - - this.RoleRepositoryMock.Setup(p => p.DoesNameExist(It.IsAny<string>())).Returns(Task.FromResult(true)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.RoleService.CreateRole(createRoleServiceModel)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region GetRoleById - [Test] - public async Task GetRoleById_ReturnsTheRole_WhenItExists() - { - Guid id = new Guid(); - string name = "Gosho Trapov"; - Role role = new Role - { - Name = name - }; - RoleServiceModel roleServiceModel = new RoleServiceModel - { - Name = name - }; - - this.RoleRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(role)); - this.MapperMock.Setup(p => p.Map<RoleServiceModel>(It.IsAny<Role>())).Returns(roleServiceModel); - - RoleServiceModel result = await this.RoleService.GetRoleById(id); - - Assert.AreEqual(name, result.Name); - } - - [Test] - public void GetRoleById_ThrowsException_WhenRoleDoesNotExist() - { - string exceptionMessage = "Role does not exist!"; - Guid id = new Guid(); - this.RoleRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult<Role>(null)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.RoleService.GetRoleById(id)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region UpdateRole - [Test] - [TestCase(true)] - [TestCase(false)] - public async Task UpdateRole_ReturnsIfUpdateIsSuccessfull_WhenRoleExistsy(bool shouldPass) - { - string name = "Gosho Trapov"; - Guid id = Guid.NewGuid(); - Role role = new Role - { - Name = name, - Id = id - }; - UpdateRoleServiceModel updateRoleServiceModel = new UpdateRoleServiceModel - { - Name = name, - }; - - this.RoleRepositoryMock.Setup(p => p.DoesRoleExist(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.RoleRepositoryMock.Setup(p => p.DoesNameExist(It.IsAny<string>())).Returns(Task.FromResult(false)); - this.RoleRepositoryMock.Setup(p => p.EditAsync(It.IsAny<Guid>(), It.IsAny<Role>())).Returns(Task.FromResult(shouldPass)); - this.MapperMock.Setup(p => p.Map<Role>(It.IsAny<UpdateRoleServiceModel>())).Returns(role); - - bool result = await this.RoleService.UpdateRole(updateRoleServiceModel); - - Assert.AreEqual(shouldPass, result); - } - - [Test] - public void UpdateRole_ThrowsException_WhenRoleDoesNotExist() - { - string exceptionMessage = "Role does not exist!"; - UpdateRoleServiceModel updateRoleServiceModel = new UpdateRoleServiceModel - { - }; - - this.RoleRepositoryMock.Setup(p => p.DoesRoleExist(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.RoleService.UpdateRole(updateRoleServiceModel)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - - [Test] - public void UpdateRole_ThrowsException_WhenRoleNameAlreadyExists() - { - string exceptionMessage = "Role name already exists!"; - UpdateRoleServiceModel updateRoleServiceModel = new UpdateRoleServiceModel - { - }; - - this.RoleRepositoryMock.Setup(p => p.DoesRoleExist(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.RoleRepositoryMock.Setup(p => p.DoesNameExist(It.IsAny<string>())).Returns(Task.FromResult(true)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.RoleService.UpdateRole(updateRoleServiceModel)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region DeleteRole - [Test] - [TestCase(true)] - [TestCase(false)] - public async Task DeleteRole_ShouldReturnIfDeletionIsSuccessfull_WhenRoleExists(bool shouldPass) - { - Guid id = new Guid(); - Role role = new Role(); - - this.RoleRepositoryMock.Setup(p => p.DoesRoleExist(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.RoleRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(role)); - this.RoleRepositoryMock.Setup(p => p.DeleteAsync(It.IsAny<Role>())).Returns(Task.FromResult(shouldPass)); - - bool result = await this.RoleService.DeleteRole(id); - - Assert.AreEqual(shouldPass, result); - } - - [Test] - public void DeleteRole_ThrowsException_WhenRoleDoesNotExist() - { - string exceptionMessage = "Role does not exist!"; - Guid id = new Guid(); - - this.RoleRepositoryMock.Setup(p => p.DoesRoleExist(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.RoleService.DeleteRole(id)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Services.Tests/TechnologyServices.Tests.cs b/src/DevHive.Tests/DevHive.Services.Tests/TechnologyServices.Tests.cs deleted file mode 100644 index e671adb..0000000 --- a/src/DevHive.Tests/DevHive.Services.Tests/TechnologyServices.Tests.cs +++ /dev/null @@ -1,262 +0,0 @@ -using AutoMapper; -using DevHive.Data.Interfaces.Repositories; -using DevHive.Data.Models; -using DevHive.Services.Models.Technology; -using DevHive.Services.Services; -using Moq; -using NUnit.Framework; -using System; -using System.Collections.Generic; -using System.Threading.Tasks; - -namespace DevHive.Services.Tests -{ - [TestFixture] - public class TechnologyServicesTests - { - private Mock<ITechnologyRepository> TechnologyRepositoryMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private TechnologyService TechnologyService { get; set; } - - #region SetUps - [SetUp] - public void Setup() - { - this.TechnologyRepositoryMock = new Mock<ITechnologyRepository>(); - this.MapperMock = new Mock<IMapper>(); - this.TechnologyService = new TechnologyService(this.TechnologyRepositoryMock.Object, this.MapperMock.Object); - } - #endregion - - #region CreateTechnology - [Test] - public async Task CreateTechnology_ReturnsNonEmptyGuid_WhenEntityIsAddedSuccessfully() - { - string technologyName = "Gosho Trapov"; - Guid id = Guid.NewGuid(); - CreateTechnologyServiceModel createTechnologyServiceModel = new() - { - Name = technologyName - }; - Technology technology = new() - { - Name = technologyName, - Id = id - }; - - this.TechnologyRepositoryMock.Setup(p => p.DoesTechnologyNameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(false)); - this.TechnologyRepositoryMock.Setup(p => p.AddAsync(It.IsAny<Technology>())).Returns(Task.FromResult(true)); - this.TechnologyRepositoryMock.Setup(p => p.GetByNameAsync(It.IsAny<string>())).Returns(Task.FromResult(technology)); - this.MapperMock.Setup(p => p.Map<Technology>(It.IsAny<CreateTechnologyServiceModel>())).Returns(technology); - - Guid result = await this.TechnologyService.CreateTechnology(createTechnologyServiceModel); - - Assert.AreEqual(id, result); - } - - [Test] - public async Task CreateTechnology_ReturnsEmptyGuid_WhenEntityIsNotAddedSuccessfully() - { - string technologyName = "Gosho Trapov"; - - CreateTechnologyServiceModel createTechnologyServiceModel = new() - { - Name = technologyName - }; - Technology technology = new() - { - Name = technologyName - }; - - this.TechnologyRepositoryMock.Setup(p => p.DoesTechnologyNameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(false)); - this.TechnologyRepositoryMock.Setup(p => p.AddAsync(It.IsAny<Technology>())).Returns(Task.FromResult(false)); - this.MapperMock.Setup(p => p.Map<Technology>(It.IsAny<CreateTechnologyServiceModel>())).Returns(technology); - - Guid result = await this.TechnologyService.CreateTechnology(createTechnologyServiceModel); - - Assert.IsTrue(result == Guid.Empty); - } - - [Test] - public void CreateTechnology_ThrowsArgumentException_WhenEntityAlreadyExists() - { - string exceptionMessage = "Technology already exists!"; - string technologyName = "Gosho Trapov"; - - CreateTechnologyServiceModel createTechnologyServiceModel = new() - { - Name = technologyName - }; - Technology technology = new() - { - Name = technologyName - }; - - this.TechnologyRepositoryMock.Setup(p => p.DoesTechnologyNameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(true)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.TechnologyService.CreateTechnology(createTechnologyServiceModel)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region GetTechnologyById - [Test] - public async Task GetTechnologyById_ReturnsTheTechnology_WhenItExists() - { - Guid id = new Guid(); - string name = "Gosho Trapov"; - Technology technology = new() - { - Name = name - }; - ReadTechnologyServiceModel readTechnologyServiceModel = new() - { - Name = name - }; - - this.TechnologyRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(technology)); - this.MapperMock.Setup(p => p.Map<ReadTechnologyServiceModel>(It.IsAny<Technology>())).Returns(readTechnologyServiceModel); - - ReadTechnologyServiceModel result = await this.TechnologyService.GetTechnologyById(id); - - Assert.AreEqual(name, result.Name); - } - - [Test] - public void GetTechnologyById_ThrowsException_WhenTechnologyDoesNotExist() - { - string exceptionMessage = "The technology does not exist"; - Guid id = new Guid(); - this.TechnologyRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult<Technology>(null)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.TechnologyService.GetTechnologyById(id)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region GetTechnologies - [Test] - public void GetTechnologies_ReturnsAllLanguages_IfAnyExist() - { - ReadTechnologyServiceModel firstTechnology = new ReadTechnologyServiceModel(); - ReadTechnologyServiceModel secondTechnology = new ReadTechnologyServiceModel(); - HashSet<ReadTechnologyServiceModel> technologies = new HashSet<ReadTechnologyServiceModel>(); - technologies.Add(firstTechnology); - technologies.Add(secondTechnology); - - this.TechnologyRepositoryMock.Setup(p => p.GetTechnologies()).Returns(new HashSet<Technology>()); - this.MapperMock.Setup(p => p.Map<HashSet<ReadTechnologyServiceModel>>(It.IsAny<HashSet<Technology>>())).Returns(technologies); - - HashSet<ReadTechnologyServiceModel> result = this.TechnologyService.GetTechnologies(); - - Assert.GreaterOrEqual(2, result.Count, "GetTechnologies does not return all technologies"); - } - - [Test] - public void GetLanguages_ReturnsEmptyHashSet_IfNoLanguagesExist() - { - this.TechnologyRepositoryMock.Setup(p => p.GetTechnologies()).Returns(new HashSet<Technology>()); - this.MapperMock.Setup(p => p.Map<HashSet<ReadTechnologyServiceModel>>(It.IsAny<HashSet<Technology>>())).Returns(new HashSet<ReadTechnologyServiceModel>()); - - HashSet<ReadTechnologyServiceModel> result = this.TechnologyService.GetTechnologies(); - - Assert.IsEmpty(result, "GetTechnologies does not return empty string when no technologies exist"); - } - #endregion - - #region UpdateTechnology - [Test] - [TestCase(true)] - [TestCase(false)] - public async Task UpdateTechnology_ReturnsIfUpdateIsSuccessfull_WhenTechnologyExistsy(bool shouldPass) - { - string name = "Gosho Trapov"; - Guid id = Guid.NewGuid(); - Technology technology = new Technology - { - Name = name, - Id = id - }; - UpdateTechnologyServiceModel updatetechnologyServiceModel = new UpdateTechnologyServiceModel - { - Name = name, - }; - - this.TechnologyRepositoryMock.Setup(p => p.DoesTechnologyExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.TechnologyRepositoryMock.Setup(p => p.DoesTechnologyNameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(false)); - this.TechnologyRepositoryMock.Setup(p => p.EditAsync(It.IsAny<Guid>(), It.IsAny<Technology>())).Returns(Task.FromResult(shouldPass)); - this.MapperMock.Setup(p => p.Map<Technology>(It.IsAny<UpdateTechnologyServiceModel>())).Returns(technology); - - bool result = await this.TechnologyService.UpdateTechnology(updatetechnologyServiceModel); - - Assert.AreEqual(shouldPass, result); - } - - [Test] - public void UpdateTechnology_ThrowsException_WhenTechnologyDoesNotExist() - { - string exceptionMessage = "Technology does not exist!"; - UpdateTechnologyServiceModel updateTechnologyServiceModel = new UpdateTechnologyServiceModel - { - }; - - this.TechnologyRepositoryMock.Setup(p => p.DoesTechnologyExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.TechnologyService.UpdateTechnology(updateTechnologyServiceModel)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - - [Test] - public void UpdateTechnology_ThrowsException_WhenTechnologyNameAlreadyExists() - { - string exceptionMessage = "Technology name already exists!"; - UpdateTechnologyServiceModel updateTechnologyServiceModel = new UpdateTechnologyServiceModel - { - }; - - this.TechnologyRepositoryMock.Setup(p => p.DoesTechnologyExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.TechnologyRepositoryMock.Setup(p => p.DoesTechnologyNameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(true)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.TechnologyService.UpdateTechnology(updateTechnologyServiceModel)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region DeleteTechnology - - [Test] - [TestCase(true)] - [TestCase(false)] - public async Task DeleteTechnology_ShouldReturnIfDeletionIsSuccessfull_WhenTechnologyExists(bool shouldPass) - { - Guid id = new Guid(); - Technology technology = new Technology(); - - this.TechnologyRepositoryMock.Setup(p => p.DoesTechnologyExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.TechnologyRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(technology)); - this.TechnologyRepositoryMock.Setup(p => p.DeleteAsync(It.IsAny<Technology>())).Returns(Task.FromResult(shouldPass)); - - bool result = await this.TechnologyService.DeleteTechnology(id); - - Assert.AreEqual(shouldPass, result); - } - - [Test] - public void DeleteTechnology_ThrowsException_WhenTechnologyDoesNotExist() - { - string exceptionMessage = "Technology does not exist!"; - Guid id = new Guid(); - - this.TechnologyRepositoryMock.Setup(p => p.DoesTechnologyExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.TechnologyService.DeleteTechnology(id)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Services.Tests/UserService.Tests.cs b/src/DevHive.Tests/DevHive.Services.Tests/UserService.Tests.cs deleted file mode 100644 index 21d4862..0000000 --- a/src/DevHive.Tests/DevHive.Services.Tests/UserService.Tests.cs +++ /dev/null @@ -1,394 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IdentityModel.Tokens.Jwt; -using System.Security.Claims; -using System.Text; -using System.Threading.Tasks; -using AutoMapper; -using DevHive.Common.Models.Identity; -using DevHive.Common.Models.Misc; -using DevHive.Data.Interfaces.Repositories; -using DevHive.Data.Models; -using DevHive.Services.Interfaces; -using DevHive.Services.Models.Identity.User; -using DevHive.Services.Options; -using DevHive.Services.Services; -using Microsoft.AspNetCore.Identity; -using Microsoft.IdentityModel.Tokens; -using Moq; -using NUnit.Framework; - -namespace DevHive.Services.Tests -{ - [TestFixture] - public class UserServiceTests - { - private Mock<ICloudService> CloudServiceMock { get; set; } - private Mock<IUserRepository> UserRepositoryMock { get; set; } - private Mock<IRoleRepository> RoleRepositoryMock { get; set; } - private Mock<ILanguageRepository> LanguageRepositoryMock { get; set; } - private Mock<ITechnologyRepository> TechnologyRepositoryMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private JWTOptions JWTOptions { get; set; } - private UserService UserService { get; set; } - - #region SetUps - [SetUp] - public void Setup() - { - this.UserRepositoryMock = new Mock<IUserRepository>(); - this.RoleRepositoryMock = new Mock<IRoleRepository>(); - this.CloudServiceMock = new Mock<ICloudService>(); - this.LanguageRepositoryMock = new Mock<ILanguageRepository>(); - this.TechnologyRepositoryMock = new Mock<ITechnologyRepository>(); - this.JWTOptions = new JWTOptions("gXfQlU6qpDleFWyimscjYcT3tgFsQg3yoFjcvSLxG56n1Vu2yptdIUq254wlJWjm"); - this.MapperMock = new Mock<IMapper>(); - // TODO: give actual UserManager and RoleManager to UserService - this.UserService = new UserService(this.UserRepositoryMock.Object, this.LanguageRepositoryMock.Object, this.RoleRepositoryMock.Object, this.TechnologyRepositoryMock.Object, null, null, this.MapperMock.Object, this.JWTOptions, this.CloudServiceMock.Object); - } - #endregion - - #region LoginUser - [Test] - public async Task LoginUser_ReturnsTokenModel_WhenLoggingUserIn() - { - string somePassword = "GoshoTrapovImaGolemChep"; - const string name = "GoshoTrapov"; - string hashedPassword = PasswordModifications.GeneratePasswordHash(somePassword); - LoginServiceModel loginServiceModel = new LoginServiceModel - { - Password = somePassword - }; - User user = new User - { - Id = Guid.NewGuid(), - PasswordHash = hashedPassword, - UserName = name - }; - - this.UserRepositoryMock.Setup(p => p.DoesUsernameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(true)); - this.UserRepositoryMock.Setup(p => p.GetByUsernameAsync(It.IsAny<string>())).Returns(Task.FromResult(user)); - - string JWTSecurityToken = this.WriteJWTSecurityToken(user.Id, user.UserName, user.Roles); - - TokenModel tokenModel = await this.UserService.LoginUser(loginServiceModel); - - Assert.AreEqual(JWTSecurityToken, tokenModel.Token, "LoginUser does not return the correct token"); - } - - [Test] - public void LoginUser_ThrowsException_WhenUserNameDoesNotExist() - { - const string EXCEPTION_MESSAGE = "Invalid username!"; - LoginServiceModel loginServiceModel = new LoginServiceModel - { - }; - - this.UserRepositoryMock.Setup(p => p.DoesUsernameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(false)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.UserService.LoginUser(loginServiceModel)); - - Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message, "Incorect Exception message"); - } - - [Test] - public void LoginUser_ThroiwsException_WhenPasswordIsIncorect() - { - const string EXCEPTION_MESSAGE = "Incorrect password!"; - string somePassword = "GoshoTrapovImaGolemChep"; - LoginServiceModel loginServiceModel = new LoginServiceModel - { - Password = somePassword - }; - User user = new User - { - Id = Guid.NewGuid(), - PasswordHash = "InvalidPasswordHas" - }; - - this.UserRepositoryMock.Setup(p => p.DoesUsernameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(true)); - this.UserRepositoryMock.Setup(p => p.GetByUsernameAsync(It.IsAny<string>())).Returns(Task.FromResult(user)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.UserService.LoginUser(loginServiceModel)); - - Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message, "Incorect Exception message"); - } - #endregion - - #region RegisterUser - // [Test] - // public async Task RegisterUser_ReturnsTokenModel_WhenUserIsSuccessfull() - // { - // string somePassword = "GoshoTrapovImaGolemChep"; - // const string name = "GoshoTrapov"; - // RegisterServiceModel registerServiceModel = new RegisterServiceModel - // { - // Password = somePassword - // }; - // User user = new User - // { - // Id = Guid.NewGuid(), - // UserName = name - // }; - // Role role = new Role { Name = Role.DefaultRole }; - // HashSet<Role> roles = new HashSet<Role> { role }; - // - // this.UserRepositoryMock.Setup(p => p.DoesUsernameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(false)); - // this.UserRepositoryMock.Setup(p => p.DoesEmailExistAsync(It.IsAny<string>())).Returns(Task.FromResult(false)); - // this.RoleRepositoryMock.Setup(p => p.DoesNameExist(It.IsAny<string>())).Returns(Task.FromResult(true)); - // this.RoleRepositoryMock.Setup(p => p.GetByNameAsync(It.IsAny<string>())).Returns(Task.FromResult(role)); - // this.MapperMock.Setup(p => p.Map<User>(It.IsAny<RegisterServiceModel>())).Returns(user); - // this.UserRepositoryMock.Setup(p => p.AddAsync(It.IsAny<User>())).Verifiable(); - // - // string JWTSecurityToken = this.WriteJWTSecurityToken(user.Id, user.UserName, roles); - // - // TokenModel tokenModel = await this.UserService.RegisterUser(registerServiceModel); - // - // Mock.Verify(); - // Assert.AreEqual(JWTSecurityToken, tokenModel.Token, "RegisterUser does not return the correct token"); - // } - - [Test] - public void RegisterUser_ThrowsException_WhenUsernameAlreadyExists() - { - const string EXCEPTION_MESSAGE = "Username already exists!"; - RegisterServiceModel registerServiceModel = new RegisterServiceModel - { - }; - - this.UserRepositoryMock.Setup(p => p.DoesUsernameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(true)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.UserService.RegisterUser(registerServiceModel)); - - Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message, "Incorect Exception message"); - } - - [Test] - public void RegisterUser_ThrowsException_WhenEmailAlreadyExists() - { - const string EXCEPTION_MESSAGE = "Email already exists!"; - - RegisterServiceModel registerServiceModel = new RegisterServiceModel - { - }; - - this.UserRepositoryMock.Setup(p => p.DoesUsernameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(false)); - this.UserRepositoryMock.Setup(p => p.DoesEmailExistAsync(It.IsAny<string>())).Returns(Task.FromResult(true)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.UserService.RegisterUser(registerServiceModel)); - - Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message, "Incorect Exception message"); - } - #endregion - - #region GetUserById - [Test] - public async Task GetUserById_ReturnsTheUser_WhenItExists() - { - Guid id = new Guid(); - string name = "Gosho Trapov"; - User user = new() - { - }; - UserServiceModel userServiceModel = new UserServiceModel - { - UserName = name - }; - - this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(user)); - this.MapperMock.Setup(p => p.Map<UserServiceModel>(It.IsAny<User>())).Returns(userServiceModel); - - UserServiceModel result = await this.UserService.GetUserById(id); - - Assert.AreEqual(name, result.UserName); - } - - [Test] - public void GetTechnologyById_ThrowsException_WhenTechnologyDoesNotExist() - { - const string EXCEPTION_MESSEGE = "User does not exist!"; - Guid id = new Guid(); - this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult<User>(null)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.UserService.GetUserById(id)); - - Assert.AreEqual(EXCEPTION_MESSEGE, ex.Message, "Incorecct exception message"); - } - #endregion - - #region GetUserByUsername - [Test] - public async Task GetUserByUsername_ReturnsTheCorrectUser_IfItExists() - { - string username = "Gosho Trapov"; - User user = new User(); - UserServiceModel userServiceModel = new UserServiceModel - { - UserName = username - }; - - this.UserRepositoryMock.Setup(p => p.GetByUsernameAsync(It.IsAny<string>())).Returns(Task.FromResult(user)); - this.MapperMock.Setup(p => p.Map<UserServiceModel>(It.IsAny<User>())).Returns(userServiceModel); - - UserServiceModel result = await this.UserService.GetUserByUsername(username); - - Assert.AreEqual(username, result.UserName, "GetUserByUsername does not return the correct user"); - } - - [Test] - public async Task GetUserByUsername_ThrowsException_IfUserDoesNotExist() - { - string username = "Gosho Trapov"; - const string EXCEPTION_MESSEGE = "User does not exist!"; - - this.UserRepositoryMock.Setup(p => p.GetByUsernameAsync(It.IsAny<string>())).Returns(Task.FromResult<User>(null)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.UserService.GetUserByUsername(username)); - - Assert.AreEqual(EXCEPTION_MESSEGE, ex.Message, "Incorecct exception message"); - } - #endregion - - #region UpdateUser - // [Test] - // [TestCase(true)] - // [TestCase(false)] - // public async Task UpdateUser_ReturnsIfUpdateIsSuccessfull_WhenUserExistsy(bool shouldPass) - // { - // string name = "Gosho Trapov"; - // Guid id = Guid.NewGuid(); - // User user = new User - // { - // UserName = name, - // Id = id, - // }; - // UpdateUserServiceModel updateUserServiceModel = new UpdateUserServiceModel - // { - // UserName = name, - // }; - // UserServiceModel userServiceModel = new UserServiceModel - // { - // UserName = name, - // }; - // Role role = new Role { }; - // - // this.UserRepositoryMock.Setup(p => p.DoesUserExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - // this.UserRepositoryMock.Setup(p => p.DoesUsernameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(false)); - // this.UserRepositoryMock.Setup(p => p.DoesUserHaveThisUsername(It.IsAny<Guid>(), It.IsAny<string>())).Returns(true); - // this.UserRepositoryMock.Setup(p => p.EditAsync(It.IsAny<Guid>(), It.IsAny<User>())).Returns(Task.FromResult(shouldPass)); - // this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(user)); - // this.MapperMock.Setup(p => p.Map<User>(It.IsAny<UpdateUserServiceModel>())).Returns(user); - // this.MapperMock.Setup(p => p.Map<UserServiceModel>(It.IsAny<User>())).Returns(userServiceModel); - // - // if (shouldPass) - // { - // UserServiceModel result = await this.UserService.UpdateUser(updateUserServiceModel); - // - // Assert.AreEqual(updateUserServiceModel.UserName, result.UserName); - // } - // else - // { - // const string EXCEPTION_MESSAGE = "Unable to edit user!"; - // - // Exception ex = Assert.ThrowsAsync<InvalidOperationException>(() => this.UserService.UpdateUser(updateUserServiceModel)); - // - // Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message, "Incorecct exception message"); - // } - // } - - [Test] - public void UpdateUser_ThrowsException_WhenUserDoesNotExist() - { - const string EXCEPTION_MESSAGE = "User does not exist!"; - UpdateUserServiceModel updateUserServiceModel = new UpdateUserServiceModel - { - }; - - this.UserRepositoryMock.Setup(p => p.DoesUserExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.UserService.UpdateUser(updateUserServiceModel)); - - Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message, "Incorecct exception message"); - } - - [Test] - public void UpdateUser_ThrowsException_WhenUserNameAlreadyExists() - { - const string EXCEPTION_MESSAGE = "Username already exists!"; - UpdateUserServiceModel updateUserServiceModel = new UpdateUserServiceModel - { - }; - - this.UserRepositoryMock.Setup(p => p.DoesUserExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.UserRepositoryMock.Setup(p => p.DoesUsernameExistAsync(It.IsAny<string>())).Returns(Task.FromResult(true)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.UserService.UpdateUser(updateUserServiceModel)); - - Assert.AreEqual(EXCEPTION_MESSAGE, ex.Message, "Incorecct exception message"); - } - #endregion - - #region DeleteUser - //TO DO: compleate once Viko has looked into the return type of UserService.DeleteUser - // [Test] - // [TestCase(true)] - // [TestCase(false)] - // public async Task DeleteUser_ShouldReturnIfDeletionIsSuccessfull_WhenUserExists(bool shouldPass) - // { - // Guid id = new Guid(); - // User user = new User(); - // - // this.UserRepositoryMock.Setup(p => p.DoesUserExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - // this.UserRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(user)); - // this.UserRepositoryMock.Setup(p => p.DeleteAsync(It.IsAny<User>())).Returns(Task.FromResult(shouldPass)); - // - // bool result = await this.UserService.DeleteUser(id); - // - // Assert.AreEqual(shouldPass, result); - // } - // - [Test] - public void DeleteUser_ThrowsException_WhenUserDoesNotExist() - { - string exceptionMessage = "User does not exist!"; - Guid id = new Guid(); - - this.UserRepositoryMock.Setup(p => p.DoesUserExistAsync(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.UserService.DeleteUser(id)); - - Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message"); - } - #endregion - - #region HelperMethods - private string WriteJWTSecurityToken(Guid userId, string username, HashSet<Role> roles) - { - byte[] signingKey = Encoding.ASCII.GetBytes(this.JWTOptions.Secret); - HashSet<Claim> claims = new() - { - new Claim("ID", $"{userId}"), - new Claim("Username", username), - }; - - foreach (var role in roles) - { - claims.Add(new Claim(ClaimTypes.Role, role.Name)); - } - - SecurityTokenDescriptor tokenDescriptor = new() - { - Subject = new ClaimsIdentity(claims), - Expires = DateTime.Today.AddDays(7), - SigningCredentials = new SigningCredentials( - new SymmetricSecurityKey(signingKey), - SecurityAlgorithms.HmacSha512Signature) - }; - - JwtSecurityTokenHandler tokenHandler = new(); - SecurityToken token = tokenHandler.CreateToken(tokenDescriptor); - return tokenHandler.WriteToken(token); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Web.Tests/CommentController.Tests.cs b/src/DevHive.Tests/DevHive.Web.Tests/CommentController.Tests.cs deleted file mode 100644 index 3a03f1a..0000000 --- a/src/DevHive.Tests/DevHive.Web.Tests/CommentController.Tests.cs +++ /dev/null @@ -1,256 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using AutoMapper; -using DevHive.Services.Interfaces; -using DevHive.Services.Models.Comment; -using DevHive.Web.Controllers; -using DevHive.Web.Models.Comment; -using Microsoft.AspNetCore.Mvc; -using Moq; -using NUnit.Framework; - -namespace DevHive.Web.Tests -{ - [TestFixture] - public class CommentControllerTests - { - const string MESSAGE = "Gosho Trapov"; - private Mock<ICommentService> CommentServiceMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private CommentController CommentController { get; set; } - - #region Setup - [SetUp] - public void SetUp() - { - this.CommentServiceMock = new Mock<ICommentService>(); - this.MapperMock = new Mock<IMapper>(); - this.CommentController = new CommentController(this.CommentServiceMock.Object, this.MapperMock.Object); - } - #endregion - - #region Add - [Test] - public void AddComment_ReturnsOkObjectResult_WhenCommentIsSuccessfullyCreated() - { - Guid id = Guid.NewGuid(); - CreateCommentWebModel createCommentWebModel = new CreateCommentWebModel - { - Message = MESSAGE - }; - CreateCommentServiceModel createCommentServiceModel = new CreateCommentServiceModel - { - Message = MESSAGE - }; - - this.MapperMock.Setup(p => p.Map<CreateCommentServiceModel>(It.IsAny<CreateCommentWebModel>())).Returns(createCommentServiceModel); - this.CommentServiceMock.Setup(p => p.AddComment(It.IsAny<CreateCommentServiceModel>())).Returns(Task.FromResult(id)); - this.CommentServiceMock.Setup(p => p.ValidateJwtForCreating(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - - IActionResult result = this.CommentController.AddComment(Guid.NewGuid(), createCommentWebModel, null).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - var splitted = (result as OkObjectResult).Value - .ToString() - .Split('{', '}', '=', ' ') - .Where(x => !string.IsNullOrEmpty(x)) - .ToArray(); - - Guid resultId = Guid.Parse(splitted[1]); - - Assert.AreEqual(id, resultId); - } - - [Test] - public void AddComment_ReturnsBadRequestObjectResult_WhenCommentIsNotCreatedSuccessfully() - { - Guid id = Guid.NewGuid(); - CreateCommentWebModel createCommentWebModel = new CreateCommentWebModel - { - Message = MESSAGE - }; - CreateCommentServiceModel createCommentServiceModel = new CreateCommentServiceModel - { - Message = MESSAGE - }; - string errorMessage = $"Could not create comment!"; - - - this.MapperMock.Setup(p => p.Map<CreateCommentServiceModel>(It.IsAny<CreateCommentWebModel>())).Returns(createCommentServiceModel); - this.CommentServiceMock.Setup(p => p.AddComment(It.IsAny<CreateCommentServiceModel>())).Returns(Task.FromResult(Guid.Empty)); - this.CommentServiceMock.Setup(p => p.ValidateJwtForCreating(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - - IActionResult result = this.CommentController.AddComment(Guid.NewGuid(), createCommentWebModel, null).Result; - - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequsetObjectResult = result as BadRequestObjectResult; - string resultMessage = badRequsetObjectResult.Value.ToString(); - - Assert.AreEqual(errorMessage, resultMessage); - } - - [Test] - public void AddComment_ReturnsUnauthorizedResult_WhenUserIsNotAuthorized() - { - Guid id = Guid.NewGuid(); - CreateCommentWebModel createCommentWebModel = new CreateCommentWebModel - { - Message = MESSAGE - }; - - this.CommentServiceMock.Setup(p => p.ValidateJwtForCreating(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(false)); - - IActionResult result = this.CommentController.AddComment(Guid.NewGuid(), createCommentWebModel, null).Result; - - Assert.IsInstanceOf<UnauthorizedResult>(result); - } - #endregion - - #region Read - [Test] - public void GetById_ReturnsTheComment_WhenItExists() - { - Guid id = Guid.NewGuid(); - - ReadCommentServiceModel readCommentServiceModel = new ReadCommentServiceModel - { - Message = MESSAGE - }; - ReadCommentWebModel readCommentWebModel = new ReadCommentWebModel - { - Message = MESSAGE - }; - - this.CommentServiceMock.Setup(p => p.GetCommentById(It.IsAny<Guid>())).Returns(Task.FromResult(readCommentServiceModel)); - this.MapperMock.Setup(p => p.Map<ReadCommentWebModel>(It.IsAny<ReadCommentServiceModel>())).Returns(readCommentWebModel); - - IActionResult result = this.CommentController.GetCommentById(id).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - OkObjectResult okObjectResult = result as OkObjectResult; - ReadCommentWebModel resultModel = okObjectResult.Value as Models.Comment.ReadCommentWebModel; - - Assert.AreEqual(MESSAGE, resultModel.Message); - } - #endregion - - #region Update - [Test] - public void Update_ShouldReturnOkResult_WhenCommentIsUpdatedSuccessfully() - { - Guid id = Guid.NewGuid(); - UpdateCommentWebModel updateCommentWebModel = new UpdateCommentWebModel - { - NewMessage = MESSAGE - }; - UpdateCommentServiceModel updateCommentServiceModel = new UpdateCommentServiceModel - { - NewMessage = MESSAGE - }; - - this.CommentServiceMock.Setup(p => p.UpdateComment(It.IsAny<UpdateCommentServiceModel>())).Returns(Task.FromResult(id)); - this.CommentServiceMock.Setup(p => p.ValidateJwtForComment(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - this.MapperMock.Setup(p => p.Map<UpdateCommentServiceModel>(It.IsAny<UpdateCommentWebModel>())).Returns(updateCommentServiceModel); - - IActionResult result = this.CommentController.UpdateComment(Guid.Empty, updateCommentWebModel, null).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - OkObjectResult okObjectResult = result as OkObjectResult; - object resultModel = okObjectResult.Value; - string[] resultAsString = resultModel.ToString().Split(' ').ToArray(); - - Assert.AreEqual(id.ToString(), resultAsString[3]); - } - - [Test] - public void Update_ShouldReturnBadObjectResult_WhenCommentIsNotUpdatedSuccessfully() - { - string message = "Unable to update comment!"; - UpdateCommentWebModel updateCommentWebModel = new UpdateCommentWebModel - { - NewMessage = MESSAGE - }; - UpdateCommentServiceModel updateCommentServiceModel = new UpdateCommentServiceModel - { - NewMessage = MESSAGE - }; - - this.CommentServiceMock.Setup(p => p.UpdateComment(It.IsAny<UpdateCommentServiceModel>())).Returns(Task.FromResult(Guid.Empty)); - this.CommentServiceMock.Setup(p => p.ValidateJwtForComment(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - this.MapperMock.Setup(p => p.Map<UpdateCommentServiceModel>(It.IsAny<UpdateCommentWebModel>())).Returns(updateCommentServiceModel); - - IActionResult result = this.CommentController.UpdateComment(Guid.Empty, updateCommentWebModel, null).Result; - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; - string resultModel = badRequestObjectResult.Value.ToString(); - - Assert.AreEqual(message, resultModel); - } - - [Test] - public void Update_ShouldReturnUnauthorizedResult_WhenUserIsNotAuthorized() - { - UpdateCommentWebModel updateCommentWebModel = new UpdateCommentWebModel - { - NewMessage = MESSAGE - }; - - this.CommentServiceMock.Setup(p => p.ValidateJwtForComment(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(false)); - - IActionResult result = this.CommentController.UpdateComment(Guid.Empty, updateCommentWebModel, null).Result; - - Assert.IsInstanceOf<UnauthorizedResult>(result); - } - #endregion - - #region Delete - [Test] - public void Delete_ReturnsOkResult_WhenCommentIsDeletedSuccessfully() - { - Guid id = Guid.NewGuid(); - - this.CommentServiceMock.Setup(p => p.DeleteComment(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.CommentServiceMock.Setup(p => p.ValidateJwtForComment(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - - IActionResult result = this.CommentController.DeleteComment(id, null).Result; - - Assert.IsInstanceOf<OkResult>(result); - } - - [Test] - public void DeletComment_ReturnsBadRequestObjectResult_WhenCommentIsNotDeletedSuccessfully() - { - string message = "Could not delete Comment"; - Guid id = Guid.NewGuid(); - - this.CommentServiceMock.Setup(p => p.DeleteComment(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - this.CommentServiceMock.Setup(p => p.ValidateJwtForComment(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - - IActionResult result = this.CommentController.DeleteComment(id, null).Result; - - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; - string resultModel = badRequestObjectResult.Value.ToString(); - - Assert.AreEqual(message, resultModel); - } - - [Test] - public void DeletComment_ReturnsUnauthorizedResult_WhenUserIsNotAuthorized() - { - this.CommentServiceMock.Setup(p => p.ValidateJwtForComment(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(false)); - - IActionResult result = this.CommentController.DeleteComment(Guid.Empty, null).Result; - - Assert.IsInstanceOf<UnauthorizedResult>(result); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Web.Tests/DevHive.Web.Tests.csproj b/src/DevHive.Tests/DevHive.Web.Tests/DevHive.Web.Tests.csproj deleted file mode 100644 index a171e0b..0000000 --- a/src/DevHive.Tests/DevHive.Web.Tests/DevHive.Web.Tests.csproj +++ /dev/null @@ -1,24 +0,0 @@ -<Project Sdk="Microsoft.NET.Sdk"> - - <PropertyGroup> - <TargetFramework>net5.0</TargetFramework> - - <IsPackable>false</IsPackable> - </PropertyGroup> - - <ItemGroup> - <PackageReference Include="Moq" Version="4.16.0" /> - <PackageReference Include="NUnit" Version="3.13.0" /> - <PackageReference Include="NUnit3TestAdapter" Version="3.17.0" /> - <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" /> - </ItemGroup> - - <ItemGroup> - <ProjectReference Include="..\..\DevHive.Web\DevHive.Web.csproj" /> - </ItemGroup> - - <PropertyGroup> - <EnableNETAnalyzers>true</EnableNETAnalyzers> - <AnalysisLevel>latest</AnalysisLevel> - </PropertyGroup> -</Project> diff --git a/src/DevHive.Tests/DevHive.Web.Tests/FeedController.Tests.cs b/src/DevHive.Tests/DevHive.Web.Tests/FeedController.Tests.cs deleted file mode 100644 index 01f67e5..0000000 --- a/src/DevHive.Tests/DevHive.Web.Tests/FeedController.Tests.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using AutoMapper; -using DevHive.Services.Interfaces; -using DevHive.Services.Models; -using DevHive.Web.Controllers; -using DevHive.Web.Models.Comment; -using DevHive.Web.Models.Feed; -using DevHive.Web.Models.Post; -using Microsoft.AspNetCore.Mvc; -using Moq; -using NUnit.Framework; - -namespace DevHive.Web.Tests -{ - [TestFixture] - public class FeedControllerTests - { - private Mock<IFeedService> FeedServiceMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private FeedController FeedController { get; set; } - - #region SetUp - [SetUp] - public void SetUp() - { - this.FeedServiceMock = new Mock<IFeedService>(); - this.MapperMock = new Mock<IMapper>(); - this.FeedController = new FeedController(this.FeedServiceMock.Object, this.MapperMock.Object); - } - #endregion - - #region GetPosts - [Test] - public async Task GetPosts_ReturnsOkObjectResultWithCorrectReadPageWebModel_WhenPostsExist() - { - GetPageWebModel getPageWebModel = new GetPageWebModel { }; - GetPageServiceModel getPageServiceModel = new GetPageServiceModel { }; - ReadPageServiceModel readPageServiceModel = new ReadPageServiceModel { }; - ReadPageWebModel readPageWebModel = new ReadPageWebModel - { - Posts = new List<ReadPostWebModel> - { - new ReadPostWebModel(), - new ReadPostWebModel(), - new ReadPostWebModel() - } - }; - - this.FeedServiceMock.Setup(p => p.GetPage(It.IsAny<GetPageServiceModel>())).Returns(Task.FromResult(readPageServiceModel)); - this.MapperMock.Setup(p => p.Map<GetPageServiceModel>(It.IsAny<GetPageWebModel>())).Returns(getPageServiceModel); - this.MapperMock.Setup(p => p.Map<ReadPageWebModel>(It.IsAny<ReadPageServiceModel>())).Returns(readPageWebModel); - - IActionResult result = await this.FeedController.GetPosts(Guid.Empty, getPageWebModel); - - Assert.IsInstanceOf<OkObjectResult>(result); - - OkObjectResult okObjectResult = result as OkObjectResult; - ReadPageWebModel resultModel = okObjectResult.Value as Models.Comment.ReadPageWebModel; - - Assert.AreEqual(3, resultModel.Posts.Count); - } - #endregion - - #region GetUserPosts - [Test] - public async Task GetUserPosts_GetsPostsOfUser_WhenTheyExist() - { - GetPageWebModel getPageWebModel = new GetPageWebModel { }; - GetPageServiceModel getPageServiceModel = new GetPageServiceModel { }; - ReadPageServiceModel readPageServiceModel = new ReadPageServiceModel { }; - ReadPageWebModel readPageWebModel = new ReadPageWebModel - { - Posts = new List<ReadPostWebModel> - { - new ReadPostWebModel(), - new ReadPostWebModel(), - new ReadPostWebModel() - } - }; - - this.FeedServiceMock.Setup(p => p.GetUserPage(It.IsAny<GetPageServiceModel>())).Returns(Task.FromResult(readPageServiceModel)); - this.MapperMock.Setup(p => p.Map<GetPageServiceModel>(It.IsAny<GetPageWebModel>())).Returns(getPageServiceModel); - this.MapperMock.Setup(p => p.Map<ReadPageWebModel>(It.IsAny<ReadPageServiceModel>())).Returns(readPageWebModel); - - IActionResult result = await this.FeedController.GetUserPosts(null, getPageWebModel); - - Assert.IsInstanceOf<OkObjectResult>(result); - - OkObjectResult okObjectResult = result as OkObjectResult; - ReadPageWebModel resultModel = okObjectResult.Value as Models.Comment.ReadPageWebModel; - - Assert.AreEqual(3, resultModel.Posts.Count); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Web.Tests/LanguageController.Tests.cs b/src/DevHive.Tests/DevHive.Web.Tests/LanguageController.Tests.cs deleted file mode 100644 index 7c8d64e..0000000 --- a/src/DevHive.Tests/DevHive.Web.Tests/LanguageController.Tests.cs +++ /dev/null @@ -1,201 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using AutoMapper; -using DevHive.Services.Interfaces; -using DevHive.Services.Models.Language; -using DevHive.Web.Controllers; -using DevHive.Web.Models.Language; -using Microsoft.AspNetCore.Mvc; -using Moq; -using NUnit.Framework; - -namespace DevHive.Web.Tests -{ - [TestFixture] - public class LanguageControllerTests - { - const string NAME = "Gosho Trapov"; - private Mock<ILanguageService> LanguageServiceMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private LanguageController LanguageController { get; set; } - - [SetUp] - public void SetUp() - { - this.LanguageServiceMock = new Mock<ILanguageService>(); - this.MapperMock = new Mock<IMapper>(); - this.LanguageController = new LanguageController(this.LanguageServiceMock.Object, this.MapperMock.Object); - } - - #region Create - [Test] - public void CreateLanguage_ReturnsOkObjectResult_WhenLanguageIsSuccessfullyCreated() - { - CreateLanguageWebModel createLanguageWebModel = new CreateLanguageWebModel - { - Name = NAME - }; - CreateLanguageServiceModel createLanguageServiceModel = new CreateLanguageServiceModel - { - Name = NAME - }; - Guid id = Guid.NewGuid(); - - this.MapperMock.Setup(p => p.Map<CreateLanguageServiceModel>(It.IsAny<CreateLanguageWebModel>())).Returns(createLanguageServiceModel); - this.LanguageServiceMock.Setup(p => p.CreateLanguage(It.IsAny<CreateLanguageServiceModel>())).Returns(Task.FromResult(id)); - - IActionResult result = this.LanguageController.Create(createLanguageWebModel).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - var splitted = (result as OkObjectResult).Value - .ToString() - .Split('{', '}', '=', ' ') - .Where(x => !string.IsNullOrEmpty(x)) - .ToArray(); - - Guid resultId = Guid.Parse(splitted[1]); - - Assert.AreEqual(id, resultId); - } - - [Test] - public void CreateLanguage_ReturnsBadRequestObjectResult_WhenLanguageIsNotCreatedSuccessfully() - { - CreateLanguageWebModel createTechnologyWebModel = new CreateLanguageWebModel - { - Name = NAME - }; - CreateLanguageServiceModel createTechnologyServiceModel = new CreateLanguageServiceModel - { - Name = NAME - }; - Guid id = Guid.Empty; - string errorMessage = $"Could not create language {NAME}"; - - this.MapperMock.Setup(p => p.Map<CreateLanguageServiceModel>(It.IsAny<CreateLanguageWebModel>())).Returns(createTechnologyServiceModel); - this.LanguageServiceMock.Setup(p => p.CreateLanguage(It.IsAny<CreateLanguageServiceModel>())).Returns(Task.FromResult(id)); - - IActionResult result = this.LanguageController.Create(createTechnologyWebModel).Result; - - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequsetObjectResult = result as BadRequestObjectResult; - string resultMessage = badRequsetObjectResult.Value.ToString(); - - Assert.AreEqual(errorMessage, resultMessage); - } - #endregion - - #region Read - [Test] - public void GetById_ReturnsTheLanguage_WhenItExists() - { - Guid id = Guid.NewGuid(); - - ReadLanguageServiceModel readLanguageServiceModel = new ReadLanguageServiceModel - { - Name = NAME - }; - ReadLanguageWebModel readLanguageWebModel = new ReadLanguageWebModel - { - Name = NAME - }; - - this.LanguageServiceMock.Setup(p => p.GetLanguageById(It.IsAny<Guid>())).Returns(Task.FromResult(readLanguageServiceModel)); - this.MapperMock.Setup(p => p.Map<ReadLanguageWebModel>(It.IsAny<ReadLanguageServiceModel>())).Returns(readLanguageWebModel); - - IActionResult result = this.LanguageController.GetById(id).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - OkObjectResult okObjectResult = result as OkObjectResult; - ReadLanguageWebModel resultModel = okObjectResult.Value as Models.Language.ReadLanguageWebModel; - - Assert.AreEqual(NAME, resultModel.Name); - } - #endregion - - #region Update - [Test] - public void Update_ShouldReturnOkResult_WhenLanguageIsUpdatedSuccessfully() - { - Guid id = Guid.NewGuid(); - UpdateLanguageWebModel updateLanguageWebModel = new UpdateLanguageWebModel - { - Name = NAME - }; - UpdateLanguageServiceModel updateLanguageServiceModel = new UpdateLanguageServiceModel - { - Name = NAME - }; - - this.LanguageServiceMock.Setup(p => p.UpdateLanguage(It.IsAny<UpdateLanguageServiceModel>())).Returns(Task.FromResult(true)); - this.MapperMock.Setup(p => p.Map<UpdateLanguageServiceModel>(It.IsAny<UpdateLanguageWebModel>())).Returns(updateLanguageServiceModel); - - IActionResult result = this.LanguageController.Update(id, updateLanguageWebModel).Result; - - Assert.IsInstanceOf<OkResult>(result); - } - - [Test] - public void Update_ShouldReturnBadObjectResult_WhenLanguageIsNotUpdatedSuccessfully() - { - Guid id = Guid.NewGuid(); - string message = "Could not update Language"; - UpdateLanguageWebModel updateLanguageWebModel = new UpdateLanguageWebModel - { - Name = NAME - }; - UpdateLanguageServiceModel updateLanguageServiceModel = new UpdateLanguageServiceModel - { - Name = NAME - }; - - this.LanguageServiceMock.Setup(p => p.UpdateLanguage(It.IsAny<UpdateLanguageServiceModel>())).Returns(Task.FromResult(false)); - this.MapperMock.Setup(p => p.Map<UpdateLanguageServiceModel>(It.IsAny<UpdateLanguageWebModel>())).Returns(updateLanguageServiceModel); - - IActionResult result = this.LanguageController.Update(id, updateLanguageWebModel).Result; - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; - string resultModel = badRequestObjectResult.Value.ToString(); - - Assert.AreEqual(message, resultModel); - } - #endregion - - #region Delete - [Test] - public void Delete_ReturnsOkResult_WhenLanguageIsDeletedSuccessfully() - { - Guid id = Guid.NewGuid(); - - this.LanguageServiceMock.Setup(p => p.DeleteLanguage(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - - IActionResult result = this.LanguageController.Delete(id).Result; - - Assert.IsInstanceOf<OkResult>(result); - } - - [Test] - public void Delet_ReturnsBadRequestObjectResult_WhenLanguageIsNotDeletedSuccessfully() - { - string message = "Could not delete Language"; - Guid id = Guid.NewGuid(); - - this.LanguageServiceMock.Setup(p => p.DeleteLanguage(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - IActionResult result = this.LanguageController.Delete(id).Result; - - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; - string resultModel = badRequestObjectResult.Value.ToString(); - - Assert.AreEqual(message, resultModel); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Web.Tests/PostController.Tests.cs b/src/DevHive.Tests/DevHive.Web.Tests/PostController.Tests.cs deleted file mode 100644 index 3a4e45e..0000000 --- a/src/DevHive.Tests/DevHive.Web.Tests/PostController.Tests.cs +++ /dev/null @@ -1,248 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using AutoMapper; -using DevHive.Services.Interfaces; -using DevHive.Services.Models.Post; -using DevHive.Web.Controllers; -using DevHive.Web.Models.Post; -using Microsoft.AspNetCore.Mvc; -using Moq; -using NUnit.Framework; - -namespace DevHive.Web.Tests -{ - [TestFixture] - public class PostControllerTests - { - const string MESSAGE = "Gosho Trapov"; - private Mock<IPostService> PostServiceMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private PostController PostController { get; set; } - - [SetUp] - public void SetUp() - { - this.PostServiceMock = new Mock<IPostService>(); - this.MapperMock = new Mock<IMapper>(); - this.PostController = new PostController(this.PostServiceMock.Object, this.MapperMock.Object); - } - - #region Create - [Test] - public void CreatePost_ReturnsOkObjectResult_WhenPostIsSuccessfullyCreated() - { - CreatePostWebModel createPostWebModel = new CreatePostWebModel - { - Message = MESSAGE - }; - CreatePostServiceModel createPostServiceModel = new CreatePostServiceModel - { - Message = MESSAGE - }; - Guid id = Guid.NewGuid(); - - this.MapperMock.Setup(p => p.Map<CreatePostServiceModel>(It.IsAny<CreatePostWebModel>())).Returns(createPostServiceModel); - this.PostServiceMock.Setup(p => p.CreatePost(It.IsAny<CreatePostServiceModel>())).Returns(Task.FromResult(id)); - this.PostServiceMock.Setup(p => p.ValidateJwtForCreating(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - - IActionResult result = this.PostController.Create(Guid.Empty, createPostWebModel, null).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - var splitted = (result as OkObjectResult).Value - .ToString() - .Split('{', '}', '=', ' ') - .Where(x => !string.IsNullOrEmpty(x)) - .ToArray(); - - Guid resultId = Guid.Parse(splitted[1]); - - Assert.AreEqual(id, resultId); - } - - [Test] - public void CreatePost_ReturnsBadRequestObjectResult_WhenPostIsNotCreatedSuccessfully() - { - CreatePostWebModel createTechnologyWebModel = new CreatePostWebModel - { - Message = MESSAGE - }; - CreatePostServiceModel createTechnologyServiceModel = new CreatePostServiceModel - { - Message = MESSAGE - }; - Guid id = Guid.Empty; - string errorMessage = $"Could not create post!"; - - this.MapperMock.Setup(p => p.Map<CreatePostServiceModel>(It.IsAny<CreatePostWebModel>())).Returns(createTechnologyServiceModel); - this.PostServiceMock.Setup(p => p.CreatePost(It.IsAny<CreatePostServiceModel>())).Returns(Task.FromResult(id)); - this.PostServiceMock.Setup(p => p.ValidateJwtForCreating(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - - IActionResult result = this.PostController.Create(Guid.Empty, createTechnologyWebModel, null).Result; - - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequsetObjectResult = result as BadRequestObjectResult; - string resultMessage = badRequsetObjectResult.Value.ToString(); - - Assert.AreEqual(errorMessage, resultMessage); - } - - [Test] - public void CreatePost_ReturnsUnauthorizedResult_WhenUserIsNotAuthorized() - { - Guid id = Guid.NewGuid(); - CreatePostWebModel createPostWebModel = new CreatePostWebModel - { - Message = MESSAGE - }; - - this.PostServiceMock.Setup(p => p.ValidateJwtForCreating(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(false)); - - IActionResult result = this.PostController.Create(Guid.NewGuid(), createPostWebModel, null).Result; - - Assert.IsInstanceOf<UnauthorizedResult>(result); - } - #endregion - - #region Read - [Test] - public void GetById_ReturnsThePost_WhenItExists() - { - Guid id = Guid.NewGuid(); - - ReadPostServiceModel readPostServiceModel = new ReadPostServiceModel - { - Message = MESSAGE - }; - ReadPostWebModel readPostWebModel = new ReadPostWebModel - { - Message = MESSAGE - }; - - this.PostServiceMock.Setup(p => p.GetPostById(It.IsAny<Guid>())).Returns(Task.FromResult(readPostServiceModel)); - this.MapperMock.Setup(p => p.Map<ReadPostWebModel>(It.IsAny<ReadPostServiceModel>())).Returns(readPostWebModel); - - IActionResult result = this.PostController.GetById(id).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - OkObjectResult okObjectResult = result as OkObjectResult; - ReadPostWebModel resultModel = okObjectResult.Value as Models.Post.ReadPostWebModel; - - Assert.AreEqual(MESSAGE, resultModel.Message); - } - #endregion - - #region Update - [Test] - public void Update_ShouldReturnOkResult_WhenPostIsUpdatedSuccessfully() - { - Guid id = Guid.NewGuid(); - UpdatePostWebModel updatePostWebModel = new UpdatePostWebModel - { - NewMessage = MESSAGE - }; - UpdatePostServiceModel updatePostServiceModel = new UpdatePostServiceModel - { - NewMessage = MESSAGE - }; - - this.PostServiceMock.Setup(p => p.UpdatePost(It.IsAny<UpdatePostServiceModel>())).Returns(Task.FromResult(id)); - this.MapperMock.Setup(p => p.Map<UpdatePostServiceModel>(It.IsAny<UpdatePostWebModel>())).Returns(updatePostServiceModel); - this.PostServiceMock.Setup(p => p.ValidateJwtForPost(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - - IActionResult result = this.PostController.Update(id, updatePostWebModel, null).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - } - - [Test] - public void Update_ShouldReturnBadObjectResult_WhenPostIsNotUpdatedSuccessfully() - { - Guid id = Guid.NewGuid(); - string message = "Could not update post!"; - UpdatePostWebModel updatePostWebModel = new UpdatePostWebModel - { - NewMessage = MESSAGE - }; - UpdatePostServiceModel updatePostServiceModel = new UpdatePostServiceModel - { - NewMessage = MESSAGE - }; - - this.PostServiceMock.Setup(p => p.UpdatePost(It.IsAny<UpdatePostServiceModel>())).Returns(Task.FromResult(Guid.Empty)); - this.MapperMock.Setup(p => p.Map<UpdatePostServiceModel>(It.IsAny<UpdatePostWebModel>())).Returns(updatePostServiceModel); - this.PostServiceMock.Setup(p => p.ValidateJwtForPost(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - - IActionResult result = this.PostController.Update(id, updatePostWebModel, null).Result; - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; - string resultModel = badRequestObjectResult.Value.ToString(); - - Assert.AreEqual(message, resultModel); - } - - [Test] - public void Update_ShouldReturnUnauthorizedResult_WhenUserIsNotAuthorized() - { - UpdatePostWebModel updatePostWebModel = new UpdatePostWebModel - { - NewMessage = MESSAGE - }; - - this.PostServiceMock.Setup(p => p.ValidateJwtForPost(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(false)); - - IActionResult result = this.PostController.Update(Guid.Empty, updatePostWebModel, null).Result; - - Assert.IsInstanceOf<UnauthorizedResult>(result); - } - #endregion - - #region Delete - [Test] - public void Delete_ReturnsOkResult_WhenPostIsDeletedSuccessfully() - { - Guid id = Guid.NewGuid(); - - this.PostServiceMock.Setup(p => p.DeletePost(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - this.PostServiceMock.Setup(p => p.ValidateJwtForPost(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - - IActionResult result = this.PostController.Delete(id, null).Result; - - Assert.IsInstanceOf<OkResult>(result); - } - - [Test] - public void Delete_ReturnsBadRequestObjectResult_WhenPostIsNotDeletedSuccessfully() - { - string message = "Could not delete Post"; - Guid id = Guid.NewGuid(); - - this.PostServiceMock.Setup(p => p.DeletePost(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - this.PostServiceMock.Setup(p => p.ValidateJwtForPost(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - - IActionResult result = this.PostController.Delete(id, null).Result; - - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; - string resultModel = badRequestObjectResult.Value.ToString(); - - Assert.AreEqual(message, resultModel); - } - - [Test] - public void DeletePost_ReturnsUnauthorizedResult_WhenUserIsNotAuthorized() - { - this.PostServiceMock.Setup(p => p.ValidateJwtForPost(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(false)); - - IActionResult result = this.PostController.Delete(Guid.Empty, null).Result; - - Assert.IsInstanceOf<UnauthorizedResult>(result); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Web.Tests/RoleController.Tests.cs b/src/DevHive.Tests/DevHive.Web.Tests/RoleController.Tests.cs deleted file mode 100644 index 067b4e4..0000000 --- a/src/DevHive.Tests/DevHive.Web.Tests/RoleController.Tests.cs +++ /dev/null @@ -1,201 +0,0 @@ -using System; -using System.Linq; -using System.Threading.Tasks; -using AutoMapper; -using DevHive.Services.Interfaces; -using DevHive.Services.Models.Identity.Role; -using DevHive.Web.Controllers; -using DevHive.Web.Models.Identity.Role; -using Microsoft.AspNetCore.Mvc; -using Moq; -using NUnit.Framework; - -namespace DevHive.Web.Tests -{ - [TestFixture] - public class RoleControllerTests - { - const string NAME = "Gosho Trapov"; - private Mock<IRoleService> RoleServiceMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private RoleController RoleController { get; set; } - - [SetUp] - public void SetUp() - { - this.RoleServiceMock = new Mock<IRoleService>(); - this.MapperMock = new Mock<IMapper>(); - this.RoleController = new RoleController(this.RoleServiceMock.Object, this.MapperMock.Object); - } - - #region Create - [Test] - public void CreateRole_ReturnsOkObjectResult_WhenRoleIsSuccessfullyCreated() - { - CreateRoleWebModel createRoleWebModel = new CreateRoleWebModel - { - Name = NAME - }; - CreateRoleServiceModel createRoleServiceModel = new CreateRoleServiceModel - { - Name = NAME - }; - Guid id = Guid.NewGuid(); - - this.MapperMock.Setup(p => p.Map<CreateRoleServiceModel>(It.IsAny<CreateRoleWebModel>())).Returns(createRoleServiceModel); - this.RoleServiceMock.Setup(p => p.CreateRole(It.IsAny<CreateRoleServiceModel>())).Returns(Task.FromResult(id)); - - IActionResult result = this.RoleController.Create(createRoleWebModel).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - var splitted = (result as OkObjectResult).Value - .ToString() - .Split('{', '}', '=', ' ') - .Where(x => !string.IsNullOrEmpty(x)) - .ToArray(); - - Guid resultId = Guid.Parse(splitted[1]); - - Assert.AreEqual(id, resultId); - } - - [Test] - public void CreateRole_ReturnsBadRequestObjectResult_WhenRoleIsNotCreatedSuccessfully() - { - CreateRoleWebModel createTechnologyWebModel = new CreateRoleWebModel - { - Name = NAME - }; - CreateRoleServiceModel createTechnologyServiceModel = new CreateRoleServiceModel - { - Name = NAME - }; - Guid id = Guid.Empty; - string errorMessage = $"Could not create role {NAME}"; - - this.MapperMock.Setup(p => p.Map<CreateRoleServiceModel>(It.IsAny<CreateRoleWebModel>())).Returns(createTechnologyServiceModel); - this.RoleServiceMock.Setup(p => p.CreateRole(It.IsAny<CreateRoleServiceModel>())).Returns(Task.FromResult(id)); - - IActionResult result = this.RoleController.Create(createTechnologyWebModel).Result; - - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequsetObjectResult = result as BadRequestObjectResult; - string resultMessage = badRequsetObjectResult.Value.ToString(); - - Assert.AreEqual(errorMessage, resultMessage); - } - #endregion - - #region Read - [Test] - public void GetById_ReturnsTheRole_WhenItExists() - { - Guid id = Guid.NewGuid(); - - RoleServiceModel roleServiceModel = new RoleServiceModel - { - Name = NAME - }; - RoleWebModel roleWebModel = new RoleWebModel - { - Name = NAME - }; - - this.RoleServiceMock.Setup(p => p.GetRoleById(It.IsAny<Guid>())).Returns(Task.FromResult(roleServiceModel)); - this.MapperMock.Setup(p => p.Map<RoleWebModel>(It.IsAny<RoleServiceModel>())).Returns(roleWebModel); - - IActionResult result = this.RoleController.GetById(id).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - OkObjectResult okObjectResult = result as OkObjectResult; - RoleWebModel resultModel = okObjectResult.Value as Models.Identity.Role.RoleWebModel; - - Assert.AreEqual(NAME, resultModel.Name); - } - #endregion - - #region Update - [Test] - public void Update_ShouldReturnOkResult_WhenRoleIsUpdatedSuccessfully() - { - Guid id = Guid.NewGuid(); - UpdateRoleWebModel updateRoleWebModel = new UpdateRoleWebModel - { - Name = NAME - }; - UpdateRoleServiceModel updateRoleServiceModel = new UpdateRoleServiceModel - { - Name = NAME - }; - - this.RoleServiceMock.Setup(p => p.UpdateRole(It.IsAny<UpdateRoleServiceModel>())).Returns(Task.FromResult(true)); - this.MapperMock.Setup(p => p.Map<UpdateRoleServiceModel>(It.IsAny<UpdateRoleWebModel>())).Returns(updateRoleServiceModel); - - IActionResult result = this.RoleController.Update(id, updateRoleWebModel).Result; - - Assert.IsInstanceOf<OkResult>(result); - } - - [Test] - public void Update_ShouldReturnBadObjectResult_WhenRoleIsNotUpdatedSuccessfully() - { - Guid id = Guid.NewGuid(); - string message = "Could not update role!"; - UpdateRoleWebModel updateRoleWebModel = new UpdateRoleWebModel - { - Name = NAME - }; - UpdateRoleServiceModel updateRoleServiceModel = new UpdateRoleServiceModel - { - Name = NAME - }; - - this.RoleServiceMock.Setup(p => p.UpdateRole(It.IsAny<UpdateRoleServiceModel>())).Returns(Task.FromResult(false)); - this.MapperMock.Setup(p => p.Map<UpdateRoleServiceModel>(It.IsAny<UpdateRoleWebModel>())).Returns(updateRoleServiceModel); - - IActionResult result = this.RoleController.Update(id, updateRoleWebModel).Result; - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; - string resultModel = badRequestObjectResult.Value.ToString(); - - Assert.AreEqual(message, resultModel); - } - #endregion - - #region Delete - [Test] - public void Delete_ReturnsOkResult_WhenRoleIsDeletedSuccessfully() - { - Guid id = Guid.NewGuid(); - - this.RoleServiceMock.Setup(p => p.DeleteRole(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - - IActionResult result = this.RoleController.Delete(id).Result; - - Assert.IsInstanceOf<OkResult>(result); - } - - [Test] - public void Delet_ReturnsBadRequestObjectResult_WhenRoleIsNotDeletedSuccessfully() - { - string message = "Could not delete role!"; - Guid id = Guid.NewGuid(); - - this.RoleServiceMock.Setup(p => p.DeleteRole(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - IActionResult result = this.RoleController.Delete(id).Result; - - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; - string resultModel = badRequestObjectResult.Value.ToString(); - - Assert.AreEqual(message, resultModel); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Web.Tests/TechnologyController.Tests.cs b/src/DevHive.Tests/DevHive.Web.Tests/TechnologyController.Tests.cs deleted file mode 100644 index 164bcbf..0000000 --- a/src/DevHive.Tests/DevHive.Web.Tests/TechnologyController.Tests.cs +++ /dev/null @@ -1,204 +0,0 @@ -using AutoMapper; -using DevHive.Common.Models.Misc; -using DevHive.Services.Interfaces; -using DevHive.Services.Models.Technology; -using DevHive.Web.Controllers; -using DevHive.Web.Models.Technology; -using Microsoft.AspNetCore.Mvc; -using Moq; -using NUnit.Framework; -using System; -using System.Linq; -using System.Threading.Tasks; - -namespace DevHive.Web.Tests -{ - [TestFixture] - public class TechnologyControllerTests - { - const string NAME = "Gosho Trapov"; - private Mock<ITechnologyService> TechnologyServiceMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private TechnologyController TechnologyController { get; set; } - - #region SetUp - [SetUp] - public void SetUp() - { - this.TechnologyServiceMock = new Mock<ITechnologyService>(); - this.MapperMock = new Mock<IMapper>(); - this.TechnologyController = new TechnologyController(this.TechnologyServiceMock.Object, this.MapperMock.Object); - } - #endregion - - #region Create - [Test] - public void Create_ReturnsOkObjectResult_WhenTechnologyIsSuccessfullyCreated() - { - CreateTechnologyWebModel createTechnologyWebModel = new CreateTechnologyWebModel - { - Name = NAME - }; - CreateTechnologyServiceModel createTechnologyServiceModel = new CreateTechnologyServiceModel - { - Name = NAME - }; - Guid id = Guid.NewGuid(); - - this.MapperMock.Setup(p => p.Map<CreateTechnologyServiceModel>(It.IsAny<CreateTechnologyWebModel>())).Returns(createTechnologyServiceModel); - this.TechnologyServiceMock.Setup(p => p.CreateTechnology(It.IsAny<CreateTechnologyServiceModel>())).Returns(Task.FromResult(id)); - - IActionResult result = this.TechnologyController.Create(createTechnologyWebModel).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - var splitted = (result as OkObjectResult).Value - .ToString() - .Split('{', '}', '=', ' ') - .Where(x => !string.IsNullOrEmpty(x)) - .ToArray(); - - Guid resultId = Guid.Parse(splitted[1]); - - Assert.AreEqual(id, resultId); - } - - [Test] - public void Create_ReturnsBadRequestObjectResult_WhenTechnologyIsNotCreatedSuccessfully() - { - CreateTechnologyWebModel createTechnologyWebModel = new CreateTechnologyWebModel - { - Name = NAME - }; - CreateTechnologyServiceModel createTechnologyServiceModel = new CreateTechnologyServiceModel - { - Name = NAME - }; - Guid id = Guid.Empty; - string errorMessage = $"Could not create technology {NAME}"; - - this.MapperMock.Setup(p => p.Map<CreateTechnologyServiceModel>(It.IsAny<CreateTechnologyWebModel>())).Returns(createTechnologyServiceModel); - this.TechnologyServiceMock.Setup(p => p.CreateTechnology(It.IsAny<CreateTechnologyServiceModel>())).Returns(Task.FromResult(id)); - - IActionResult result = this.TechnologyController.Create(createTechnologyWebModel).Result; - - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequsetObjectResult = result as BadRequestObjectResult; - string resultMessage = badRequsetObjectResult.Value.ToString(); - - Assert.AreEqual(errorMessage, resultMessage); - } - #endregion - - #region Read - [Test] - public void GetById_ReturnsTheThecnology_WhenItExists() - { - Guid id = Guid.NewGuid(); - - ReadTechnologyWebModel readTechnologyWebModel = new ReadTechnologyWebModel - { - Name = NAME - }; - ReadTechnologyServiceModel readTechnologyServiceModel = new ReadTechnologyServiceModel - { - Name = NAME - }; - - this.TechnologyServiceMock.Setup(p => p.GetTechnologyById(It.IsAny<Guid>())).Returns(Task.FromResult(readTechnologyServiceModel)); - this.MapperMock.Setup(p => p.Map<ReadTechnologyWebModel>(It.IsAny<ReadTechnologyServiceModel>())).Returns(readTechnologyWebModel); - - IActionResult result = this.TechnologyController.GetById(id).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - OkObjectResult okObjectResult = result as OkObjectResult; - ReadTechnologyWebModel resultModel = okObjectResult.Value as Models.Technology.ReadTechnologyWebModel; - - Assert.AreEqual(NAME, resultModel.Name); - } - #endregion - - #region Update - [Test] - public void Update_ShouldReturnOkResult_WhenTechnologyIsUpdatedSuccessfully() - { - Guid id = Guid.NewGuid(); - UpdateTechnologyWebModel updateTechnologyWebModel = new UpdateTechnologyWebModel - { - Name = NAME - }; - UpdateTechnologyServiceModel updateTechnologyServiceModel = new UpdateTechnologyServiceModel - { - Name = NAME - }; - - this.TechnologyServiceMock.Setup(p => p.UpdateTechnology(It.IsAny<UpdateTechnologyServiceModel>())).Returns(Task.FromResult(true)); - this.MapperMock.Setup(p => p.Map<UpdateTechnologyServiceModel>(It.IsAny<UpdateTechnologyWebModel>())).Returns(updateTechnologyServiceModel); - - IActionResult result = this.TechnologyController.Update(id, updateTechnologyWebModel).Result; - - Assert.IsInstanceOf<OkResult>(result); - } - - [Test] - public void Update_ShouldReturnBadObjectResult_WhenTechnologyIsNotUpdatedSuccessfully() - { - Guid id = Guid.NewGuid(); - string message = "Could not update Technology"; - UpdateTechnologyWebModel updateTechnologyWebModel = new UpdateTechnologyWebModel - { - Name = NAME - }; - UpdateTechnologyServiceModel updateTechnologyServiceModel = new UpdateTechnologyServiceModel - { - Name = NAME - }; - - this.TechnologyServiceMock.Setup(p => p.UpdateTechnology(It.IsAny<UpdateTechnologyServiceModel>())).Returns(Task.FromResult(false)); - this.MapperMock.Setup(p => p.Map<UpdateTechnologyServiceModel>(It.IsAny<UpdateTechnologyWebModel>())).Returns(updateTechnologyServiceModel); - - IActionResult result = this.TechnologyController.Update(id, updateTechnologyWebModel).Result; - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; - string resultModel = badRequestObjectResult.Value.ToString(); - - Assert.AreEqual(message, resultModel); - } - #endregion - - #region Delete - [Test] - public void Delete_ReturnsOkResult_WhenTechnologyIsDeletedSuccessfully() - { - Guid id = Guid.NewGuid(); - - this.TechnologyServiceMock.Setup(p => p.DeleteTechnology(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - - IActionResult result = this.TechnologyController.Delete(id).Result; - - Assert.IsInstanceOf<OkResult>(result); - } - - [Test] - public void Delet_ReturnsBadRequestObjectResult_WhenTechnologyIsNotDeletedSuccessfully() - { - string message = "Could not delete Technology"; - Guid id = Guid.NewGuid(); - - this.TechnologyServiceMock.Setup(p => p.DeleteTechnology(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - IActionResult result = this.TechnologyController.Delete(id).Result; - - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; - string resultModel = badRequestObjectResult.Value.ToString(); - - Assert.AreEqual(message, resultModel); - } - #endregion - } -} diff --git a/src/DevHive.Tests/DevHive.Web.Tests/UserController.Tests.cs b/src/DevHive.Tests/DevHive.Web.Tests/UserController.Tests.cs deleted file mode 100644 index c1431c8..0000000 --- a/src/DevHive.Tests/DevHive.Web.Tests/UserController.Tests.cs +++ /dev/null @@ -1,257 +0,0 @@ -using System; -using System.Threading.Tasks; -using AutoMapper; -using DevHive.Common.Models.Identity; -using DevHive.Services.Interfaces; -using DevHive.Services.Models.Identity.User; -using DevHive.Web.Controllers; -using DevHive.Web.Models.Identity.User; -using Microsoft.AspNetCore.Mvc; -using Moq; -using NUnit.Framework; - -namespace DevHive.Web.Tests -{ - [TestFixture] - public class UserControllerTests - { - const string USERNAME = "Gosho Trapov"; - private Mock<IUserService> UserServiceMock { get; set; } - private Mock<IMapper> MapperMock { get; set; } - private UserController UserController { get; set; } - - [SetUp] - public void SetUp() - { - this.UserServiceMock = new Mock<IUserService>(); - this.MapperMock = new Mock<IMapper>(); - this.UserController = new UserController(this.UserServiceMock.Object, this.MapperMock.Object); - } - - #region Create - [Test] - public void LoginUser_ReturnsOkObjectResult_WhenUserIsSuccessfullyLoggedIn() - { - Guid id = Guid.NewGuid(); - LoginWebModel loginWebModel = new LoginWebModel - { - UserName = USERNAME - }; - LoginServiceModel loginServiceModel = new LoginServiceModel - { - UserName = USERNAME - }; - string token = "goshotrapov"; - TokenModel tokenModel = new TokenModel(token); - TokenWebModel tokenWebModel = new TokenWebModel(token); - - this.MapperMock.Setup(p => p.Map<LoginServiceModel>(It.IsAny<LoginWebModel>())).Returns(loginServiceModel); - this.MapperMock.Setup(p => p.Map<TokenWebModel>(It.IsAny<TokenModel>())).Returns(tokenWebModel); - this.UserServiceMock.Setup(p => p.LoginUser(It.IsAny<LoginServiceModel>())).Returns(Task.FromResult(tokenModel)); - - IActionResult result = this.UserController.Login(loginWebModel).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - var resultToken = ((result as OkObjectResult).Value as TokenWebModel).Token; - - Assert.AreEqual(token, resultToken); - } - - [Test] - public void RegisterUser_ReturnsOkObjectResult_WhenUserIsSuccessfullyRegistered() - { - Guid id = Guid.NewGuid(); - RegisterWebModel registerWebModel = new RegisterWebModel - { - UserName = USERNAME - }; - RegisterServiceModel registerServiceModel = new RegisterServiceModel - { - UserName = USERNAME - }; - string token = "goshotrapov"; - TokenModel tokenModel = new TokenModel(token); - TokenWebModel tokenWebModel = new TokenWebModel(token); - - this.MapperMock.Setup(p => p.Map<RegisterServiceModel>(It.IsAny<RegisterWebModel>())).Returns(registerServiceModel); - this.MapperMock.Setup(p => p.Map<TokenWebModel>(It.IsAny<TokenModel>())).Returns(tokenWebModel); - this.UserServiceMock.Setup(p => p.RegisterUser(It.IsAny<RegisterServiceModel>())).Returns(Task.FromResult(tokenModel)); - - IActionResult result = this.UserController.Register(registerWebModel).Result; - - Assert.IsInstanceOf<CreatedResult>(result); - - CreatedResult createdResult = result as CreatedResult; - TokenWebModel resultModel = (createdResult.Value as TokenWebModel); - - Assert.AreEqual(token, resultModel.Token); - } - #endregion - - #region Read - [Test] - public void GetById_ReturnsTheUser_WhenItExists() - { - Guid id = Guid.NewGuid(); - - UserServiceModel userServiceModel = new UserServiceModel - { - UserName = USERNAME - }; - UserWebModel userWebModel = new UserWebModel - { - UserName = USERNAME - }; - - this.UserServiceMock.Setup(p => p.GetUserById(It.IsAny<Guid>())).Returns(Task.FromResult(userServiceModel)); - this.UserServiceMock.Setup(p => p.ValidJWT(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - this.MapperMock.Setup(p => p.Map<UserWebModel>(It.IsAny<UserServiceModel>())).Returns(userWebModel); - - IActionResult result = this.UserController.GetById(id, null).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - OkObjectResult okObjectResult = result as OkObjectResult; - UserWebModel resultModel = okObjectResult.Value as Models.Identity.User.UserWebModel; - - Assert.AreEqual(USERNAME, resultModel.UserName); - } - - [Test] - public void GetById_ReturnsUnauthorizedResult_WhenUserIsNotAuthorized() - { - Guid id = Guid.NewGuid(); - UserWebModel userWebModel = new UserWebModel - { - UserName = USERNAME - }; - - this.UserServiceMock.Setup(p => p.ValidJWT(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(false)); - - IActionResult result = this.UserController.GetById(Guid.NewGuid(), null).Result; - - Assert.IsInstanceOf<UnauthorizedResult>(result); - } - - [Test] - public void GetUser_ReturnsTheUser_WhenItExists() - { - Guid id = Guid.NewGuid(); - UserWebModel userWebModel = new UserWebModel - { - UserName = USERNAME - }; - UserServiceModel userServiceModel = new UserServiceModel - { - UserName = USERNAME - }; - - this.UserServiceMock.Setup(p => p.GetUserByUsername(It.IsAny<string>())).Returns(Task.FromResult(userServiceModel)); - this.MapperMock.Setup(p => p.Map<UserWebModel>(It.IsAny<UserServiceModel>())).Returns(userWebModel); - - IActionResult result = this.UserController.GetUser(null).Result; - - Assert.IsInstanceOf<OkObjectResult>(result); - - OkObjectResult okObjectResult = result as OkObjectResult; - UserWebModel resultModel = okObjectResult.Value as Models.Identity.User.UserWebModel; - - Assert.AreEqual(USERNAME, resultModel.UserName); - } - #endregion - - #region Update - [Test] - public void Update_ShouldReturnOkResult_WhenUserIsUpdatedSuccessfully() - { - Guid id = Guid.NewGuid(); - UpdateUserWebModel updateUserWebModel = new UpdateUserWebModel - { - UserName = USERNAME - }; - UpdateUserServiceModel updateUserServiceModel = new UpdateUserServiceModel - { - UserName = USERNAME - }; - UserServiceModel userServiceModel = new UserServiceModel - { - UserName = USERNAME - }; - - this.UserServiceMock.Setup(p => p.UpdateUser(It.IsAny<UpdateUserServiceModel>())).Returns(Task.FromResult(userServiceModel)); - this.UserServiceMock.Setup(p => p.ValidJWT(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - this.MapperMock.Setup(p => p.Map<UpdateUserServiceModel>(It.IsAny<UpdateUserWebModel>())).Returns(updateUserServiceModel); - - IActionResult result = this.UserController.Update(id, updateUserWebModel, null).Result; - - Assert.IsInstanceOf<AcceptedResult>(result); - } - - [Test] - public void UpdateProfilePicture_ShouldReturnOkObjectResult_WhenProfilePictureIsUpdatedSuccessfully() - { - string profilePictureURL = "goshotrapov"; - UpdateProfilePictureWebModel updateProfilePictureWebModel = new UpdateProfilePictureWebModel(); - UpdateProfilePictureServiceModel updateProfilePictureServiceModel = new UpdateProfilePictureServiceModel(); - ProfilePictureServiceModel profilePictureServiceModel = new ProfilePictureServiceModel - { - ProfilePictureURL = profilePictureURL - }; - ProfilePictureWebModel profilePictureWebModel = new ProfilePictureWebModel - { - ProfilePictureURL = profilePictureURL - }; - - this.UserServiceMock.Setup(p => p.ValidJWT(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - this.MapperMock.Setup(p => p.Map<UpdateProfilePictureServiceModel>(It.IsAny<UpdateProfilePictureWebModel>())).Returns(updateProfilePictureServiceModel); - this.UserServiceMock.Setup(p => p.UpdateProfilePicture(It.IsAny<UpdateProfilePictureServiceModel>())).Returns(Task.FromResult(profilePictureServiceModel)); - this.MapperMock.Setup(p => p.Map<ProfilePictureWebModel>(It.IsAny<ProfilePictureServiceModel>())).Returns(profilePictureWebModel); - - - IActionResult result = this.UserController.UpdateProfilePicture(Guid.Empty, updateProfilePictureWebModel, null).Result; - - Assert.IsInstanceOf<AcceptedResult>(result); - - AcceptedResult acceptedResult = result as AcceptedResult; - ProfilePictureWebModel resultModel = acceptedResult.Value as Models.Identity.User.ProfilePictureWebModel; - - Assert.AreEqual(profilePictureURL, resultModel.ProfilePictureURL); - } - #endregion - - #region Delete - [Test] - public void Delete_ReturnsOkResult_WhenUserIsDeletedSuccessfully() - { - Guid id = Guid.NewGuid(); - - this.UserServiceMock.Setup(p => p.ValidJWT(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - this.UserServiceMock.Setup(p => p.DeleteUser(It.IsAny<Guid>())).Returns(Task.FromResult(true)); - - IActionResult result = this.UserController.Delete(id, null).Result; - - Assert.IsInstanceOf<OkResult>(result); - } - - [Test] - public void Delete_ReturnsBadRequestObjectResult_WhenUserIsNotDeletedSuccessfully() - { - string message = "Could not delete User"; - Guid id = Guid.NewGuid(); - - this.UserServiceMock.Setup(p => p.ValidJWT(It.IsAny<Guid>(), It.IsAny<string>())).Returns(Task.FromResult(true)); - this.UserServiceMock.Setup(p => p.DeleteUser(It.IsAny<Guid>())).Returns(Task.FromResult(false)); - - IActionResult result = this.UserController.Delete(id, null).Result; - - Assert.IsInstanceOf<BadRequestObjectResult>(result); - - BadRequestObjectResult badRequestObjectResult = result as BadRequestObjectResult; - string resultModel = badRequestObjectResult.Value.ToString(); - - Assert.AreEqual(message, resultModel); - } - #endregion - } -} |
