Example #1
0
    public async Task Calls_AddInfoAlert()
    {
        // Arrange
        var v = Setup();

        // Act
        _ = await AuthF.DoSignOutAsync(v);

        // Assert
        v.AddInfoAlert.Received().Invoke("Goodbye!");
    }
Example #2
0
    public async Task Calls_SignOutAsync()
    {
        // Arrange
        var v = Setup();

        // Act
        _ = await AuthF.DoSignOutAsync(v);

        // Assert
        await v.SignOutAsync.Received().Invoke();
    }
Example #3
0
    public async Task Calls_GetSignInFormPage__Returns_AuthResult_SignedOut()
    {
        // Arrange
        var v = Setup();

        // Act
        var result = await AuthF.DoSignOutAsync(v);

        // Assert
        Assert.IsType <AuthResult.SignedOut>(result);
        v.RedirectUrl.Received().Invoke();
    }
Example #4
0
    public async Task Calls_Log_Vrb__With_Correct_Values()
    {
        // Arrange
        var auth  = Substitute.For <IAuthDataProvider>();
        var email = Rnd.Str;
        var model = new SignInModel {
            Email = email
        };
        var log = Substitute.For <ILog>();

        // Act
        _ = await AuthF.ValidateUserAsync(auth, model, log);

        // Assert
        log.Received().Vrb("Validating credentials for {User}.", email);
    }
Example #5
0
    public async Task Calls_ValidateUserAsync__With_Correct_Values()
    {
        // Arrange
        var auth     = Substitute.For <IAuthDataProvider>();
        var email    = Rnd.Str;
        var password = Rnd.Str;
        var model    = new SignInModel {
            Email = email, Password = password
        };
        var log = Substitute.For <ILog>();

        // Act
        _ = await AuthF.ValidateUserAsync(auth, model, log);

        // Assert
        await auth.Received().ValidateUserAsync <AuthUserModel>(email, password);
    }
    public async Task Returns_ClaimsPrincipal_With_User_Info_Claims()
    {
        // Arrange
        var user = new AuthUserModel
        {
            Id           = LongId <AuthUserId>(),
            EmailAddress = Rnd.Str,
            FriendlyName = Rnd.Str,
            IsSuper      = true
        };

        // Act
        var result = await AuthF.GetPrincipalAsync(user, Rnd.Str, null);

        // Assert
        Assert.Collection(result.Claims,
                          c =>
        {
            Assert.Equal(JwtClaimTypes.UserId, c.Type);
            Assert.Equal(user.Id.Value.ToString(), c.Value);
        },
                          c =>
        {
            Assert.Equal(ClaimTypes.Name, c.Type);
            Assert.Equal(user.FriendlyName, c.Value);
        },
                          c =>
        {
            Assert.Equal(ClaimTypes.Email, c.Type);
            Assert.Equal(user.EmailAddress, c.Value);
        },
                          c =>
        {
            Assert.Equal(JwtClaimTypes.IsSuper, c.Type);
            Assert.Equal(user.IsSuper.ToString(), c.Value);
        }
                          );
    }