require 'test_helper' class DomainVersionTest < ActiveSupport::TestCase setup do @domain_version = log_domains(:one) @contact = contacts(:john) end def test_was_contact_linked_returns_true_when_contact_was_used_as_registrant @domain_version.update!(children: { admin_contacts: [], tech_contacts: [], registrant: [@contact.id] }) assert Version::DomainVersion.was_contact_linked?(@contact.id) end def test_was_contact_linked_returns_true_when_contact_was_used_as_admin_contact @domain_version.update!(children: { admin_contacts: [@contact.id], tech_contacts: [], registrant: [] }) assert Version::DomainVersion.was_contact_linked?(@contact.id) end def test_was_contact_linked_returns_true_when_contact_was_used_as_tech_contact @domain_version.update!(children: { admin_contacts: [], tech_contacts: [@contact.id], registrant: [] }) assert Version::DomainVersion.was_contact_linked?(@contact.id) end def test_was_contact_linked_returns_false_when_contact_was_not_used @domain_version.update!(children: { admin_contacts: [], tech_contacts: [], registrant: [] }) assert_not Version::DomainVersion.was_contact_linked?(@contact.id) end def test_contact_unlinked_more_than_returns_true_when_contact_was_linked_as_registrant_more_than_given_period @domain_version.update!(created_at: Time.zone.parse('2010-07-04 00:00:00'), children: { admin_contacts: [], tech_contacts: [], registrant: [@contact.id] }) travel_to Time.zone.parse('2010-07-05 00:00:01') assert Version::DomainVersion.contact_unlinked_more_than?(contact_id: @contact.id, period: 1.day) end def test_contact_unlinked_more_than_given_period_as_admin_contact @domain_version.update!(created_at: Time.zone.parse('2010-07-04 00:00:00'), children: { admin_contacts: [1, @contact.id], tech_contacts: [], registrant: [] }) travel_to Time.zone.parse('2010-07-05 00:00:01') assert Version::DomainVersion.contact_unlinked_more_than?(contact_id: @contact.id, period: 1.day) end def test_contact_unlinked_more_than_given_period_as_tech_contact @domain_version.update!(created_at: Time.zone.parse('2010-07-04 00:00:00'), children: { admin_contacts: [], tech_contacts: [1, @contact.id], registrant: [] }) travel_to Time.zone.parse('2010-07-05 00:00:01') assert Version::DomainVersion.contact_unlinked_more_than?(contact_id: @contact.id, period: 1.day) end def test_contact_linked_within_given_period_as_registrant @domain_version.update!(created_at: Time.zone.parse('2010-07-05'), children: { admin_contacts: [], tech_contacts: [], registrant: [@contact.id] }) travel_to Time.zone.parse('2010-07-05') assert_not Version::DomainVersion.contact_unlinked_more_than?(contact_id: @contact.id, period: 1.day) end def test_contact_linked_within_given_period_as_admin_contact @domain_version.update!(created_at: Time.zone.parse('2010-07-05'), children: { admin_contacts: [1, @contact.id], tech_contacts: [], registrant: [] }) travel_to Time.zone.parse('2010-07-05') assert_not Version::DomainVersion.contact_unlinked_more_than?(contact_id: @contact.id, period: 1.day) end def test_contact_linked_within_given_period_as_tech_contact @domain_version.update!(created_at: Time.zone.parse('2010-07-05'), children: { admin_contacts: [], tech_contacts: [1, @contact.id], registrant: [] }) travel_to Time.zone.parse('2010-07-05') assert_not Version::DomainVersion.contact_unlinked_more_than?(contact_id: @contact.id, period: 1.day) end def test_contact_was_never_linked Version::DomainVersion.delete_all assert_not Version::DomainVersion.contact_unlinked_more_than?(contact_id: @contact.id, period: 1.day) end end