diff options
| author | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-01-21 20:51:11 +0200 |
|---|---|---|
| committer | Danail Dimitrov <danaildimitrov321@gmail.com> | 2021-01-21 20:51:11 +0200 |
| commit | 5e5e2eb2edef88840edbb072597f81f8da3ae929 (patch) | |
| tree | dc7fcb686b271ab0db377034e2869990701847b3 /src/DevHive.Tests/DevHive.Services.Tests/LanguageService.Tests.cs | |
| parent | 833c4e183581bc69102d66872b4b5bb157d80821 (diff) | |
| download | DevHive-5e5e2eb2edef88840edbb072597f81f8da3ae929.tar DevHive-5e5e2eb2edef88840edbb072597f81f8da3ae929.tar.gz DevHive-5e5e2eb2edef88840edbb072597f81f8da3ae929.zip | |
Made all Technology Layer Tests not asymc again
Diffstat (limited to 'src/DevHive.Tests/DevHive.Services.Tests/LanguageService.Tests.cs')
| -rw-r--r-- | src/DevHive.Tests/DevHive.Services.Tests/LanguageService.Tests.cs | 100 |
1 files changed, 100 insertions, 0 deletions
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..2ebff58 --- /dev/null +++ b/src/DevHive.Tests/DevHive.Services.Tests/LanguageService.Tests.cs @@ -0,0 +1,100 @@ +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 void Create_ReturnsNonEmptyGuid_WhenEntityIsAddedSuccessfully() + { + string technologyName = "Gosho Trapov"; + Guid id = Guid.NewGuid(); + CreateLanguageServiceModel createLanguageServiceModel = new() + { + Name = technologyName + }; + Language language = new() + { + 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 void Create_ReturnsEmptyGuid_WhenEntityIsNotAddedSuccessfully() + { + string languageName = "Gosho Trapov"; + + CreateLanguageServiceModel createLanguageServiceModel = new() + { + Name = languageName + }; + Language language = new() + { + 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 Create_ThrowsArgumentException_WhenEntityAlreadyExists() + { + string exceptionMessage = "Technology already exists!"; + string languageName = "Gosho Trapov"; + + CreateLanguageServiceModel createLanguageServiceModel = new() + { + Name = languageName + }; + Language language = new() + { + 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 + } +} |
