aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs
diff options
context:
space:
mode:
authorDanail Dimitrov <danaildimitrov321@gmail.com>2021-01-10 10:55:01 +0200
committerDanail Dimitrov <danaildimitrov321@gmail.com>2021-01-10 10:55:01 +0200
commit036aa41657c4ddf35b9c1f1bd43627b22aba23f9 (patch)
tree87f446bdbe49be02ce7240624ccf526aefc9cc10 /src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs
parentd9dcedd2bbb98467bb4765ee3338ff528182d016 (diff)
downloadDevHive-036aa41657c4ddf35b9c1f1bd43627b22aba23f9.tar
DevHive-036aa41657c4ddf35b9c1f1bd43627b22aba23f9.tar.gz
DevHive-036aa41657c4ddf35b9c1f1bd43627b22aba23f9.zip
Fixed test projects
Diffstat (limited to 'src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs')
-rw-r--r--src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs121
1 files changed, 121 insertions, 0 deletions
diff --git a/src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs b/src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs
new file mode 100644
index 0000000..db07e04
--- /dev/null
+++ b/src/DevHive.Tests/DevHive.Data.Tests/TechnologyRepository.Tests.cs
@@ -0,0 +1,121 @@
+using DevHive.Data.Models;
+using DevHive.Data.Repositories;
+using Microsoft.EntityFrameworkCore;
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+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; }
+
+ [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();
+ }
+
+ [Test]
+ public void AddAsync_AddsTheGivenTechnologyToTheDatabase()
+ {
+ AddEntity();
+
+ int numberOfTechnologies = Context.Technologies.Count();
+
+ Assert.True(numberOfTechnologies > 0, "Technologies repo does not store Technologies correctly");
+ }
+
+ [Test]
+ public void GetByIdAsync_ReturnsTheCorrectTechnology_IfIdExists()
+ {
+ Task.Run(async () =>
+ {
+ 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);
+
+ Assert.AreEqual(TECHNOLOGY_NAME, technologyReturned.Name, "GetByIdAsync does not return the correct Technology when id is valid");
+ }).GetAwaiter().GetResult();
+ }
+
+ [Test]
+ public void GetByIdAsync_ReturnsNull_IfIdDoesNotExists()
+ {
+ Task.Run(async () =>
+ {
+ Guid id = new Guid();
+
+ Technology technologyReturned = await this.TechnologyRepository.GetByIdAsync(id);
+
+ Assert.IsNull(technologyReturned, "GetByIdAsync returns Technology when it should be null");
+ }).GetAwaiter().GetResult();
+ }
+
+ [Test]
+ public void DoesTechnologyNameExist_ReturnsTrue_IfTechnologyExists()
+ {
+ Task.Run(async () =>
+ {
+ AddEntity();
+
+ bool result = await this.TechnologyRepository.DoesTechnologyNameExist(TECHNOLOGY_NAME);
+
+ Assert.IsTrue(result, "DoesTechnologyNameExists returns true when technology name does not exist");
+ }).GetAwaiter().GetResult();
+ }
+
+ [Test]
+ public void DoesTechnologyNameExist_ReturnsFalse_IfTechnologyDoesNotExists()
+ {
+ Task.Run(async () =>
+ {
+ bool result = await this.TechnologyRepository.DoesTechnologyNameExist(TECHNOLOGY_NAME);
+
+ Assert.False(result, "DoesTechnologyNameExist returns true when tehcnology name does not exist");
+ }).GetAwaiter().GetResult();
+ }
+
+
+
+ private void AddEntity(string name = TECHNOLOGY_NAME)
+ {
+ Task.Run(async () =>
+ {
+ Technology technology = new Technology
+ {
+ Name = name
+ };
+
+ await this.TechnologyRepository.AddAsync(technology);
+ }).GetAwaiter().GetResult();
+ }
+
+ //Task.Run(async () =>
+ //{
+ //
+ //}).GetAwaiter().GetResult();
+ }
+}