public async Task CardPaymentTest_BadApiKey()
        {
            var controller = new PaymentCardsController();
            var result     = await controller.CardPayment(0, "badkey", "cardnumber") as RedirectToRouteResult;

            Assert.IsTrue((string)result.RouteValues["action"] == "Index");
        }
        public void CardSecuredTest_StatusAsJSON()
        {
            var controller = new PaymentCardsController();
            var result     = controller.CardSecured("06b9e986-9609-4892-933f-9ced84f3e1c8", "1234 1234 1234 1230", "0321");

            Assert.IsInstanceOfType(result, typeof(JsonResult));
        }
        public void CardSecuredTest_BadApiKey()
        {
            var controller = new PaymentCardsController();
            var result     = controller.CardSecured("badkey", "cardnumber", "code") as HttpStatusCodeResult;

            Assert.AreEqual((int)HttpStatusCode.Forbidden, result.StatusCode);
        }
        public void CardSecuredTest_BadCardNumber()
        {
            var controller = new PaymentCardsController();
            var result     = controller.CardSecured("06b9e986-9609-4892-933f-9ced84f3e1c8", "cardnumber", "code") as HttpStatusCodeResult;

            Assert.AreEqual((int)HttpStatusCode.NotFound, result.StatusCode);
        }
        public async Task EditTest()
        {
            var controller = new PaymentCardsController();
            var result     = await controller.Edit(new PaymentCard());

            Assert.IsInstanceOfType(result, typeof(ActionResult));
        }
        public void StatusTest_NullTempData()
        {
            var controller = new PaymentCardsController();
            var result     = controller.Status(false) as RedirectToRouteResult;

            Assert.IsTrue((string)result.RouteValues["action"] == "Index");
        }
        public async Task CardPaymentTest_NullParametr()
        {
            var controller = new PaymentCardsController();
            var result     = await controller.CardPayment(0, "key", "") as RedirectToRouteResult;

            //Assert.IsTrue(result.RouteValues.Any(r => r.Value == "Index"));
            Assert.IsTrue((string)result.RouteValues["action"] == "Index");
        }
        public async Task IndexTest()
        {
            var controller = new PaymentCardsController();

            controller.ControllerContext = new ControllerContext
            {
                HttpContext = new MockHttpContextBase {
                    User = user
                }
            };

            var result = await controller.Index();

            Assert.IsInstanceOfType(result, typeof(ActionResult));
        }
        public void CardPaymentConfirmationTest_DefiniedTempData()
        {
            var controller = new PaymentCardsController();

            controller.TempData.Add("orderId", 0);
            controller.TempData.Add("cardNumber", "cardNumber");
            controller.TempData.Add("price", 1m);
            controller.TempData.Add("currency", "currency");
            controller.TempData.Add("date", new DateTime());
            controller.TempData.Add("acquirer", new Acquirer());

            var result = controller.CardPaymentConfirmation() as ViewResult;

            Assert.IsTrue(result.ViewName == "Payment");
        }
        public async Task IntegrationTest()
        {
            var controller = new PaymentCardsController();

            controller.ControllerContext = new ControllerContext
            {
                HttpContext = new MockHttpContextBase {
                    User = user
                }
            };

            var result = await controller.Index() as ViewResult;

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Model);
            Assert.IsTrue(result.ViewName == "Index" || result.ViewName == "");
        }