public void Call_ConvertCurrency_ShoulReturn_CurrencyInWords() { //Arrange var requestCurrencyModel = new RequestCurrencyModel { Name = "Muhammad Zeeshan", Currency = new decimal(123.45) }; var wordsCurrencyModel = new ResponseCurrencyModel { Name = "Muhammad Zeeshan", CurrencyInWords = "ONE HUNDRED AND TWENTY-THREE DOLLARS AND FORTY-FIVE CENTS" }; _service.ConvertToWords(Arg.Any <RequestCurrencyModel>()).Returns(wordsCurrencyModel); //Action var response = _controller.Post(requestCurrencyModel).ExecuteAsync(CancellationToken.None).Result; var result = JsonConvert.DeserializeObject <ResponseCurrencyModel>(response.Content.ReadAsStringAsync().Result); //Assert Assert.AreEqual(response.StatusCode, HttpStatusCode.OK); Assert.AreEqual(result.Name, "Muhammad Zeeshan"); Assert.AreEqual(result.CurrencyInWords, "ONE HUNDRED AND TWENTY-THREE DOLLARS AND FORTY-FIVE CENTS"); }
public void ConvertToWords_GreaterThanMillion_ShouldReturn_ArgumentOfRangeException() { //Arrange var model = new RequestCurrencyModel { Name = "Muhammad Zeeshan", Currency = new decimal(9999999.99 + 1) }; //Action //Assert Assert.Throws <ArgumentOutOfRangeException>(() => _service.ConvertToWords(model)); }
public void ConvertToWords_MaxValue_ShouldReturn_ValidText() { //Arrange var model = new RequestCurrencyModel { Name = "Muhammad Zeeshan", Currency = new decimal(9999999.99) }; //Action var result = _service.ConvertToWords(model); //Assert Assert.AreEqual(result.CurrencyInWords, "NINE MILLION AND NINE HUNDRED AND NINETY-NINE THOUSAND AND NINE HUNDRED AND NINETY-NINE DOLLARS AND NINETY-NINE CENTS"); }
public void ConvertToWords_Million_ShouldReturn_ValidText() { //Arrange var model = new RequestCurrencyModel { Name = "Muhammad Zeeshan", Currency = new decimal(9000000) }; //Action var result = _service.ConvertToWords(model); //Assert Assert.AreEqual(result.CurrencyInWords, "NINE MILLION DOLLARS"); }
public void ConvertToWords_OnlyDollar_ShouldReturn_ValidText() { //Arrange var model = new RequestCurrencyModel { Name = "Muhammad Zeeshan", Currency = new decimal(100) }; //Action var result = _service.ConvertToWords(model); //Assert Assert.AreEqual(result.CurrencyInWords, "ONE HUNDRED DOLLARS"); }
public ResponseCurrencyModel ConvertToWords(RequestCurrencyModel model) { //Validate //Parse Dollars and Cents var parsedCurrency = _currencyParser.Parse(model.Currency); //Convert Dollars to words var dollarsInWords = NumberToWords(parsedCurrency.Dollars); //Convert Cents to words var centsInWords = NumberToWords(parsedCurrency.Cents); //Foramt Dollars & Cents var currencyInWords = _currencyFormatter.Format(dollarsInWords, centsInWords); //retrun; return(new ResponseCurrencyModel { Name = model.Name, CurrencyInWords = currencyInWords }); }
public IHttpActionResult Post(RequestCurrencyModel model) { return(Ok(_numberToWordsService.ConvertToWords(model))); }