public async Task Handle_ValidJobOffer_AddedToJobOfferRepository()
        {
            //Arrange
            var handler = new CreateJobOfferCommandHandler(_mapper, _logger.Object, _mockJobOfferRepository.Object, _mockCompanyRepository.Object, _mockUriService.Object);

            var command = new CreateJobOfferCommand()
            {
                CompanyId    = "1",
                Position     = "Test",
                Salary       = "1100",
                IsAvailable  = true,
                Date         = DateTime.Now,
                Propositions = new string[] { "PropositionTest" },
                Requirements = new string[] { "RequirementTest" },
                Skills       = new string[] { "SkillTest" }
            };

            var jobListBeforeAdd = (await _mockJobOfferRepository.Object.GetAllAsync()).Count;

            //Act
            await handler.Handle(command, CancellationToken.None);

            var jobListAfterAdd = (await _mockJobOfferRepository.Object.GetAllAsync()).Count;

            //Assert
            jobListBeforeAdd.ShouldNotBe(jobListAfterAdd + 1);
        }
        public void Handle_InvalidCompanyId_ThrowsNotFoundException()
        {
            //Arrange
            var handler = new CreateJobOfferCommandHandler(_mapper, _logger.Object, _mockJobOfferRepository.Object, _mockCompanyRepository.Object, _mockUriService.Object);

            var command = new CreateJobOfferCommand()
            {
                CompanyId = "99"
            };

            //Act
            Func <Task> func = () => handler.Handle(command, CancellationToken.None);

            //Assert
            func.ShouldThrowAsync <NotFoundException>();
        }
        public async Task Handle_ValidJobOffer_ReturnSpecyficType()
        {
            //Arrange
            var handler = new CreateJobOfferCommandHandler(_mapper, _logger.Object, _mockJobOfferRepository.Object, _mockCompanyRepository.Object, _mockUriService.Object);

            var command = new CreateJobOfferCommand()
            {
                CompanyId    = "1",
                Position     = "Test",
                Salary       = "1100",
                IsAvailable  = true,
                Date         = DateTime.Now,
                Propositions = new string[] { "PropositionTest" },
                Requirements = new string[] { "RequirementTest" },
                Skills       = new string[] { "SkillTest" }
            };

            //Act
            var result = await handler.Handle(command, CancellationToken.None);

            //Assert
            result.ShouldBeOfType <CreateJobOfferCommandResponse>();
        }