public void LinkLearningHubAccountIfNotLinked_calls_service_to_update_delegate_authId_when_not_linked() { // Given const int delegateId = 3; const int learningHubAuthId = 1; A.CallTo(() => userDataService.GetDelegateUserLearningHubAuthId(delegateId)) .Returns(null); // When learningHubLinkService.LinkLearningHubAccountIfNotLinked(delegateId, learningHubAuthId); // Then A.CallTo(() => userDataService.SetDelegateUserLearningHubAuthId(A <int> ._, A <int> ._)) .MustHaveHappenedOnceExactly(); }
public void LinkLearningHubSso_invalid_state_throws_exception() { // Given controller.ModelState.AddModelError("Hash", "Required."); // When Action a = () => controller.LinkLearningHubSso(new LinkLearningHubRequest()); // Then using (new AssertionScope()) { a.Should().Throw <LearningHubLinkingRequestException>(); A.CallTo( () => learningHubLinkService.ValidateLinkingRequestAndExtractDestinationResourceId( A <LinkLearningHubRequest> ._, A <string> ._ ) ) .MustNotHaveHappened(); A.CallTo(() => learningHubLinkService.IsLearningHubAccountLinked(A <int> ._)).MustNotHaveHappened(); A.CallTo(() => learningHubLinkService.LinkLearningHubAccountIfNotLinked(A <int> ._, A <int> ._)) .MustNotHaveHappened(); } }
public IActionResult LinkLearningHubSso([FromQuery] LinkLearningHubRequest linkLearningHubRequest) { if (!ModelState.IsValid) { throw new LearningHubLinkingRequestException("Invalid Learning Hub request."); } var learningHubResourcedId = learningHubLinkService.ValidateLinkingRequestAndExtractDestinationResourceId( linkLearningHubRequest, HttpContext.Session.GetString(LinkLearningHubRequest.SessionIdentifierKey) ); var delegateId = User.GetCandidateIdKnownNotNull(); var isAccountAlreadyLinked = learningHubLinkService.IsLearningHubAccountLinked(delegateId); learningHubLinkService.LinkLearningHubAccountIfNotLinked(delegateId, linkLearningHubRequest.UserId); var model = new LinkLearningHubViewModel(isAccountAlreadyLinked, learningHubResourcedId); return(View("../LinkLearningHubSso", model)); }