Email.Tests.ps1
#################################################################################################### # Declarations #################################################################################################### # Set InformationPreference $InformationPreference = "Continue" #################################################################################################### # Functions #################################################################################################### # Import other BitTitan.Runbooks modules Import-BT_Module BitTitan.Runbooks.Common #################################################################################################### # The tests #################################################################################################### describe "Modules/BitTitan.Runbooks.Common/Email/Test-EmailAddressValidity" -Tags "module", "common", "unit" { it -TestCases @( @{ emailAddress = "ValidEmail@domain.com" }, @{ emailAddress = "valid.email@domain.com" }, @{ emailAddress = "valid-email@domain.com" } ) "returns true for the valid email address '<emailAddress>'" { param ($emailAddress) Test-EmailAddressValidity $emailAddress | Should Be $true } it -TestCases @( @{ emailAddress = "invalidEmail.com" }, @{ emailAddress = "invalidEmail." }, @{ emailAddress = "invalidEmail.c" } ) "returns false for the invalid email address '<emailAddress>'" { param ($emailAddress) Test-EmailAddressValidity $emailAddress | Should Be $false } } describe "Modules/BitTitan.Runbooks.Common/Email/Test-DomainValidity" -Tags "module", "common", "unit" { it -TestCases @( @{ domain = "valid.domain.com" }, @{ domain = "valid.domain.com.eu" }, @{ domain = "valid.domain.school.edu.us" } ) "returns true for the valid domain '<domain>'" { param ($domain) Test-DomainValidity $domain | Should Be $true } it -TestCases @( @{ domain = "invalid.domain." }, @{ domain = "invalid.domain.c" } ) "returns false for the invalid domain '<domain>'" { param ($domain) Test-DomainValidity $domain | Should Be $false } } describe "Modules/BitTitan.Runbooks.Common/Email/Get-EmailAddressDomain" -Tags "module", "common", "unit" { it -TestCases @( @{ emailAddress = "ValidEmail@domain.com" domain = "domain.com" }, @{ emailAddress = "valid.email@domain.com" domain = "domain.com" }, @{ emailAddress = "valid-email@domain.com" domain = "domain.com" } ) "extracts the domain '<domain>' from the valid email address '<emailAddress>'" { param ($emailAddress, $domain) Get-EmailAddressDomain $emailAddress | Should Be $domain } it -TestCases @( @{ emailAddress = "invalidEmail.com" }, @{ emailAddress = "invalidEmail." }, @{ emailAddress = "invalidEmail.c" } ) "returns an empty string from the invalid email address '<emailAddress>'" { param ($emailAddress) Get-EmailAddressDomain $emailAddress | Should Be "" } } describe "Modules/BitTitan.Runbooks.Common/Email/Get-EmailAddressUsername" -Tags "module", "common", "unit" { it -TestCases @( @{ emailAddress = "ValidEmail@domain.com" username = "ValidEmail" }, @{ emailAddress = "valid.email@domain.com" username = "valid.email" }, @{ emailAddress = "valid-email@domain.com" username = "valid-email" } ) "extracts the username '<username>' from the valid email address '<emailAddress>'" { param ($emailAddress, $username) Get-EmailAddressUsername $emailAddress | Should Be $username } it -TestCases @( @{ emailAddress = "invalidEmail.com" }, @{ emailAddress = "invalidEmail." }, @{ emailAddress = "invalidEmail.c" } ) "returns an empty string from the invalid email address '<emailAddress>'" { param ($emailAddress) Get-EmailAddressUsername $emailAddress | Should Be "" } } |