Exemple #1
0
        public async Task ShouldReturnTheAccountLinkSuccessView(
            string code,
            string accessToken,
            string idToken,
            string discordToken,
            Models.User discordUser,
            Guid identityUserId,
            [Substitute] HttpContext httpContext,
            [Frozen, Substitute] IUserService userService,
            [Target] OAuth2Controller controller
            )
        {
            controller.ControllerContext = new ControllerContext {
                HttpContext = httpContext
            };
            userService.GetDiscordUserInfo(Is(discordToken), Any <CancellationToken>()).Returns(discordUser);
            userService.GetUserIdFromIdentityToken(Is(idToken)).Returns(identityUserId);
            userService.ExchangeOAuth2CodeForToken(Is(code), Any <CancellationToken>()).Returns(discordToken);
            SetupHttpContext(httpContext, accessToken, idToken);
            SetupTempData(controller);

            var result = await controller.Callback(code) as ViewResult;

            result.Should().NotBeNull();
            result !.ViewName.Should().Be("~/Users/Views/AccountLink.cshtml");
        }