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"]); }
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)); }