aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs
diff options
context:
space:
mode:
authorDanail Dimitrov <danaildimitrov321@gmail.com>2021-01-26 15:49:38 +0200
committerDanail Dimitrov <danaildimitrov321@gmail.com>2021-01-26 15:49:38 +0200
commitf61da9c07ff37cb350528e255539b4ec11181bde (patch)
treef9ff4f93e2fde7068037a90f79a786139f6eec41 /src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs
parentd2bc08c0dcd6f0dc0822333bbb00c9fc851f49cb (diff)
downloadDevHive-f61da9c07ff37cb350528e255539b4ec11181bde.tar
DevHive-f61da9c07ff37cb350528e255539b4ec11181bde.tar.gz
DevHive-f61da9c07ff37cb350528e255539b4ec11181bde.zip
Adding User Repository Tests
Diffstat (limited to 'src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs')
-rw-r--r--src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs107
1 files changed, 106 insertions, 1 deletions
diff --git a/src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs b/src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs
index aefeddd..f02a1e4 100644
--- a/src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs
+++ b/src/DevHive.Tests/DevHive.Data.Tests/LenguageRepository.Tests.cs
@@ -1,4 +1,9 @@
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
@@ -6,6 +11,106 @@ namespace DevHive.Data.Tests
[TestFixture]
public class LenguageRepositoryTests
{
- // pending repo refactoring
+ 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
}
}