public void LaunchpadFilter_InitializedLists_WhenConstructed() { var filter = new LaunchpadFilter(); Assert.IsNotNull(filter.LaunchpadIds); Assert.IsNotNull(filter.LaunchpadNames); }
private void Given_A_Launchpad_Filter_Request_On_PageSize() { filter = new LaunchpadFilter() { PageSize = 1, PageNumber = 1 }; }
public async Task FilterLaunchpads_ReturnsOkRequest_WithValidFilter() { var filter = new LaunchpadFilter(); var response = await this.controller.FilterLaunchpads(filter); Assert.IsInstanceOf <OkObjectResult>(response); }
public void FilterLaunchpads_ReturnInternalServerError_WhenExceptionIsThrown() { var filter = new LaunchpadFilter(); launchpadServiceMock.Setup(x => x.FilterLaunchPads(It.IsAny <LaunchpadFilter>())).ThrowsAsync(new Exception()); Assert.ThrowsAsync <Exception>(async() => await this.controller.FilterLaunchpads(filter)); }
private void Given_A_Launchpad_Filter_Request_On_Status() { var launchpadStatus = launchpads[3].Status; filter = new LaunchpadFilter() { LaunchpadStatus = launchpadStatus }; }
public void IsValid_RertunsFalse_WhenPageSizeIsLessThan1() { var filter = new LaunchpadFilter() { PageNumber = 1, PageSize = 0 }; Assert.IsFalse(filter.IsValid()); }
public static string ToQueryString(this LaunchpadFilter filter) { var result = new List <string>(); result.AddRange(filter.LaunchpadIds.Select(x => $"LaunchpadIds={x}")); result.AddRange(filter.LaunchpadNames.Select(x => $"LaunchpadNames={x}")); result.Add($"LaunchpadStatus={filter.LaunchpadStatus}"); result.Add($"PageSize={filter.PageSize}"); result.Add($"PageNumber={filter.PageNumber}"); return(string.Join("&", result.ToArray())); }
public static bool HasBeenAppliedTo(this LaunchpadFilter filter, IEnumerable <LaunchpadDto> dtos) { bool idsValidated = filter.LaunchpadIds.Any() ? dtos.All(x => filter.LaunchpadIds.Contains(x.Id)) : true; bool namesValidated = filter.LaunchpadNames.Any() ? dtos.All(x => filter.LaunchpadNames.Contains(x.Name)) : true; bool statusValidated = !String.IsNullOrWhiteSpace(filter.LaunchpadStatus) ? dtos.All(x => x.Status.Equals(filter.LaunchpadStatus)) : true; bool pageSizeValidated = filter.PageSize != null?dtos.Count() == filter.PageSize : true; return(idsValidated && namesValidated && statusValidated && pageSizeValidated); }
public void ApplyFilter_AppliesFilter_ToLaunchpadList() { var filter = new LaunchpadFilter() { LaunchpadIds = new List <string>() { this.dtoList[0].Id } }; Assert.AreEqual(1, dtoList.ApplyFilter(filter).Count()); }
public void IsValie_ReturnsFalse_WhenAllNamesAreNull() { var filter = new LaunchpadFilter() { LaunchpadNames = new List <string>() { null } }; Assert.IsFalse(filter.IsValid()); }
private void Given_A_Launchpad_Filter_Request_On_Two_Names() { var launchpadName1 = launchpads[0].Name; var launchpadName2 = launchpads[1].Name; filter = new LaunchpadFilter() { LaunchpadNames = new List <string>() { launchpadName1, launchpadName2 } }; }
private void Given_A_Launchpad_Filter_Request_On_Two_Ids() { var launchpadId1 = launchpads[0].Id; var launchpadId2 = launchpads[1].Id; filter = new LaunchpadFilter() { LaunchpadIds = new List <string>() { launchpadId1, launchpadId2 } }; }
public async Task <IEnumerable <LaunchpadDto> > FilterLaunchpads(LaunchpadFilter filter) { using (var client = new HttpClient()) { var response = await client.GetAsync(this.launchPadBaseUri); var responseBody = await response.Content.ReadAsStringAsync(); var launchPadList = JsonConvert.DeserializeObject <List <ResponseLaunchpad> >(responseBody); var launchPadDtoList = launchPadList.Select(x => x.ConvertToLaunchpadDto()); return(launchPadDtoList.ApplyFilter(filter)); } }
public void ApplyFilter_AppliesCombinationFilter_ToLaunchpadList() { var filter = new LaunchpadFilter() { LaunchpadIds = new List <string>() { this.dtoList[0].Id }, LaunchpadNames = new List <string>() { this.dtoList[1].Name } }; Assert.AreEqual(0, dtoList.ApplyFilter(filter).Count()); }
public async Task <IActionResult> FilterLaunchpads(LaunchpadFilter filter) { filter = filter ?? new LaunchpadFilter(); try { if (!filter.IsValid()) { return(BadRequest()); } var launchPads = await this.launchpadService.FilterLaunchPads(filter); return(Ok(launchPads)); } catch (Exception ex) { logger.LogError(ex, $"Unhandled error thrown while retrieving launchpad information with filter {filter}"); throw; } }
public static IEnumerable <LaunchpadDto> ApplyFilter(this IEnumerable <LaunchpadDto> dtos, LaunchpadFilter filter) { var filteredDtos = dtos; if (filter.LaunchpadIds.Any()) { filteredDtos = filteredDtos.Where(x => filter.LaunchpadIds.Contains(x.Id)); } if (filter.LaunchpadNames.Any()) { filteredDtos = filteredDtos.Where(x => filter.LaunchpadNames.Contains(x.Name)); } if (!String.IsNullOrWhiteSpace(filter.LaunchpadStatus)) { filteredDtos = filteredDtos.Where(x => x.Status.Equals(filter.LaunchpadStatus)); } if (filter.PageSize != null && filter.PageNumber != null) { var skip = (filter.PageNumber.Value - 1) * filter.PageSize.Value; filteredDtos = filteredDtos.Skip(skip).Take(filter.PageSize.Value); } return(filteredDtos); }
public void IsValid_ReturnsTrue_WhenFilterIsEmpty() { var filter = new LaunchpadFilter(); Assert.IsTrue(filter.IsValid()); }
private void Given_An_Http_Get_Request() { filter = null; }