Пример #1
0
        public void AcquireToken_CallParameters_AreCorrect()
        {
            // prepare
            var apiResponse = new ApiResponseModel()
            {
                ResponseMessage = "api-acquiretoken-result",
                StatusCode      = HttpStatusCode.OK
            };

            string executedApiRoute  = null;
            var    executedApiParams = new Dictionary <string, string>();
            var    mockedApiClient   = new Mock <IApiClient>();

            mockedApiClient.Setup(c => c.MakeCallPost(It.IsAny <string>()))
            .Callback <string>(route => executedApiRoute = route)
            .Returns(apiResponse);
            mockedApiClient.Setup(c => c.AddParameter(It.IsAny <string>(), It.IsAny <string>()))
            .Callback <string, string>((k, v) => executedApiParams.Add(k, v));
            var client = new ApiHelper(mockedApiClient.Object);

            // action
            var executedApiResult = client.AcquireToken("email", "pass", "appId");

            // verify
            Assert.Equal("api-acquiretoken-result", executedApiResult.ResponseMessage);
            Assert.Equal(HttpStatusCode.OK, executedApiResult.StatusCode);
            Assert.Equal("api/auth/acquiretoken", executedApiRoute);
            Assert.Equal(3, executedApiParams.Count);
            Assert.Equal("email", executedApiParams["Email"]);
            Assert.Equal("pass", executedApiParams["Password"]);
            Assert.Equal("appId", executedApiParams["AppId"]);
        }
Пример #2
0
        public IActionResult Login(LoginModel model, string returnUrl)
        {
            Breadcrumb.Add("Login", "Login", "Auth");

            if (!ModelState.IsValid)
            {
                logger.Information("Model is not valid");

                Alert.Warning();

                ViewBag.ReturnUrl = returnUrl;
                return(View(model));
            }

            var handler      = new ApiHelper(Settings.ApiReference);
            var resultString = handler.AcquireToken(model.Email, model.Password, "1");
            var result       = JsonConvert.DeserializeObject <ResultModel <object> >(resultString.ResponseMessage);

            if (result.Status.Code == ResultCode.Error)
            {
                ModelState.AddModelError("Email", "Invalid email or password");

                logger.Information("Token is not valid");

                Alert.Warning();
                ViewBag.ReturnUrl = returnUrl;

                return(View(model));
            }

            HttpContext.Session.SetString("token", result.Value.ToString());

            var userDetails = getUserDetails.Invoke(model.Email);

            HttpContext.Session.SetString("UserDetails", JsonConvert.SerializeObject(userDetails));

            ViewData["Message"] = model.Email;

            Alert.Success("Logged in");

            if (string.IsNullOrEmpty(returnUrl))
            {
                return(RedirectToAction("Index", "Home"));
            }
            return(Redirect(returnUrl));
        }