| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using Diligent.WebAPI.Business.Services;
- using Diligent.WebAPI.Contracts.DTOs.Applicant;
- using Microsoft.AspNetCore.Http;
- using Microsoft.Extensions.Logging;
-
- namespace Diligent.WebAPI.Tests.Services
- {
- public class ImportServiceTests
- {
- private readonly List<ApplicantImportDto> _applicantImportDtos;
- private readonly ILogger<ImportService> _logger = Substitute.For<ILogger<ImportService>>();
- private readonly ISaveImportedDataService _service = Substitute.For<ISaveImportedDataService>();
- private readonly IFormFile file = Substitute.For<IFormFile>();
- public ImportServiceTests()
- {
- _applicantImportDtos = new List<ApplicantImportDto>
- {
- new ApplicantImportDto{ Email = "dzenis@dilig.net" },
- new ApplicantImportDto{ Email = "meris@dilig.net" },
- new ApplicantImportDto{ Email = "ermin@dilig.net" }
- };
- }
-
- [Fact]
- public async Task TesImport_ShouldHaveThreeItems_WhenISaveImportedDataServiceReturnsThreeItems()
- {
- ImportService importService = new ImportService(_logger, _service);
- _service.Save().Returns(_applicantImportDtos);
-
- var result = await importService.Import(file);
-
- result.Should().HaveCount(3);
- }
-
- [Fact]
- public async Task TesImport_ShouldThrowsException_WhenErrorIsPresent()
- {
- ImportService importService = new ImportService(_logger, _service);
- _service.When(x => x.Save()).Do(x => { throw new Exception(); });
-
- await Assert.ThrowsAsync<Exception>(async () => await importService.Import(file));
- }
- }
- }
|