private async Task GeocodeVacancyAsync(Guid vacancyId) { var command = new GeocodeVacancyCommand() { VacancyId = vacancyId }; await _messaging.SendCommandAsync(command); }
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); }
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); }