From bc98c6271786ad5d7e00550bd8fa12d49556840e Mon Sep 17 00:00:00 2001 From: Danail Dimitrov Date: Sat, 9 Jan 2021 16:07:37 +0200 Subject: Set up for unit testing & created first unit test for technlogy repo --- src/DevHive.Tests/Data/Data.csproj | 1 + .../Data/TechnologyRepository.Tests.cs | 54 ++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 src/DevHive.Tests/Data/TechnologyRepository.Tests.cs (limited to 'src/DevHive.Tests/Data') 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 @@ + 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() + .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 -- cgit v1.2.3