Пример #1
0
        public async Task WhenBodyCalledAndSessionIdIsInvalid_RedirectToHome()
        {
            var controller = new ReloadController(_compositeSettings, _sessionService, _dysacServiceSetings, _dysacService);

            controller.ControllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext()
            };
            controller.HttpContext.Request.Query = new QueryCollection(new Dictionary <string, StringValues>()
            {
                { "sessionId", "123" }
            });

            _dysacService.LoadExistingDysacOnlyAssessment(Arg.Any <string>()).ReturnsForAnyArgs(
                new DysacServiceResponse()
            {
                ResponseCode = DysacReturnCode.Error
            });
            _sessionService.Reload(Arg.Any <string>()).ReturnsNullForAnyArgs();

            var result = await controller.Body() as RedirectResult;

            result.Should().NotBeNull();
            result.Should().BeOfType <RedirectResult>();
            result.Url.Should().Be("~/home?errors=true");
        }
        private async Task <IActionResult> RedirectToAssessmentOrErrorPage(string code)
        {
            var userSession = await GetUserSession(code);

            if (userSession != null)
            {
                return(GetRouteForMatchSkillsUser(userSession));
            }

            var result = await _dysacService.LoadExistingDysacOnlyAssessment(GetSessionId(code));

            return(result.ResponseCode == DysacReturnCode.Ok ? Redirect(_dysacSettings.DysacReturnUrl) : RedirectWithError("home"));
        }