Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

SelectionProcessServiceTests.cs 5.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. using AutoMapper;
  2. using Diligent.WebAPI.Business.MappingProfiles;
  3. using Diligent.WebAPI.Business.Services;
  4. using Diligent.WebAPI.Contracts.DTOs.SelectionLevel;
  5. using Diligent.WebAPI.Contracts.DTOs.SelectionProcess;
  6. using Diligent.WebAPI.Contracts.Exceptions;
  7. using Diligent.WebAPI.Data.Entities;
  8. using Microsoft.Extensions.Logging;
  9. namespace Diligent.WebAPI.Tests.Services
  10. {
  11. public class SelectionProcessServiceTests
  12. {
  13. private readonly IMapper _mapper;
  14. private readonly List<SelectionProcess> _processes;
  15. private readonly SelectionProcess _selectionProcess;
  16. private ILogger<SelectionProcessService> _logger = Substitute.For<ILogger<SelectionProcessService>>();
  17. private readonly SelectionProcessCreateDto _selectionProcessCreateDto;
  18. public SelectionProcessServiceTests()
  19. {
  20. _selectionProcessCreateDto = new SelectionProcessCreateDto
  21. {
  22. Id = 1,
  23. ApplicantId = 1,
  24. Date = DateTime.Now,
  25. Link = "link",
  26. Name = "custom name",
  27. SchedulerId = 1,
  28. SelectionLevelId = 4,
  29. Status = "Obrađen"
  30. };
  31. _selectionProcess = new SelectionProcess
  32. {
  33. Id = 1,
  34. ApplicantId = 1,
  35. Date = DateTime.Now,
  36. Link = "link",
  37. Name = "custom name",
  38. SchedulerId = 1,
  39. SelectionLevelId = 4,
  40. Status = "Obrađen"
  41. };
  42. _processes = new List<SelectionProcess>
  43. {
  44. _selectionProcess
  45. };
  46. // configure mapper
  47. var configuration = new MapperConfiguration(cfg => cfg.AddProfiles(
  48. new List<Profile>
  49. {
  50. new SelectionProcessMappingProfile(),
  51. }));
  52. _mapper = new Mapper(configuration);
  53. }
  54. [Fact]
  55. public async Task GetAll_ShouldReturnListOfProcesses_Always()
  56. {
  57. var databaseContext = await Helpers<SelectionProcess>.GetDatabaseContext(_processes);
  58. SelectionProcessService service = new(databaseContext, _mapper, _logger);
  59. var result = await service.GetAllAsync();
  60. result.Should().HaveCount(1);
  61. }
  62. //[Fact]
  63. //public async Task GetById_ShouldReturnProcess_WhenProcessExist()
  64. //{
  65. // var databaseContext = await Helpers<SelectionProcess>.GetDatabaseContext(_processes);
  66. // SelectionProcessService service = new(databaseContext, _mapper, _logger);
  67. // var result = await service.GetByIdAsync(1);
  68. // result.Should().BeEquivalentTo(_mapper.Map<SelectionProcessResposneDto>(_selectionProcess));
  69. //}
  70. //[Fact]
  71. //public async Task GetById_ShouldThrowEntityNotFooundException_WhenProcessDoesnotExist()
  72. //{
  73. // var databaseContext = await Helpers<SelectionProcess>.GetDatabaseContext(_processes);
  74. // SelectionProcessService service = new(databaseContext, _mapper, _logger);
  75. // await Assert.ThrowsAsync<EntityNotFoundException>(async () => await service.GetByIdAsync(1000));
  76. //}
  77. [Fact]
  78. public async Task FinishSelectionProcess_ShouldReturnTrueAndAddNewSelectionProcess_WhenProcessExists()
  79. {
  80. var process = new SelectionProcess
  81. {
  82. Id = 1,
  83. ApplicantId = 1,
  84. Date = DateTime.Now,
  85. Link = "link",
  86. Name = "custom name",
  87. SchedulerId = 1,
  88. SelectionLevelId = 1,
  89. Status = "Zakazan"
  90. };
  91. var processes = new List<SelectionProcess>
  92. {
  93. process
  94. };
  95. var databaseContext = await Helpers<SelectionProcess>.GetDatabaseContext(processes);
  96. SelectionProcessService service = new(databaseContext, _mapper, _logger);
  97. var result = await service.FinishSelectionProcess(_selectionProcessCreateDto);
  98. var newProcesses = await service.GetAllAsync();
  99. result.Should().BeTrue();
  100. newProcesses.Should().HaveCount(processes.Count() + 1);
  101. }
  102. [Fact]
  103. public async Task FinishSelectionProcess_ShouldThrowEntityNotFooundException_WhenProcessDoesnotExist()
  104. {
  105. var databaseContext = await Helpers<SelectionProcess>.GetDatabaseContext(_processes);
  106. SelectionProcessService service = new(databaseContext, _mapper, _logger);
  107. await Assert.ThrowsAsync<EntityNotFoundException>(async () => await service.FinishSelectionProcess(new SelectionProcessCreateDto { Id = 1000 }));
  108. }
  109. [Fact]
  110. public async Task FinishSelectionProcess_ShouldThrowEntityNotFooundException_WhenProcessIsInLastLevel()
  111. {
  112. var databaseContext = await Helpers<SelectionProcess>.GetDatabaseContext(_processes);
  113. SelectionProcessService service = new(databaseContext, _mapper, _logger);
  114. await Assert.ThrowsAsync<InvalidOperationException>(async () => await service.FinishSelectionProcess(new SelectionProcessCreateDto { Id = 1, SelectionLevelId = 4 }));
  115. }
  116. }
  117. }