Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using Diligent.WebAPI.Contracts.DTOs.Ad;
  2. using Diligent.WebAPI.Contracts.DTOs.SelectionLevel;
  3. using Diligent.WebAPI.Contracts.DTOs.SelectionProcess;
  4. using Diligent.WebAPI.Contracts.Exceptions;
  5. namespace Diligent.WebAPI.Tests.Controllers
  6. {
  7. public class SelectionLevelsControllerTests
  8. {
  9. private ISelectionLevelService _service = Substitute.For<ISelectionLevelService>();
  10. private readonly SelectionLevelResposneDto _selectionLevel;
  11. public SelectionLevelsControllerTests()
  12. {
  13. _selectionLevel = new SelectionLevelResposneDto
  14. {
  15. Id = 1,
  16. Name = "HR intervju"
  17. };
  18. }
  19. [Fact]
  20. public async Task GetById_ShouldReturn_200OK_WhenLevelExist()
  21. {
  22. _service.GetByIdAsync(Arg.Any<int>()).Returns(_selectionLevel);
  23. SelectionLevelsController controller = new(_service);
  24. var result = await controller.GetById(1);
  25. (result as OkObjectResult).StatusCode.Should().Be(200);
  26. }
  27. [Fact]
  28. public async Task GetById_ShouldThrowEntityNotFooundException_WhenLevelDoesnotExist()
  29. {
  30. _service.When(x => x.GetByIdAsync(Arg.Any<int>())).Do(x => { throw new EntityNotFoundException(); });
  31. SelectionLevelsController controller = new(_service);
  32. await Assert.ThrowsAsync<EntityNotFoundException>(() => controller.GetById(1000));
  33. }
  34. [Fact]
  35. public async Task GetAll_ShouldReturn_200OK_Always()
  36. {
  37. var levels = new List<SelectionLevelResponseWithDataDto>
  38. {
  39. new SelectionLevelResponseWithDataDto
  40. {
  41. Id = 1,
  42. Name = "HR intervju",
  43. SelectionProcesses = new List<SelectionProcessResposneDto>()
  44. }
  45. };
  46. _service.GetAllAsync().Returns(levels);
  47. SelectionLevelsController controller = new(_service);
  48. var result = await controller.GetAll();
  49. (result as OkObjectResult).StatusCode.Should().Be(200);
  50. }
  51. [Fact]
  52. public async Task GetFilteredLevels_ShouldReturn_200OK_Always()
  53. {
  54. var levels = new List<SelectionLevelResponseWithDataDto>
  55. {
  56. new SelectionLevelResponseWithDataDto
  57. {
  58. Id = 1,
  59. Name = "HR intervju",
  60. SelectionProcesses = new List<SelectionProcessResposneDto>()
  61. }
  62. };
  63. var filter = new SelectionProcessFilterDto();
  64. _service.GetAllAsync().Returns(levels);
  65. SelectionLevelsController controller = new(_service);
  66. var result = await controller.GetFilteredLevels(filter);
  67. (result as OkObjectResult).StatusCode.Should().Be(200);
  68. }
  69. }
  70. }