require 'test_helper' require 'whois/answer/parser/whois.nic.sn' class AnswerParserWhoisNicSnTest < Whois::Answer::Parser::TestCase def setup @klass = Whois::Answer::Parser::WhoisNicSn @host = "whois.nic.sn" end def test_disclaimer assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).updated_on } assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).updated_on } end def test_domain parser = @klass.new(load_part('/registered.txt')) expected = "google.sn" assert_equal expected, parser.domain assert_equal expected, parser.instance_eval { @domain } parser = @klass.new(load_part('/available.txt')) expected = "u34jedzcq.sn" assert_equal expected, parser.domain assert_equal expected, parser.instance_eval { @domain } end def test_domain_id assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).domain_id } assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).domain_id } end def test_referral_whois assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).referral_whois } assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).referral_whois } end def test_referral_url assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).referral_url } assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).referral_url } end def test_status parser = @klass.new(load_part('/registered.txt')) expected = :registered assert_equal expected, parser.status assert_equal expected, parser.instance_eval { @status } parser = @klass.new(load_part('/available.txt')) expected = :available assert_equal expected, parser.status assert_equal expected, parser.instance_eval { @status } end def test_available? parser = @klass.new(load_part('/registered.txt')) expected = false assert_equal expected, parser.available? assert_equal expected, parser.instance_eval { @available } parser = @klass.new(load_part('/available.txt')) expected = true assert_equal expected, parser.available? assert_equal expected, parser.instance_eval { @available } end def test_registered? parser = @klass.new(load_part('/registered.txt')) expected = true assert_equal expected, parser.registered? assert_equal expected, parser.instance_eval { @registered } parser = @klass.new(load_part('/available.txt')) expected = false assert_equal expected, parser.registered? assert_equal expected, parser.instance_eval { @registered } end def test_created_on parser = @klass.new(load_part('/registered.txt')) expected = Time.parse("2008-05-08 17:59:38.43") assert_equal expected, parser.created_on assert_equal expected, parser.instance_eval { @created_on } parser = @klass.new(load_part('/available.txt')) expected = nil assert_equal expected, parser.created_on assert_equal expected, parser.instance_eval { @created_on } end def test_updated_on assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).updated_on } assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).updated_on } end def test_expires_on assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/registered.txt')).expires_on } assert_raise(Whois::PropertyNotSupported) { @klass.new(load_part('/available.txt')).expires_on } end def test_registrar parser = @klass.new(load_part('/registered.txt')) expected = Whois::Answer::Registrar.new(:id => "registry", :name => "registry") assert_equal expected, parser.registrar assert_equal expected, parser.instance_eval { @registrar } parser = @klass.new(load_part('/available.txt')) expected = nil assert_equal expected, parser.registrar assert_equal expected, parser.instance_eval { @registrar } end def test_registrant_contact parser = @klass.new(load_part('/registered.txt')) expected = Whois::Answer::Contact.new(:id => "C4-SN", :name => "C4-SN") assert_equal expected, parser.registrant_contact assert_equal expected, parser.instance_eval { @registrant_contact } parser = @klass.new(load_part('/available.txt')) expected = nil assert_equal expected, parser.registrant_contact assert_equal expected, parser.instance_eval { @registrant_contact } end def test_admin_contact parser = @klass.new(load_part('/registered.txt')) expected = Whois::Answer::Contact.new(:id => "C5-SN", :name => "C5-SN") assert_equal expected, parser.admin_contact assert_equal expected, parser.instance_eval { @admin_contact } parser = @klass.new(load_part('/available.txt')) expected = nil assert_equal expected, parser.admin_contact assert_equal expected, parser.instance_eval { @admin_contact } end def test_technical_contact parser = @klass.new(load_part('/registered.txt')) expected = Whois::Answer::Contact.new(:id => "C6-SN", :name => "C6-SN") assert_equal expected, parser.technical_contact assert_equal expected, parser.instance_eval { @technical_contact } parser = @klass.new(load_part('/available.txt')) expected = nil assert_equal expected, parser.technical_contact assert_equal expected, parser.instance_eval { @technical_contact } end def test_nameservers parser = @klass.new(load_part('/registered.txt')) expected = %w( ns1.google.com ns2.google.com ns3.google.com ns4.google.com ) assert_equal expected, parser.nameservers assert_equal expected, parser.instance_eval { @nameservers } parser = @klass.new(load_part('/available.txt')) expected = %w() assert_equal expected, parser.nameservers assert_equal expected, parser.instance_eval { @nameservers } end def test_changed_with_self parser1 = @klass.new(load_part('/registered.txt')) assert !parser1.changed?(parser1) assert parser1.unchanged?(parser1) end def test_changed_with_equal_content parser1 = @klass.new(load_part('/registered.txt')) parser2 = @klass.new(load_part('/registered.txt')) assert !parser1.changed?(parser2) assert parser1.unchanged?(parser2) end def test_changed_with_different_content parser1 = @klass.new(load_part('/registered.txt')) parser2 = @klass.new(load_part('/available.txt')) assert parser1.changed?(parser2) assert !parser1.unchanged?(parser2) end end