Search Results for

    Show / Hide Table of Contents

    Class Test_EmailTemplateService

    Comprehensive test suite for the EmailTemplateService with organization branding functionality.

    Inheritance
    object
    Test_EmailTemplateService
    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_EmailTemplateService
    Remarks

    This test class verifies the branded email template generation system including:

    • Organization branding integration (colors, logos)
    • Password reset email template generation
    • Fallback to default templates when branding is unavailable
    • Logo URL generation and handling
    • JSON branding settings parsing

    Test categories following testkonzept guidelines:

    • Valid parameters: Organization with branding, valid user data
    • Invalid parameters: Missing organization, invalid branding settings
    • Edge cases: Null values, malformed JSON, missing files

    Methods

    GeneratePasswordResetEmailAsync_BrandingWithoutLogo_UsesDefaultLogo()

    Tests password reset email generation with organization branding but no logo.

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

    Valid parameter test: Organization has colors but no custom logo. Verifies partial branding works correctly with default logo fallback.

    GeneratePasswordResetEmailAsync_EmptyResetUrl_HandlesGracefully()

    Tests password reset email generation with invalid reset URL.

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

    Invalid parameter test: Empty or invalid URL. Should handle gracefully with validation.

    GeneratePasswordResetEmailAsync_InvalidBrandingJson_FallsBackToDefault()

    Tests password reset email generation with malformed branding JSON.

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

    Edge case test: Invalid JSON in branding settings. Should fall back to default styling gracefully.

    GeneratePasswordResetEmailAsync_MaliciousResetUrl_IncludesUrl()

    Tests password reset email generation with malicious reset URL.

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

    Edge case test: Security consideration for URL handling. Current implementation does not sanitize URLs - this is a security consideration.

    GeneratePasswordResetEmailAsync_NullOrganization_ThrowsNullReferenceException()

    Tests password reset email generation with null organization parameter.

    Declaration
    [TestMethod]
    [ExpectedException(typeof(NullReferenceException))]
    public Task GeneratePasswordResetEmailAsync_NullOrganization_ThrowsNullReferenceException()
    Returns
    Type Description
    Task
    Remarks

    Invalid parameter test: Null organization reference. Current implementation throws NullReferenceException.

    GeneratePasswordResetEmailAsync_NullUser_ThrowsNullReferenceException()

    Tests password reset email generation with null user parameter.

    Declaration
    [TestMethod]
    [ExpectedException(typeof(NullReferenceException))]
    public Task GeneratePasswordResetEmailAsync_NullUser_ThrowsNullReferenceException()
    Returns
    Type Description
    Task
    Remarks

    Invalid parameter test: Null user reference. Current implementation throws NullReferenceException.

    GeneratePasswordResetEmailAsync_UserWithEmptyNames_HandlesGracefully()

    Tests password reset email generation with user having empty name fields.

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

    Edge case test: User with missing or empty personal information. Should handle missing data gracefully.

    GeneratePasswordResetEmailAsync_VariousBrandingFormats_ParsedCorrectly()

    Tests branding settings parsing with various JSON formats.

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

    Comprehensive test for JSON parsing edge cases. Verifies robust handling of different branding setting formats.

    GeneratePasswordResetEmailAsync_VeryLongOrganizationName_HandlesCorrectly()

    Tests password reset email generation with very long organization name.

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

    Edge case test: Boundary condition for organization name length. Should handle long names without breaking email formatting.

    GeneratePasswordResetEmailAsync_WithCompleteBranding_AppliesAllBrandingElements()

    Tests password reset email generation with complete organization branding.

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

    Valid parameter test: Organization has custom colors and logo. Verifies all branding elements are correctly applied to email template.

    GetOrganizationLogoUrlAsync_FileServiceReturnsNull_ReturnsDefaultLogo()

    Tests logo URL generation when file service returns null.

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

    Edge case test: File service failure or missing file. Should fall back to default logo gracefully.

    GetOrganizationLogoUrlAsync_NoFileId_ReturnsDefaultLogo()

    Tests logo URL generation for organization without file ID.

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

    Invalid parameter test: Organization has no logo file. Should return default logo path.

    GetOrganizationLogoUrlAsync_ValidFileId_ReturnsLogoUrl()

    Tests logo URL generation for organization with valid file ID.

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

    Valid parameter test: Organization has logo file. Simple method test according to testkonzept guidelines.

    SetUp()

    Initializes test dependencies and data before each test method execution.

    Declaration
    [TestInitialize]
    public void SetUp()
    Remarks

    Sets up mock services and test data following testkonzept isolation principles. Creates various organization scenarios for comprehensive testing.

    In this article
    Back to top Generated by DocFX