private async Task GeocodeVacancyAsync(Guid vacancyId)
        {
            var command = new GeocodeVacancyCommand()
            {
                VacancyId = vacancyId
            };

            await _messaging.SendCommandAsync(command);
        }
示例#2
0
        public async Task Then_If_No_Result_From_Service_Then_Vacancy_Not_Updated(
            GeocodeVacancyCommand command,
            Vacancy vacancy,
            [Frozen] Mock <IVacancyRepository> vacancyRepository,
            [Frozen] Mock <IOuterApiGeocodeService> outerApiGeocodeService,
            GeocodeVacancyCommandHandler handler)
        {
            command.VacancyId = vacancy.Id;
            vacancyRepository.Setup(x => x.GetVacancyAsync(command.VacancyId)).ReturnsAsync(vacancy);
            outerApiGeocodeService.Setup(x => x.Geocode(It.IsAny <string>())).ReturnsAsync((Geocode)null);

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

            vacancyRepository.Verify(x => x.UpdateAsync(It.IsAny <Vacancy>()), Times.Never);
        }
示例#3
0
        public async Task Then_The_Vacancy_Gets_Geocode_Data_From_Out_Code_When_Anon(
            GeocodeVacancyCommand command,
            Vacancy vacancy,
            Geocode apiResult,
            [Frozen] Mock <IVacancyRepository> vacancyRepository,
            [Frozen] Mock <IOuterApiGeocodeService> outerApiGeocodeService,
            GeocodeVacancyCommandHandler handler)
        {
            command.VacancyId                 = vacancy.Id;
            vacancy.EmployerNameOption        = EmployerNameOption.Anonymous;
            vacancy.EmployerLocation.Postcode = "TE1 5ET";
            vacancyRepository.Setup(x => x.GetVacancyAsync(command.VacancyId)).ReturnsAsync(vacancy);
            outerApiGeocodeService.Setup(x => x.Geocode("TE1")).ReturnsAsync(apiResult);

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

            vacancyRepository.Verify(x => x.UpdateAsync(It.Is <Vacancy>(c =>
                                                                        c.EmployerLocation.Latitude.Equals(apiResult.Latitude) &&
                                                                        c.EmployerLocation.Longitude.Equals(apiResult.Longitude) &&
                                                                        c.GeoCodeMethod.Equals(apiResult.GeoCodeMethod)
                                                                        )), Times.Once);
        }