Search Results for

    Show / Hide Table of Contents

    Class Test_PasswordResetTokenRepository

    Comprehensive test suite for the PasswordResetTokenRepository class.

    Inheritance
    object
    Test_PasswordResetTokenRepository
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: OEMS.UnitTests.Infrastructure
    Assembly: OEMS.UnitTests.dll
    Syntax
    [TestClass]
    public sealed class Test_PasswordResetTokenRepository
    Remarks

    This test class verifies the repository's database operations for password reset tokens including:

    • Token creation and persistence
    • Token validation and retrieval
    • Token expiration handling
    • Token usage tracking
    • Cleanup operations for expired tokens

    Test categories following testkonzept guidelines:

    • Valid operations: Create, retrieve, update tokens
    • Invalid operations: Missing tokens, invalid IDs
    • Edge cases: Expired tokens, concurrent access, boundary conditions

    Methods

    ConcurrentTokenCreation_MultipleThreads_HandledCorrectly()

    Tests concurrent token operations.

    Declaration
    [TestMethod]
    public Task ConcurrentTokenCreation_MultipleThreads_HandledCorrectly()
    Returns
    Type Description
    Task
    Remarks

    Edge case test: Concurrency handling. Verifies repository handles concurrent operations correctly.

    CreateAsync_NullToken_ReturnsFalse()

    Tests token creation with null token object.

    Declaration
    [TestMethod]
    public Task CreateAsync_NullToken_ReturnsFalse()
    Returns
    Type Description
    Task
    Remarks

    Invalid parameter test: Null reference passed to repository. Should handle gracefully and return false.

    CreateAsync_ValidToken_CreatesSuccessfully()

    Tests successful creation of a new password reset token.

    Declaration
    [TestMethod]
    public Task CreateAsync_ValidToken_CreatesSuccessfully()
    Returns
    Type Description
    Task
    Remarks

    Valid parameter test: All required fields provided, user exists. Verifies token is properly persisted with all properties.

    DeleteExpiredTokensAsync_RemovesExpiredTokens()

    Tests cleanup of expired tokens.

    Declaration
    [TestMethod]
    public Task DeleteExpiredTokensAsync_RemovesExpiredTokens()
    Returns
    Type Description
    Task
    Remarks

    Edge case test: Data maintenance operations. Verifies repository can clean up old expired tokens.

    GetByTokenAsync_CaseSensitive_ReturnsNull()

    Tests that token retrieval is case-sensitive.

    Declaration
    [TestMethod]
    public Task GetByTokenAsync_CaseSensitive_ReturnsNull()
    Returns
    Type Description
    Task
    Remarks

    Security test: Token case sensitivity. Verifies tokens are matched exactly as stored.

    GetByTokenAsync_EmptyOrNullToken_ReturnsNull()

    Tests token retrieval with empty or null token string.

    Declaration
    [TestMethod]
    public Task GetByTokenAsync_EmptyOrNullToken_ReturnsNull()
    Returns
    Type Description
    Task
    Remarks

    Security test: Input validation. Should handle invalid input gracefully.

    GetByTokenAsync_ExistingToken_ReturnsToken()

    Tests successful retrieval of a password reset token by token string.

    Declaration
    [TestMethod]
    public Task GetByTokenAsync_ExistingToken_ReturnsToken()
    Returns
    Type Description
    Task
    Remarks

    Valid parameter test: Token exists in database. Verifies repository correctly retrieves token with all properties.

    GetByTokenAsync_NonExistentToken_ReturnsNull()

    Tests retrieval of non-existent token.

    Declaration
    [TestMethod]
    public Task GetByTokenAsync_NonExistentToken_ReturnsNull()
    Returns
    Type Description
    Task
    Remarks

    Invalid parameter test: Token does not exist in database. Should return null without throwing exceptions.

    GetByTokenAsync_WithWhitespace_ReturnsNull()

    Tests that whitespace in tokens is significant.

    Declaration
    [TestMethod]
    public Task GetByTokenAsync_WithWhitespace_ReturnsNull()
    Returns
    Type Description
    Task
    Remarks

    Security test: Token exact matching. Verifies whitespace and formatting are preserved.

    GetValidTokensByUserIdAsync_ExpiredTokens_NotIncluded()

    Tests that expired tokens are not returned as valid.

    Declaration
    [TestMethod]
    public Task GetValidTokensByUserIdAsync_ExpiredTokens_NotIncluded()
    Returns
    Type Description
    Task
    Remarks

    Edge case test: Token expiration boundary condition. Verifies repository correctly handles token expiration logic.

    GetValidTokensByUserIdAsync_NonExistentUser_ReturnsEmpty()

    Tests retrieval of valid tokens for non-existent user.

    Declaration
    [TestMethod]
    public Task GetValidTokensByUserIdAsync_NonExistentUser_ReturnsEmpty()
    Returns
    Type Description
    Task
    Remarks

    Invalid parameter test: User ID does not exist in database. Should return empty collection.

    GetValidTokensByUserIdAsync_UsedTokens_NotIncluded()

    Tests that used tokens are not returned as valid.

    Declaration
    [TestMethod]
    public Task GetValidTokensByUserIdAsync_UsedTokens_NotIncluded()
    Returns
    Type Description
    Task
    Remarks

    Edge case test: Token reuse prevention. Verifies repository correctly handles used token logic.

    GetValidTokensByUserIdAsync_UserWithValidTokens_ReturnsOnlyValidTokens()

    Tests successful retrieval of valid tokens for a user.

    Declaration
    [TestMethod]
    public Task GetValidTokensByUserIdAsync_UserWithValidTokens_ReturnsOnlyValidTokens()
    Returns
    Type Description
    Task
    Remarks

    Valid parameter test: User exists and has valid tokens. Verifies repository returns only valid (unused and not expired) tokens.

    InvalidateAllUserTokensAsync_InvalidatesAllUserTokens()

    Tests invalidation of all tokens for a user.

    Declaration
    [TestMethod]
    public Task InvalidateAllUserTokensAsync_InvalidatesAllUserTokens()
    Returns
    Type Description
    Task
    Remarks

    Edge case test: Bulk token invalidation. Verifies repository can invalidate all user tokens at once.

    MarkAsUsedAsync_NonExistentTokenId_ReturnsFalse()

    Tests marking non-existent token as used.

    Declaration
    [TestMethod]
    public Task MarkAsUsedAsync_NonExistentTokenId_ReturnsFalse()
    Returns
    Type Description
    Task
    Remarks

    Invalid parameter test: Token ID does not exist in database. Should handle gracefully and return false.

    MarkAsUsedAsync_ValidToken_MarksAsUsed()

    Tests successful marking of a token as used.

    Declaration
    [TestMethod]
    public Task MarkAsUsedAsync_ValidToken_MarksAsUsed()
    Returns
    Type Description
    Task
    Remarks

    Valid parameter test: Token exists and is valid. Verifies token usage status is correctly updated in database.

    SetUp()

    Initializes test environment with in-memory database before each test.

    Declaration
    [TestInitialize]
    public Task SetUp()
    Returns
    Type Description
    Task
    Remarks

    Creates a fresh database context for each test to ensure isolation. Sets up test data that covers various token states and scenarios.

    TearDown()

    Cleans up test resources after each test

    Declaration
    [TestCleanup]
    public void TearDown()
    In this article
    Back to top Generated by DocFX