Esempio n. 1
0
        public async Task <ActionResult> Index(MoneyConvertorModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            try
            {
                var request = _appSettings.WebApiUri;
                var client  = _clientFactory.CreateClient();

                client.BaseAddress = new Uri(request);

                var result = await client.PostAsJsonAsync("api/MoneyConvertor", model);

                if (result.IsSuccessStatusCode)
                {
                    model = await result.Content.ReadAsAsync <MoneyConvertorModel>();

                    return(RedirectToAction("Result", model));
                }
                else
                {
                    ModelState.AddModelError(string.Empty, "An unexpected errr happened.");
                    return(View(model));
                }
            }
            catch (Exception exception)
            {
                //Log the exception via sending the telemetry data to Azure Application Insight
                ModelState.AddModelError(string.Empty, "An unexpected errr happened.");
                return(View(model));
            }
        }
Esempio n. 2
0
        public IActionResult MoneyConvertor(MoneyConvertorModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            BussinessLogic.BuildMoneyString(model);
            return(Ok(model));
        }
        public void Result_Always_ShouldReturnResultView()
        {
            //Arrange
            var model             = new MoneyConvertorModel();
            var ConvertController = new HomeController(getMockHttpClientFactory().Object, getMockIOptionsSnapshot().Object);

            //Act
            ActionResult actionResult = ConvertController.Result(model);

            //Assert
            Assert.AreEqual((actionResult as ViewResult)?.ViewName, "Result");
        }
        public void Result_Always_ShouldReturnView()
        {
            //Arrange
            var model             = new MoneyConvertorModel();
            var ConvertController = new HomeController(getMockHttpClientFactory().Object, getMockIOptionsSnapshot().Object);

            //Act
            ActionResult actionResult = ConvertController.Result(model);

            //Assert
            Assert.IsInstanceOf <ViewResult>(actionResult);
        }
Esempio n. 5
0
        public void MoneyConvertor_WithValidModel_ShouldReturnOkObjectResult()
        {
            //Arrange
            var mockUrlLogic = new Mock <IMoneyConvertor>();
            var controller   = new MoneyConvertorController(mockUrlLogic.Object);
            var model        = new MoneyConvertorModel();

            //Act
            IActionResult actionResult = controller.MoneyConvertor(model);

            //Assert
            Assert.IsInstanceOf <OkObjectResult>(actionResult);
        }
        public void BuildMoneyString_NotNull_ShouldInitializeMoneyString()
        {
            //Arrange
            var sut   = new DollarConvertor();
            var model = new MoneyConvertorModel()
            {
                Money = 0m
            };

            Assert.IsNull(model.MoneyString);

            //Act
            sut.BuildMoneyString(model);

            //Assert
            Assert.NotNull(model.MoneyString);
        }
Esempio n. 7
0
        public void MoneyConvertor_WithInvalidModel_ShouldReturnBadRequestObjectResult()
        {
            //Arrange
            var mockUrlLogic = new Mock <IMoneyConvertor>();
            var controller   = new MoneyConvertorController(mockUrlLogic.Object);

            controller.ModelState.AddModelError("", "");
            var model = new MoneyConvertorModel()
            {
                Money = 1
            };

            //Act
            IActionResult actionResult = controller.MoneyConvertor(model);

            //Assert
            Assert.IsInstanceOf <BadRequestObjectResult>(actionResult);
        }
Esempio n. 8
0
        public void MoneyConvertor_WithValidModel_ShouldCallLogic()
        {
            //Arrange
            var mockUrlLogic = new Mock <IMoneyConvertor>();
            var controller   = new MoneyConvertorController(mockUrlLogic.Object);
            var model        = new MoneyConvertorModel()
            {
                Money = 1
            };

            //Act
            IActionResult actionResult = controller.MoneyConvertor(model);

            //Assert
            mockUrlLogic.Verify(
                x =>
                x.BuildMoneyString(It.IsAny <MoneyConvertorModel>()),
                "A valid model should call the logic");
        }
Esempio n. 9
0
        public void MoneyConvertor_WithInvalidModel_ShouldNotCallLogic()
        {
            //Arrange
            var mockUrlLogic = new Mock <IMoneyConvertor>();
            var controller   = new MoneyConvertorController(mockUrlLogic.Object);

            controller.ModelState.AddModelError("", "");
            var model = new MoneyConvertorModel()
            {
                Money = 1
            };

            //Act
            IActionResult actionResult = controller.MoneyConvertor(model);

            //Assert
            mockUrlLogic.Verify(
                x =>
                x.BuildMoneyString(It.IsAny <MoneyConvertorModel>()),
                Times.Never,
                "An Invalid model should not make call to logic");
        }
Esempio n. 10
0
 public ActionResult Result(MoneyConvertorModel model)
 {
     return(View("Result", model));
 }
 public void BuildMoneyString(MoneyConvertorModel model)
 {
     model.MoneyString = new Dollar(model.Money).ConvertToString();
 }