You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ImportServiceTests.cs 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using Diligent.WebAPI.Business.Services;
  2. using Diligent.WebAPI.Contracts.DTOs.Applicant;
  3. using Microsoft.AspNetCore.Http;
  4. using Microsoft.Extensions.Logging;
  5. namespace Diligent.WebAPI.Tests.Services
  6. {
  7. public class ImportServiceTests
  8. {
  9. private readonly List<ApplicantImportDto> _applicantImportDtos;
  10. private readonly ILogger<ImportService> _logger = Substitute.For<ILogger<ImportService>>();
  11. private readonly ISaveImportedDataService _service = Substitute.For<ISaveImportedDataService>();
  12. private readonly IFormFile file = Substitute.For<IFormFile>();
  13. public ImportServiceTests()
  14. {
  15. _applicantImportDtos = new List<ApplicantImportDto>
  16. {
  17. new ApplicantImportDto{ Email = "dzenis@dilig.net" },
  18. new ApplicantImportDto{ Email = "meris@dilig.net" },
  19. new ApplicantImportDto{ Email = "ermin@dilig.net" }
  20. };
  21. }
  22. [Fact]
  23. public async Task TesImport_ShouldHaveThreeItems_WhenISaveImportedDataServiceReturnsThreeItems()
  24. {
  25. ImportService importService = new ImportService(_logger, _service);
  26. _service.Save().Returns(_applicantImportDtos);
  27. var result = await importService.Import(file);
  28. result.Should().HaveCount(3);
  29. }
  30. [Fact]
  31. public async Task TesImport_ShouldThrowsException_WhenErrorIsPresent()
  32. {
  33. ImportService importService = new ImportService(_logger, _service);
  34. _service.When(x => x.Save()).Do(x => { throw new Exception(); });
  35. await Assert.ThrowsAsync<Exception>(async () => await importService.Import(file));
  36. }
  37. }
  38. }