public async Task <IHttpActionResult> TranslateToWords([FromBody] NumberModel model) { var regex = new Regex(@"\d*(\.\d{0,2})?"); if (!model.input.IsNullOrWhiteSpace() && regex.Match(model.input).Success) { var output = await Task.FromResult(_numberService.ConvertPrice(model.input)); return(Ok(new ResponseObject() { Success = true, Payload = output })); } return(Ok(new ResponseObject() { Success = false, ErrorMessage = "Only numbers and 2 digit decimals are accepted!", })); }
public void ValidInputTest() { var result = _ns.ConvertPrice("0"); Assert.AreEqual("ZERO DOLLAR", result.ToUpper()); result = _ns.ConvertPrice("1"); Assert.AreEqual("ONE DOLLAR", result.ToUpper()); result = _ns.ConvertPrice("111"); Assert.AreEqual("ONE HUNDRED AND ELEVEN DOLLARS", result.ToUpper()); result = _ns.ConvertPrice(".01"); Assert.AreEqual("ONE CENT", result.ToUpper()); result = _ns.ConvertPrice("7.1"); Assert.AreEqual("SEVEN DOLLARS AND TEN CENTS", result.ToUpper()); result = _ns.ConvertPrice("7.00"); Assert.AreEqual("SEVEN DOLLARS", result.ToUpper()); result = _ns.ConvertPrice(".97"); Assert.AreEqual("NINETY-SEVEN CENTS", result.ToUpper()); result = _ns.ConvertPrice("12889211.07"); Assert.AreEqual("TWELVE MILLION AND EIGHT HUNDRED AND EIGHTY-NINE THOUSAND AND TWO HUNDRED AND ELEVEN DOLLARS AND SEVEN CENTS", result.ToUpper()); result = _ns.ConvertPrice("100000001.01"); Assert.AreEqual("ONE HUNDRED MILLION AND ONE DOLLARS AND ONE CENT", result.ToUpper()); result = _ns.ConvertPrice("9999999999999.99"); Assert.AreEqual("NINE TRILLION AND NINE HUNDRED AND NINETY-NINE BILLION AND NINE HUNDRED AND NINETY-NINE MILLION AND NINE HUNDRED AND NINETY-NINE THOUSAND AND NINE HUNDRED AND NINETY-NINE DOLLARS AND NINETY-NINE CENTS", result.ToUpper()); result = _ns.ConvertPrice("123.45"); Assert.AreEqual("ONE HUNDRED AND TWENTY-THREE DOLLARS AND FORTY-FIVE CENTS", result.ToUpper()); }