Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

SelectionLevelsServiceTests.cs 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. using AutoMapper;
  2. using Diligent.WebAPI.Business.MappingProfiles;
  3. using Diligent.WebAPI.Business.Services;
  4. using Diligent.WebAPI.Contracts.DTOs.Ad;
  5. using Diligent.WebAPI.Contracts.DTOs.Applicant;
  6. using Diligent.WebAPI.Contracts.DTOs.SelectionLevel;
  7. using Diligent.WebAPI.Contracts.Exceptions;
  8. using Diligent.WebAPI.Data.Entities;
  9. namespace Diligent.WebAPI.Tests.Services
  10. {
  11. public class SelectionLevelsServiceTests
  12. {
  13. private readonly IMapper _mapper;
  14. private readonly List<SelectionLevel> _levels;
  15. private readonly SelectionLevel _selectionLevel;
  16. public SelectionLevelsServiceTests()
  17. {
  18. _selectionLevel = new SelectionLevel
  19. {
  20. Id = 1,
  21. Name = "HR intervju",
  22. SelectionProcesses = new List<SelectionProcess>()
  23. };
  24. // configure mapper
  25. var configuration = new MapperConfiguration(cfg => cfg.AddProfiles(
  26. new List<Profile>
  27. {
  28. new SelectionLevelMappingProfile(),
  29. new SelectionProcessMappingProfile(),
  30. }));
  31. _mapper = new Mapper(configuration);
  32. }
  33. [Fact]
  34. public async Task GetAll_ShouldReturnListOfLevels_Always()
  35. {
  36. var databaseContext = await Helpers<SelectionLevel>.GetDatabaseContext(_levels);
  37. SelectionLevelService service = new(databaseContext, _mapper);
  38. var result = await service.GetAllAsync();
  39. result.Should().HaveCount(4);
  40. }
  41. [Fact]
  42. public async Task GetFilteredData_ShouldReturnListOfLevels_Always()
  43. {
  44. var databaseContext = await Helpers<SelectionLevel>.GetDatabaseContext(_levels);
  45. databaseContext.SelectionLevels.First().SelectionProcesses = new List<SelectionProcess>
  46. {
  47. new SelectionProcess{ Id = 1, Status = "Obrađen", Date = DateTime.Now},
  48. new SelectionProcess{ Id = 2, Status = "Obrađen", Date = DateTime.Now.AddMonths(-1)},
  49. new SelectionProcess{ Id = 3, Status = "Čeka na zakazivanje", Date = DateTime.Now},
  50. new SelectionProcess{ Id = 4, Status = "Čeka na zakazivanje", Date = DateTime.Now.AddMonths(-1)},
  51. };
  52. SelectionLevelService service = new(databaseContext, _mapper);
  53. var filter = new SelectionProcessFilterDto
  54. {
  55. DateStart = DateTime.Now.AddDays(-1),
  56. DateEnd = DateTime.Now.AddDays(1),
  57. Statuses = new string[]{ "Obrađen", "Zakazan" }
  58. };
  59. var result = service.GetFilteredLevelsAsync(filter);
  60. result.Should().HaveCount(4);
  61. result.First().SelectionProcesses.Should().HaveCount(1);
  62. }
  63. [Fact]
  64. public async Task GetById_ShouldReturnLevel_WhenLevelExist()
  65. {
  66. var databaseContext = await Helpers<SelectionLevel>.GetDatabaseContext(_levels);
  67. SelectionLevelService service = new(databaseContext, _mapper);
  68. var result = await service.GetByIdAsync(1);
  69. result.Should().BeEquivalentTo(_mapper.Map<SelectionLevelResposneDto>(_selectionLevel));
  70. }
  71. [Fact]
  72. public async Task GetById_ShouldThrowEntityNotFooundException_WhenLevelDoesnotExist()
  73. {
  74. var databaseContext = await Helpers<SelectionLevel>.GetDatabaseContext(_levels);
  75. SelectionLevelService service = new(databaseContext, _mapper);
  76. await Assert.ThrowsAsync<EntityNotFoundException>(async () => await service.GetByIdAsync(1000));
  77. }
  78. }
  79. }