public async Task SearchTest()
        {
            Vacancy vacancy1 = new Vacancy()
            {
                Id = 22,

                Status = 1,

                ProjectName = "Some project name",

                City = 4
            };

            Vacancy vacancy2 = new Vacancy()
            {
                Id = 2,

                Status = 4,

                ProjectName = "Another project name",

                City = 2
            };

            VacancySearchModel searchModel = new VacancySearchModel()
            {
                VacancyName = "JavaScript Junior Developer",

                City = 3,

                Status = 2,

                RequestDate = new DateTime(2017, 8, 8)
            };

            IQueryable <Vacancy> vacancyFindList = new List <Vacancy>().AsQueryable();

            IQueryable <Vacancy> vacancyReadList = new List <Vacancy>()
            {
                vacancy1, vacancy2
            }.AsQueryable();

            mockVacancyRepository.Setup(x => x.Find(It.IsAny <VacancySearchModel>())).Returns(vacancyFindList);

            mockVacancyRepository.Setup(x => x.ReadAll()).Returns(vacancyReadList);

            var candidateRepository = mockCandidateRepository.Object;

            var unitOfWork = mockUnitOfWork.Object;

            var candidateService = mockCandidateService.Object;

            var techSkillRepository = mockTechSkillRepository.Object;

            var vacancyRepository = mockVacancyRepository.Object;

            var eventService = mockEventService.Object;

            var vacancyService = new VacancyService(unitOfWork, vacancyRepository, candidateRepository, techSkillRepository,
                                                    candidateService, eventService);

            var result = await vacancyService.Search(0, 5, searchModel, null);

            Assert.AreEqual(0, result.Count);

            var actual = await vacancyService.Search(0, 5, null, null);

            Assert.AreEqual(2, actual.Count);
        }