public async Task <IActionResult> GetAsync([FromQuery] Consumable consumable, [FromQuery] Address address) { NullCheck.ThrowIfNull <Consumable>(consumable); NullCheck.ThrowIfNull <Address>(address); try { consumable.address = address; _resourceDemandInputValidatorService.ValidateForDemandQuery(consumable); return(Ok(await _resourceDemandQueryService.QueryDemandsAsync(consumable).ToListAsync())); } catch (ArgumentException e) { return(BadRequest(e.Message)); } catch (UnknownAdressException e) { return(BadRequest(e.Message)); } }
public void QueryConsumable_BadInputs() { //Invalid category var consumable = _captainHookGenerator.GenerateQueryConsumable(); consumable.category = ""; Assert.Throws <ArgumentException>(() => _service.ValidateForDemandQuery(consumable)); //Country empty but postal code specified consumable = _captainHookGenerator.GenerateQueryConsumable(); consumable.address.Country = ""; Assert.Throws <ArgumentException>(() => _service.ValidateForDemandQuery(consumable)); //Negative kilometer consumable = _captainHookGenerator.GenerateQueryConsumable(); consumable.kilometer = -10; Assert.Throws <ArgumentException>(() => _service.ValidateForDemandQuery(consumable)); }