aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/DevHive.Tests')
-rw-r--r--src/DevHive.Tests/DevHive.Data.Tests/DevHive.Data.Tests.csproj2
-rw-r--r--src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs11
-rw-r--r--src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs144
-rw-r--r--src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs74
-rw-r--r--src/DevHive.Tests/DevHive.Services.Tests/DevHive.Services.Tests.csproj2
-rw-r--r--src/DevHive.Tests/DevHive.Services.Tests/LanguageService.Tests.cs231
-rw-r--r--src/DevHive.Tests/DevHive.Services.Tests/TechnologyServices.Tests.cs166
-rw-r--r--src/DevHive.Tests/DevHive.Web.Tests/DevHive.Web.Tests.csproj2
-rw-r--r--src/DevHive.Tests/DevHive.Web.Tests/LanguageController.Tests.cs201
-rw-r--r--src/DevHive.Tests/DevHive.Web.Tests/PostController.Tests.cs12
-rw-r--r--src/DevHive.Tests/DevHive.Web.Tests/TechnologyController.Tests.cs44
11 files changed, 641 insertions, 248 deletions
diff --git a/src/DevHive.Tests/DevHive.Data.Tests/DevHive.Data.Tests.csproj b/src/DevHive.Tests/DevHive.Data.Tests/DevHive.Data.Tests.csproj
index 81e7b2b..d320450 100644
--- a/src/DevHive.Tests/DevHive.Data.Tests/DevHive.Data.Tests.csproj
+++ b/src/DevHive.Tests/DevHive.Data.Tests/DevHive.Data.Tests.csproj
@@ -8,7 +8,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.1" />
- <PackageReference Include="Moq" Version="4.15.2" />
+ <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" />
diff --git a/src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs b/src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs
new file mode 100644
index 0000000..aefeddd
--- /dev/null
+++ b/src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs
@@ -0,0 +1,11 @@
+using System;
+using NUnit.Framework;
+
+namespace DevHive.Data.Tests
+{
+ [TestFixture]
+ public class LenguageRepositoryTests
+ {
+ // pending repo refactoring
+ }
+}
diff --git a/src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs b/src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs
index 18d72b9..289d846 100644
--- a/src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs
+++ b/src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs
@@ -1,4 +1,4 @@
-using DevHive.Data.Models;
+using DevHive.Data.Models;
using DevHive.Data.Repositories;
using Microsoft.EntityFrameworkCore;
using NUnit.Framework;
@@ -35,11 +35,10 @@ namespace DevHive.Data.Tests
}
#region AddAsync
-
[Test]
- public void AddAsync_AddsTheGivenTechnologyToTheDatabase()
+ public async Task AddAsync_AddsTheGivenTechnologyToTheDatabase()
{
- AddEntity();
+ await AddEntity();
int numberOfTechnologies = Context.Technologies.Count();
@@ -48,154 +47,123 @@ namespace DevHive.Data.Tests
#endregion
#region GetByIdAsync
-
[Test]
- public void GetByIdAsync_ReturnsTheCorrectTechnology_IfIdExists()
+ public async Task GetByIdAsync_ReturnsTheCorrectTechnology_IfIdExists()
{
- Task.Run(async () =>
- {
- AddEntity();
- Technology technology = this.Context.Technologies.Where(x => x.Name == TECHNOLOGY_NAME).ToList().FirstOrDefault();
- Guid id = technology.Id;
+ await AddEntity();
+ Technology technology = this.Context.Technologies.Where(x => x.Name == TECHNOLOGY_NAME).ToList().FirstOrDefault();
+ Guid id = technology.Id;
- Technology technologyReturned = await this.TechnologyRepository.GetByIdAsync(id);
+ Technology technologyReturned = await this.TechnologyRepository.GetByIdAsync(id);
- Assert.AreEqual(TECHNOLOGY_NAME, technologyReturned.Name, "GetByIdAsync does not return the correct Technology when id is valid");
- }).GetAwaiter().GetResult();
+ Assert.AreEqual(TECHNOLOGY_NAME, technologyReturned.Name, "GetByIdAsync does not return the correct Technology when id is valid");
}
[Test]
- public void GetByIdAsync_ReturnsNull_IfIdDoesNotExists()
+ public async Task GetByIdAsync_ReturnsNull_IfIdDoesNotExists()
{
- Task.Run(async () =>
- {
- Guid id = new Guid();
+ Guid id = Guid.NewGuid();
- Technology technologyReturned = await this.TechnologyRepository.GetByIdAsync(id);
+ Technology technologyReturned = await this.TechnologyRepository.GetByIdAsync(id);
- Assert.IsNull(technologyReturned, "GetByIdAsync returns Technology when it should be null");
- }).GetAwaiter().GetResult();
+ Assert.IsNull(technologyReturned, "GetByIdAsync returns Technology when it should be null");
}
#endregion
#region DoesTechnologyExistAsync
[Test]
- public void DoesTechnologyExist_ReturnsTrue_IfIdExists()
+ public async Task DoesTechnologyExist_ReturnsTrue_IfIdExists()
{
- Task.Run(async () =>
- {
- AddEntity();
- Technology technology = this.Context.Technologies.Where(x => x.Name == TECHNOLOGY_NAME).ToList().FirstOrDefault();
- Guid id = technology.Id;
+ 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);
+ bool result = await this.TechnologyRepository.DoesTechnologyExistAsync(id);
- Assert.IsTrue(result, "DoesTechnologyExistAsync returns flase hwen technology exists");
- }).GetAwaiter().GetResult();
+ Assert.IsTrue(result, "DoesTechnologyExistAsync returns flase hwen technology exists");
}
[Test]
- public void DoesTechnologyExist_ReturnsFalse_IfIdDoesNotExists()
+ public async Task DoesTechnologyExist_ReturnsFalse_IfIdDoesNotExists()
{
- Task.Run(async () =>
- {
- Guid id = new Guid();
+ Guid id = Guid.NewGuid();
- bool result = await this.TechnologyRepository.DoesTechnologyExistAsync(id);
+ bool result = await this.TechnologyRepository.DoesTechnologyExistAsync(id);
- Assert.IsFalse(result, "DoesTechnologyExistAsync returns true when technology does not exist");
- }).GetAwaiter().GetResult();
+ Assert.IsFalse(result, "DoesTechnologyExistAsync returns true when technology does not exist");
}
#endregion
#region DoesTechnologyNameExistAsync
[Test]
- public void DoesTechnologyNameExist_ReturnsTrue_IfTechnologyExists()
+ public async Task DoesTechnologyNameExist_ReturnsTrue_IfTechnologyExists()
{
- Task.Run(async () =>
- {
- AddEntity();
+ await AddEntity();
- bool result = await this.TechnologyRepository.DoesTechnologyNameExistAsync(TECHNOLOGY_NAME);
+ bool result = await this.TechnologyRepository.DoesTechnologyNameExistAsync(TECHNOLOGY_NAME);
- Assert.IsTrue(result, "DoesTechnologyNameExists returns true when technology name does not exist");
- }).GetAwaiter().GetResult();
+ Assert.IsTrue(result, "DoesTechnologyNameExists returns true when technology name does not exist");
}
[Test]
- public void DoesTechnologyNameExist_ReturnsFalse_IfTechnologyDoesNotExists()
+ public async Task DoesTechnologyNameExist_ReturnsFalse_IfTechnologyDoesNotExists()
{
- Task.Run(async () =>
- {
- bool result = await this.TechnologyRepository.DoesTechnologyNameExistAsync(TECHNOLOGY_NAME);
+ bool result = await this.TechnologyRepository.DoesTechnologyNameExistAsync(TECHNOLOGY_NAME);
- Assert.False(result, "DoesTechnologyNameExistAsync returns true when technology name does not exist");
- }).GetAwaiter().GetResult();
+ Assert.False(result, "DoesTechnologyNameExistAsync returns true when technology name does not exist");
}
#endregion
#region EditAsync
+ //TO DO fix: check UserRepo
[Test]
- public void EditAsync_UpdatesEntity()
+ public async Task EditAsync_UpdatesEntity()
{
- Task.Run(async () =>
+ string newName = "New name";
+ Technology technology = new Technology
{
- string newName = "New name";
- Guid id = new Guid();
- Technology technology = new Technology
- {
- Name = TECHNOLOGY_NAME,
- Id = id
- };
- Technology newTechnology = new Technology
- {
- Name = newName,
- Id = id
- };
- await this.TechnologyRepository.AddAsync(technology);
-
- bool result = await this.TechnologyRepository.EditAsync(newTechnology);
-
- Assert.IsTrue(result);
- }).GetAwaiter().GetResult();
+ Name = TECHNOLOGY_NAME
+ }; Technology newTechnology = new Technology
+ {
+ Name = newName
+ };
+
+ await this.TechnologyRepository.AddAsync(technology);
+
+ bool result = await this.TechnologyRepository.EditAsync(newTechnology);
+
+ Assert.IsTrue(result);
}
#endregion
#region DeleteAsync
[Test]
- public void DeleteAsync_ReturnsTrue_IfDeletionIsSuccesfull()
+ public async Task DeleteAsync_ReturnsTrue_IfDeletionIsSuccesfull()
{
- Task.Run(async () =>
- {
- AddEntity();
- Technology technology = this.Context.Technologies.Where(x => x.Name == TECHNOLOGY_NAME).ToList().FirstOrDefault();
-
- bool result = await this.TechnologyRepository.DeleteAsync(technology);
+ await AddEntity();
+ Technology technology = this.Context.Technologies.Where(x => x.Name == TECHNOLOGY_NAME).ToList().FirstOrDefault();
- Assert.IsTrue(result, "DeleteAsync returns false when deletion is successfull");
+ bool result = await this.TechnologyRepository.DeleteAsync(technology);
- }).GetAwaiter().GetResult();
+ Assert.IsTrue(result, "DeleteAsync returns false when deletion is successfull");
}
#endregion
#region HelperMethods
- private void AddEntity(string name = TECHNOLOGY_NAME)
+ private async Task AddEntity(string name = TECHNOLOGY_NAME)
{
- Task.Run(async () =>
+ Technology technology = new Technology
{
- Technology technology = new Technology
- {
- Name = name
- };
+ Name = name
+ };
- await this.TechnologyRepository.AddAsync(technology);
- }).GetAwaiter().GetResult();
+ await this.TechnologyRepository.AddAsync(technology);
}
#endregion
//Task.Run(async () =>
//{
- //
+
//}).GetAwaiter().GetResult();
}
}
diff --git a/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs b/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs
index b0a5b93..d4daae5 100644
--- a/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs
+++ b/src/DevHive.Tests/DevHive.Data.Tests/UserRepositoryTests.cs
@@ -51,62 +51,6 @@ namespace DevHive.Data.Tests
//Assert
Assert.True(result, "User int' inserted properly into the database");
}
-
- [Test]
- public async Task AddFriendToUserAsync_ShouldAddFriendToUsersList()
- {
- //Arrange
- User dummyUserOne = CreateDummyUser();
- User dummyUserTwo = CreateAnotherDummyUser();
-
- await this._userRepository.AddAsync(dummyUserOne);
- await this._userRepository.AddAsync(dummyUserTwo);
-
- //Act
- bool result = await this._userRepository.AddFriendToUserAsync(dummyUserOne, dummyUserTwo);
-
- //Assert
- Assert.True(result, "Friend didn't save properly in the database");
- Assert.True(dummyUserOne.Friends.Contains(dummyUserTwo), "Friend doesn't get added to user properly");
- }
-
- [Test]
- public async Task AddLanguageToUserAsync_ShouldAddLanguageToUser()
- {
- //Arrange
- User dummyUser = CreateDummyUser();
- await this._userRepository.AddAsync(dummyUser);
- Language language = new()
- {
- Name = "typescript"
- };
-
- //Act
- bool result = await this._userRepository.AddLanguageToUserAsync(dummyUser, language);
-
- //Assert
- Assert.True(result, "The language isn't inserted properly to the database");
- Assert.True(dummyUser.Languages.Contains(language), "The language doesn't get added properly to the user");
- }
-
- [Test]
- public async Task AddTechnologyToUserAsync_ShouldAddTechnologyToUser()
- {
- //Arrange
- User dummyUser = CreateDummyUser();
- await this._userRepository.AddAsync(dummyUser);
- Technology technology = new()
- {
- Name = "Angular"
- };
-
- //Act
- bool result = await this._userRepository.AddTechnologyToUserAsync(dummyUser, technology);
-
- //Assert
- Assert.True(result, "The technology isn't inserted properly to the database");
- Assert.True(dummyUser.Technologies.Contains(technology), "The technology doesn't get added properly to the user");
- }
#endregion
#region Read
@@ -165,10 +109,10 @@ namespace DevHive.Data.Tests
//Arrange
User dummyUser = CreateDummyUser();
await this._userRepository.AddAsync(dummyUser);
- IList<Language> dummyUserLanguages = dummyUser.Languages;
+ HashSet<Language> dummyUserLanguages = dummyUser.Languages;
//Act
- IList<Language> languages = this._userRepository.GetUserLanguages(dummyUser);
+ HashSet<Language> languages = this._userRepository.GetUserLanguages(dummyUser);
//Assert
Assert.AreEqual(dummyUserLanguages, languages, "Method doesn't query languages properly");
@@ -185,7 +129,7 @@ namespace DevHive.Data.Tests
// Language dummyLang = await this._languageRepository.GetByNameAsync("csharp");
// //Act
- // IList<Language> languages = this._userRepository.GetUserLanguage(dummyUser, dummyLang);
+ // HashSet<Language> languages = this._userRepository.GetUserLanguage(dummyUser, dummyLang);
// //Assert
// Assert.AreEqual(dummyUserLanguages, languages, "Method doesn't query languages properly");
@@ -195,7 +139,7 @@ namespace DevHive.Data.Tests
#region HelperMethods
private User CreateDummyUser()
{
- List<Language> languages = new()
+ HashSet<Language> languages = new()
{
new Language()
{
@@ -204,7 +148,7 @@ namespace DevHive.Data.Tests
},
};
- List<Technology> technologies = new()
+ HashSet<Technology> technologies = new()
{
new Technology()
{
@@ -213,7 +157,7 @@ namespace DevHive.Data.Tests
},
};
- List<Role> roles = new()
+ HashSet<Role> roles = new()
{
new Role()
{
@@ -237,7 +181,7 @@ namespace DevHive.Data.Tests
private User CreateAnotherDummyUser()
{
- List<Language> languages = new()
+ HashSet<Language> languages = new()
{
new Language()
{
@@ -246,7 +190,7 @@ namespace DevHive.Data.Tests
},
};
- List<Technology> technologies = new()
+ HashSet<Technology> technologies = new()
{
new Technology()
{
@@ -255,7 +199,7 @@ namespace DevHive.Data.Tests
},
};
- List<Role> roles = new()
+ HashSet<Role> roles = new()
{
new Role()
{
diff --git a/src/DevHive.Tests/DevHive.Services.Tests/DevHive.Services.Tests.csproj b/src/DevHive.Tests/DevHive.Services.Tests/DevHive.Services.Tests.csproj
index c96dfb8..ce5cb62 100644
--- a/src/DevHive.Tests/DevHive.Services.Tests/DevHive.Services.Tests.csproj
+++ b/src/DevHive.Tests/DevHive.Services.Tests/DevHive.Services.Tests.csproj
@@ -8,7 +8,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.1" />
- <PackageReference Include="Moq" Version="4.15.2" />
+ <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" />
diff --git a/src/DevHive.Tests/DevHive.Services.Tests/LanguageService.Tests.cs b/src/DevHive.Tests/DevHive.Services.Tests/LanguageService.Tests.cs
new file mode 100644
index 0000000..67f1284
--- /dev/null
+++ b/src/DevHive.Tests/DevHive.Services.Tests/LanguageService.Tests.cs
@@ -0,0 +1,231 @@
+using System;
+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; }
+
+ [SetUp]
+ public void SetUp()
+ {
+ this.LanguageRepositoryMock = new Mock<ILanguageRepository>();
+ this.MapperMock = new Mock<IMapper>();
+ this.LanguageService = new LanguageService(this.LanguageRepositoryMock.Object, this.MapperMock.Object);
+ }
+
+ #region Create
+ [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 Read
+ [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 Update
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public async Task UpdateLanguage_ReturnsIfUpdateIsSuccessfull_WhenLanguageExistsy(bool shouldPass)
+ {
+ string name = "Gosho Trapov";
+ Language language = new Language
+ {
+ Name = name
+ };
+ 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<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_ReturnsIfUpdateIsSuccessfull_WhenLanguageExistsy()
+ {
+ 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 Delete
+ [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
+ //Task.Run(async () =>
+ //{
+
+ //}).GetAwaiter().GetResult();
+ }
+}
diff --git a/src/DevHive.Tests/DevHive.Services.Tests/TechnologyServices.Tests.cs b/src/DevHive.Tests/DevHive.Services.Tests/TechnologyServices.Tests.cs
index d028957..abd43ed 100644
--- a/src/DevHive.Tests/DevHive.Services.Tests/TechnologyServices.Tests.cs
+++ b/src/DevHive.Tests/DevHive.Services.Tests/TechnologyServices.Tests.cs
@@ -26,33 +26,52 @@ namespace DevHive.Services.Tests
}
#region Create
-
[Test]
- [TestCase(true)]
- [TestCase(false)]
- public void Create_ReturnsTrue_WhenEntityIsAddedSuccessfully(bool shouldFail)
+ public async Task Create_ReturnsNonEmptyGuid_WhenEntityIsAddedSuccessfully()
{
- Task.Run(async () =>
+ string technologyName = "Gosho Trapov";
+ Guid id = Guid.NewGuid();
+ CreateTechnologyServiceModel createTechnologyServiceModel = new()
{
- string technologyName = "Gosho Trapov";
+ 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.Create(createTechnologyServiceModel);
+
+ Assert.AreEqual(id, result);
+ }
- CreateTechnologyServiceModel createTechnologyServiceModel = new()
- {
- Name = technologyName
- };
- Technology technology = new()
- {
- Name = technologyName
- };
+ [Test]
+ public async Task Create_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(shouldFail));
- this.MapperMock.Setup(p => p.Map<Technology>(It.IsAny<CreateTechnologyServiceModel>())).Returns(technology);
+ 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);
- bool result = await this.TechnologyService.Create(createTechnologyServiceModel);
+ Guid result = await this.TechnologyService.Create(createTechnologyServiceModel);
- Assert.AreEqual(shouldFail, result);
- }).GetAwaiter().GetResult();
+ Assert.IsTrue(result == Guid.Empty);
}
[Test]
@@ -79,30 +98,26 @@ namespace DevHive.Services.Tests
#endregion
#region Read
-
[Test]
- public void GetTechnologyById_ReturnsTheTechnology_WhenItExists()
+ public async Task GetTechnologyById_ReturnsTheTechnology_WhenItExists()
{
- Task.Run(async () =>
+ Guid id = new Guid();
+ string name = "Gosho Trapov";
+ Technology technology = new()
{
- Guid id = new Guid();
- string name = "Gosho Trapov";
- Technology technology = new()
- {
- Name = name
- };
- CreateTechnologyServiceModel createTechnologyServiceModel = new()
- {
- Name = name
- };
-
- this.TechnologyRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(technology));
- this.MapperMock.Setup(p => p.Map<CreateTechnologyServiceModel>(It.IsAny<Technology>())).Returns(createTechnologyServiceModel);
-
- CreateTechnologyServiceModel result = await this.TechnologyService.GetTechnologyById(id);
-
- Assert.AreEqual(name, result.Name);
- }).GetAwaiter().GetResult();
+ Name = name
+ };
+ CreateTechnologyServiceModel createTechnologyServiceModel = new()
+ {
+ Name = name
+ };
+
+ this.TechnologyRepositoryMock.Setup(p => p.GetByIdAsync(It.IsAny<Guid>())).Returns(Task.FromResult(technology));
+ this.MapperMock.Setup(p => p.Map<CreateTechnologyServiceModel>(It.IsAny<Technology>())).Returns(createTechnologyServiceModel);
+
+ CreateTechnologyServiceModel result = await this.TechnologyService.GetTechnologyById(id);
+
+ Assert.AreEqual(name, result.Name);
}
[Test]
@@ -119,48 +134,42 @@ namespace DevHive.Services.Tests
#endregion
#region Update
-
[Test]
[TestCase(true)]
[TestCase(false)]
- public void UpdateTechnology_ReturnsIfUpdateIsSuccessfull_WhenTechnologyExistsy(bool shouldPass)
+ public async Task UpdateTechnology_ReturnsIfUpdateIsSuccessfull_WhenTechnologyExistsy(bool shouldPass)
{
- Task.Run(async () =>
+ string name = "Gosho Trapov";
+ Technology technology = new Technology
+ {
+ Name = name
+ };
+ UpdateTechnologyServiceModel updatetechnologyServiceModel = new UpdateTechnologyServiceModel
{
- Guid id = new Guid();
- string name = "Gosho Trapov";
- Technology technology = new Technology
- {
- Name = name
- };
- 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<Technology>())).Returns(Task.FromResult(shouldPass));
- this.MapperMock.Setup(p => p.Map<Technology>(It.IsAny<UpdateTechnologyServiceModel>())).Returns(technology);
-
- bool result = await this.TechnologyService.UpdateTechnology(id, updatetechnologyServiceModel);
-
- Assert.AreEqual(shouldPass, result);
- }).GetAwaiter().GetResult();
+ 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<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!";
- Guid id = new Guid();
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(id, updateTechnologyServiceModel));
+ Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.TechnologyService.UpdateTechnology(updateTechnologyServiceModel));
Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message");
}
@@ -169,7 +178,6 @@ namespace DevHive.Services.Tests
public void UpdateTechnology_ThrowsException_WhenTechnologyNameAlreadyExists()
{
string exceptionMessage = "Technology name already exists!";
- Guid id = new Guid();
UpdateTechnologyServiceModel updateTechnologyServiceModel = new UpdateTechnologyServiceModel
{
};
@@ -177,7 +185,7 @@ namespace DevHive.Services.Tests
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(id, updateTechnologyServiceModel));
+ Exception ex = Assert.ThrowsAsync<ArgumentException>(() => this.TechnologyService.UpdateTechnology(updateTechnologyServiceModel));
Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message");
}
@@ -188,21 +196,18 @@ namespace DevHive.Services.Tests
[Test]
[TestCase(true)]
[TestCase(false)]
- public void DeleteTechnology_ShouldReturnIfDeletionIsSuccessfull_WhenTechnologyExists(bool shouldPass)
+ public async Task DeleteTechnology_ShouldReturnIfDeletionIsSuccessfull_WhenTechnologyExists(bool shouldPass)
{
- Task.Run(async () =>
- {
- Guid id = new Guid();
- Technology technology = new Technology();
+ 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));
+ 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);
+ bool result = await this.TechnologyService.DeleteTechnology(id);
- Assert.AreEqual(shouldPass, result);
- }).GetAwaiter().GetResult();
+ Assert.AreEqual(shouldPass, result);
}
[Test]
@@ -218,9 +223,10 @@ namespace DevHive.Services.Tests
Assert.AreEqual(exceptionMessage, ex.Message, "Incorecct exception message");
}
#endregion
+
//Task.Run(async () =>
//{
- //
+
//}).GetAwaiter().GetResult();
}
}
diff --git a/src/DevHive.Tests/DevHive.Web.Tests/DevHive.Web.Tests.csproj b/src/DevHive.Tests/DevHive.Web.Tests/DevHive.Web.Tests.csproj
index 47f40ee..a171e0b 100644
--- a/src/DevHive.Tests/DevHive.Web.Tests/DevHive.Web.Tests.csproj
+++ b/src/DevHive.Tests/DevHive.Web.Tests/DevHive.Web.Tests.csproj
@@ -7,7 +7,7 @@
</PropertyGroup>
<ItemGroup>
- <PackageReference Include="Moq" Version="4.15.2" />
+ <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" />
diff --git a/src/DevHive.Tests/DevHive.Web.Tests/LanguageController.Tests.cs b/src/DevHive.Tests/DevHive.Web.Tests/LanguageController.Tests.cs
new file mode 100644
index 0000000..913d9df
--- /dev/null
+++ b/src/DevHive.Tests/DevHive.Web.Tests/LanguageController.Tests.cs
@@ -0,0 +1,201 @@
+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_ShouldReturnOkResult_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_When_LanguageIsDeletedSuccessfully()
+ {
+ 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
new file mode 100644
index 0000000..18ed1b9
--- /dev/null
+++ b/src/DevHive.Tests/DevHive.Web.Tests/PostController.Tests.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DevHive.Web.Tests
+{
+ class PostController
+ {
+ }
+}
diff --git a/src/DevHive.Tests/DevHive.Web.Tests/TechnologyController.Tests.cs b/src/DevHive.Tests/DevHive.Web.Tests/TechnologyController.Tests.cs
index 2709c9a..40434d6 100644
--- a/src/DevHive.Tests/DevHive.Web.Tests/TechnologyController.Tests.cs
+++ b/src/DevHive.Tests/DevHive.Web.Tests/TechnologyController.Tests.cs
@@ -1,4 +1,5 @@
using AutoMapper;
+using DevHive.Common.Models.Misc;
using DevHive.Services.Interfaces;
using DevHive.Services.Models.Technology;
using DevHive.Web.Controllers;
@@ -7,6 +8,7 @@ using Microsoft.AspNetCore.Mvc;
using Moq;
using NUnit.Framework;
using System;
+using System.Linq;
using System.Threading.Tasks;
namespace DevHive.Web.Tests
@@ -30,7 +32,7 @@ namespace DevHive.Web.Tests
#region Create
[Test]
public void Create_ReturnsOkObjectResult_WhenTechnologyIsSuccessfullyCreated()
- {
+ {
CreateTechnologyWebModel createTechnologyWebModel = new CreateTechnologyWebModel
{
Name = NAME
@@ -39,13 +41,24 @@ namespace DevHive.Web.Tests
{
Name = NAME
};
+ Guid id = Guid.NewGuid();
this.MapperMock.Setup(p => p.Map<CreateTechnologyServiceModel>(It.IsAny<CreateTechnologyWebModel>())).Returns(createTechnologyServiceModel);
- this.TechnologyServiceMock.Setup(p => p.Create(It.IsAny<CreateTechnologyServiceModel>())).Returns(Task.FromResult(true));
+ this.TechnologyServiceMock.Setup(p => p.Create(It.IsAny<CreateTechnologyServiceModel>())).Returns(Task.FromResult(id));
IActionResult result = this.TechnologyController.Create(createTechnologyWebModel).Result;
- Assert.IsInstanceOf<OkResult>(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]
@@ -59,13 +72,20 @@ namespace DevHive.Web.Tests
{
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.Create(It.IsAny<CreateTechnologyServiceModel>())).Returns(Task.FromResult(false));
+ this.TechnologyServiceMock.Setup(p => p.Create(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
@@ -73,7 +93,7 @@ namespace DevHive.Web.Tests
[Test]
public void GetById_ReturnsTheThecnology_WhenItExists()
{
- Guid id = new Guid();
+ Guid id = Guid.NewGuid();
CreateTechnologyServiceModel createTechnologyServiceModel = new CreateTechnologyServiceModel
{
@@ -102,7 +122,7 @@ namespace DevHive.Web.Tests
[Test]
public void Update_ShouldReturnOkResult_WhenTechnologyIsUpdatedSuccessfully()
{
- Guid id = new Guid();
+ Guid id = Guid.NewGuid();
UpdateTechnologyWebModel updateTechnologyWebModel = new UpdateTechnologyWebModel
{
Name = NAME
@@ -112,7 +132,7 @@ namespace DevHive.Web.Tests
Name = NAME
};
- this.TechnologyServiceMock.Setup(p => p.UpdateTechnology(It.IsAny<Guid>(), It.IsAny<UpdateTechnologyServiceModel>())).Returns(Task.FromResult(true));
+ 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;
@@ -121,9 +141,9 @@ namespace DevHive.Web.Tests
}
[Test]
- public void Update_ShouldReturnOkResult_WhenTechnologyIsNotUpdatedSuccessfully ()
+ public void Update_ShouldReturnOkResult_WhenTechnologyIsNotUpdatedSuccessfully()
{
- Guid id = new Guid();
+ Guid id = Guid.NewGuid();
string message = "Could not update Technology";
UpdateTechnologyWebModel updateTechnologyWebModel = new UpdateTechnologyWebModel
{
@@ -134,7 +154,7 @@ namespace DevHive.Web.Tests
Name = NAME
};
- this.TechnologyServiceMock.Setup(p => p.UpdateTechnology(It.IsAny<Guid>(), It.IsAny<UpdateTechnologyServiceModel>())).Returns(Task.FromResult(false));
+ 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;
@@ -151,7 +171,7 @@ namespace DevHive.Web.Tests
[Test]
public void Delete_ReturnsOkResult_When_TechnologyIsDeletedSuccessfully()
{
- Guid id = new Guid();
+ Guid id = Guid.NewGuid();
this.TechnologyServiceMock.Setup(p => p.DeleteTechnology(It.IsAny<Guid>())).Returns(Task.FromResult(true));
@@ -164,7 +184,7 @@ namespace DevHive.Web.Tests
public void Delet_ReturnsBadRequestObjectResult_WhenTechnologyIsNotDeletedSuccessfully()
{
string message = "Could not delete Technology";
- Guid id = new Guid();
+ Guid id = Guid.NewGuid();
this.TechnologyServiceMock.Setup(p => p.DeleteTechnology(It.IsAny<Guid>())).Returns(Task.FromResult(false));