private ChallengeResult HandleChallenegeResponseContent(string responseContent,
                                                                SupportServiceResourceKey resourceKey,
                                                                SupportServiceResourceKey challengeKey,
                                                                string id,
                                                                string redirect)
        {
            var challengeValidationResult = new ChallengeValidationResult();

            try
            {
                challengeValidationResult = JsonConvert.DeserializeObject <ChallengeValidationResult>(responseContent);
            }
            catch (Exception)
            {
                _log.Debug($"Not a Valid Json Challenge Result received for account Id: {id}");
            }

            if (!challengeValidationResult.IsValidResponse)
            {
                return(new ChallengeResult
                {
                    Page = _formMapper.UpdateForm(resourceKey, challengeKey, id, redirect, responseContent)
                });
            }

            return(new ChallengeResult {
                RedirectUrl = redirect
            });
        }
        public async Task ItShouldReceiveJustARedirectOnSuccess()
        {
            var challengeResult = new ChallengeValidationResult
            {
                IsValidResponse = true
            };

            MockSiteConnector
            .Setup(x => x.Upload <string>(It.IsAny <Uri>(), It.IsAny <IDictionary <string, string> >()))
            .Returns(Task.FromResult(JsonConvert.SerializeObject(challengeResult)));

            var result = await Unit.SubmitChallenge(_id, _submittedFormData);

            Assert.IsNotNull(result);
            Assert.IsTrue(result.HasRedirect);
            Assert.AreEqual(_redirectUrl, result.RedirectUrl);
            Assert.IsNull(result.Page);
        }