diff --git a/src/core/global.rs b/src/core/global.rs index a130f3d..52389e8 100644 --- a/src/core/global.rs +++ b/src/core/global.rs @@ -8,7 +8,7 @@ pub struct Domain<'a> { impl<'a> PartialEq for Domain<'a> { /// Enables comparison between two domain objects. fn eq(&self, other: &Self) -> bool { - self.subdomain == other.subdomain && self.domain == other.domain + self.subdomain == other.subdomain && self.domain == other.domain && self.top_level_domain == other.top_level_domain } } @@ -38,4 +38,36 @@ mod tests { assert_eq!(result, expected); } + + #[test] + fn test_domain_equals_when_typical() { + let left = Domain{ subdomain: Some("one"), domain: Some("two"), top_level_domain: Some("three")}; + let right = Domain{ subdomain: Some("one"), domain: Some("two"), top_level_domain: Some("three")}; + + assert_eq!(left, right); + } + + #[test] + fn test_domain_not_equals_when_diff_subdomain() { + let left = Domain{ subdomain: Some("one"), domain: Some("two"), top_level_domain: Some("three")}; + let right = Domain{ subdomain: Some("X"), domain: Some("two"), top_level_domain: Some("three")}; + + assert_ne!(left, right); + } + + #[test] + fn test_domain_not_equals_when_diff_domain() { + let left = Domain{ subdomain: Some("one"), domain: Some("two"), top_level_domain: Some("three")}; + let right = Domain{ subdomain: Some("one"), domain: Some("X"), top_level_domain: Some("three")}; + + assert_ne!(left, right); + } + + #[test] + fn test_domain_not_equals_when_diff_top_level_domain() { + let left = Domain{ subdomain: Some("one"), domain: Some("two"), top_level_domain: Some("three")}; + let right = Domain{ subdomain: Some("one"), domain: Some("two"), top_level_domain: Some("X")}; + + assert_ne!(left, right); + } }