aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Tests/Data
diff options
context:
space:
mode:
Diffstat (limited to 'src/DevHive.Tests/Data')
-rw-r--r--src/DevHive.Tests/Data/Data.csproj1
-rw-r--r--src/DevHive.Tests/Data/TechnologyRepository.Tests.cs54
2 files changed, 55 insertions, 0 deletions
diff --git a/src/DevHive.Tests/Data/Data.csproj b/src/DevHive.Tests/Data/Data.csproj
index 7ee66c3..a077bd7 100644
--- a/src/DevHive.Tests/Data/Data.csproj
+++ b/src/DevHive.Tests/Data/Data.csproj
@@ -5,6 +5,7 @@
</ItemGroup>
<ItemGroup>
+ <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="5.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.8.3" />
<PackageReference Include="NUnit" Version="3.13.0" />
<PackageReference Include="Nunit3TestAdapter" Version="3.17.0" />
diff --git a/src/DevHive.Tests/Data/TechnologyRepository.Tests.cs b/src/DevHive.Tests/Data/TechnologyRepository.Tests.cs
new file mode 100644
index 0000000..e4ca614
--- /dev/null
+++ b/src/DevHive.Tests/Data/TechnologyRepository.Tests.cs
@@ -0,0 +1,54 @@
+using Microsoft.EntityFrameworkCore;
+using NUnit.Framework;
+using DevHive.Data;
+using DevHive.Data.Repositories;
+using DevHive.Data.Models;
+using System.Threading.Tasks;
+using System.Linq;
+
+namespace DevHive.Tests.Data
+{
+ [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);
+
+ AddEntity();
+ }
+
+ [Test]
+ public void AddAsync_AddsTheGivenTechnologyToTheDatabase()
+ {
+ int numberOfTechnologies = Context.Technologies.Count();
+
+ Assert.True(numberOfTechnologies > 0, "Technologies repo does not store Technologies correctly");
+ }
+
+ private void AddEntity()
+ {
+ Task.Run(async () =>
+ {
+ Technology technology = new Technology
+ {
+ Name = TECHNOLOGY_NAME
+ };
+
+ await this.TechnologyRepository.AddAsync(technology);
+ }).GetAwaiter().GetResult();
+ }
+ }
+} \ No newline at end of file