public void Then_The_Url_Is_Correctly_Constructed_And_Encoded(string postcode, string route, int distance) { //Arrange postcode = $"{postcode} !£$@'''``@%{postcode}"; route = $"{route} !£$@'''``@%{route}"; //Act var actual = new GetAdvertsRequest(postcode, distance, route); //Assert actual.GetUrl.Should().Be($"adverts?postcode={HttpUtility.UrlEncode(postcode)}&route={HttpUtility.UrlEncode(route)}&distance={distance}"); }
public async Task <GetVacanciesQueryResult> Handle(GetVacanciesQuery request, CancellationToken cancellationToken) { var apiRequest = new GetAdvertsRequest(request.Postcode, request.Distance, request.Route); var response = await _apiClient.Get <GetAdvertsResponse>(apiRequest); return(new GetVacanciesQueryResult { Routes = response.Routes, Location = response.Location, Vacancies = response.Vacancies, TotalFound = response.TotalFound }); }
public async Task Then_The_Api_Is_Called_And_Data_Returned( GetVacanciesQuery query, GetAdvertsResponse apiResponse, [Frozen] Mock <IApiClient> apiClient, GetVacanciesQueryHandler handler) { var expectedUrl = new GetAdvertsRequest(query.Postcode, query.Distance, query.Route); apiClient.Setup(x => x.Get <GetAdvertsResponse>(It.Is <GetAdvertsRequest>(c => c.GetUrl.Equals(expectedUrl.GetUrl)))) .ReturnsAsync(apiResponse); var actual = await handler.Handle(query, CancellationToken.None); actual.Should().BeEquivalentTo(apiResponse); }
public override async Task <AdvertsList> GetAdvertisements(GetAdvertsRequest request, ServerCallContext context) { // simple linq select statement on top of database query return(new() { Advert = { (await _advertisingService.GetAllAdvertsAsync()).Select(x => new Advert { Message = x.Message, Title = x.Title, ImageUrl = x.ImageUri }) } }); }