geocerts 0.0.25 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,45 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://%{PARTNER_ID}:%{API_TOKEN}@sandbox.geocerts.com:443/1/products/BAD/agreement.xml
6
+ body:
7
+ headers:
8
+ accept:
9
+ - application/xml
10
+ accept-encoding:
11
+ - gzip, deflate
12
+ response: !ruby/struct:VCR::Response
13
+ status: !ruby/struct:VCR::ResponseStatus
14
+ code: 422
15
+ message: Unprocessable Entity
16
+ headers:
17
+ x-powered-by:
18
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.0
19
+ connection:
20
+ - keep-alive
21
+ content-type:
22
+ - application/xml; charset=utf-8
23
+ server:
24
+ - nginx/0.8.52 + Phusion Passenger 3.0.0 (mod_rails/mod_rack)
25
+ x-runtime:
26
+ - "5"
27
+ content-length:
28
+ - "177"
29
+ set-cookie:
30
+ - _geocerts_sec=5cd7b1cc76a2a4defe5b3d6107482c48; path=/; secure
31
+ - _fresh_session=2419fe88920a026c3aecf3df4871003c; path=/; HttpOnly
32
+ cache-control:
33
+ - no-cache
34
+ status:
35
+ - "422"
36
+ body: |
37
+ <?xml version="1.0" encoding="UTF-8"?>
38
+ <errors>
39
+ <error>
40
+ <code type="integer">-90000</code>
41
+ <message>Unrecognized product code requested</message>
42
+ </error>
43
+ </errors>
44
+
45
+ http_version: "1.1"
@@ -0,0 +1,51 @@
1
+ module GeoCerts
2
+ module Responses
3
+ module FraudScore
4
+ Query = <<-RESPONSE
5
+ HTTP/1.1 200 OK
6
+ Etag: "94d6a7687963f059aa9249300d721ef1"
7
+ Connection: Keep-Alive
8
+ Content-Type: application/xml; charset=utf-8
9
+ Date: Tue, 13 Jul 2010 21:57:44 GMT
10
+ X-Runtime: 444
11
+ Content-Length: 1439
12
+ Cache-Control: private, max-age=0, must-revalidate
13
+
14
+ <?xml version="1.0" encoding="UTF-8"?>
15
+ <fraud-score>
16
+ <country-match type="boolean">true</country-match>
17
+ <country-code>US</country-code>
18
+ <high-risk-country type="boolean">false</high-risk-country>
19
+ <distance type="integer">20</distance>
20
+ <ip-region>FL</ip-region>
21
+ <ip-city>Orlando</ip-city>
22
+ <ip-latitude type="float">28.5341</ip-latitude>
23
+ <ip-longitude type="float">-81.1647</ip-longitude>
24
+ <ip-isp>PowerOne Internet LLC</ip-isp>
25
+ <ip-org>CoLabs</ip-org>
26
+ <anonymous-proxy type="boolean">false</anonymous-proxy>
27
+ <proxy-score type="float">0.0</proxy-score>
28
+ <transparent-proxy type="boolean"></transparent-proxy>
29
+ <freemail type="boolean">false</freemail>
30
+ <carder-email type="boolean"></carder-email>
31
+ <high-risk-username type="boolean"></high-risk-username>
32
+ <high-risk-password type="boolean"></high-risk-password>
33
+ <bin-match>NA</bin-match>
34
+ <bin-country></bin-country>
35
+ <bin-name-match>NA</bin-name-match>
36
+ <bin-name></bin-name>
37
+ <bin-phone-match>NA</bin-phone-match>
38
+ <bin-phone></bin-phone>
39
+ <phone-in-billing-location>false</phone-in-billing-location>
40
+ <ship-forward></ship-forward>
41
+ <city-postal-match type="boolean">false</city-postal-match>
42
+ <ship-city-postal-match type="boolean"></ship-city-postal-match>
43
+ <explanation>This order is low risk</explanation>
44
+ <risk-score type="float">0.1</risk-score>
45
+ <queries-remaining type="integer">975</queries-remaining>
46
+ <error></error>
47
+ </fraud-score>
48
+ RESPONSE
49
+ end
50
+ end
51
+ end
@@ -7,26 +7,21 @@ class GeoCerts::AgreementTest < Test::Unit::TestCase
7
7
  context 'user agreement' do
8
8
 
9
9
  should 'return a GeoCerts::Agreement' do
10
- managed_server_request :get, '/products.xml', :response => Responses::Product::All do
11
- managed_server_request :get, '/products/Q/agreement.xml', :response => Responses::Agreement::Agreement do
12
- assert_kind_of(GeoCerts::Agreement, GeoCerts::Product.find('Q').user_agreement)
13
- end
10
+ VCR.use_cassette('product_agreement') do
11
+ assert_kind_of GeoCerts::Agreement,
12
+ GeoCerts::Product.find('Q').user_agreement
14
13
  end
15
14
  end
16
15
 
17
16
  should 'contain the server-provided agreement text' do
18
- managed_server_request :get, '/products.xml', :response => Responses::Product::All do
19
- managed_server_request :get, '/products/Q/agreement.xml', :response => Responses::Agreement::Agreement do
20
- text = GeoCerts::Product.find('Q').user_agreement.text
21
- assert_match(/GeoTrust\(R\) SSL Certificate Subscriber Agreement/, text)
22
- assert_match(/YOU MUST READ THIS GEOTRUST SSL CERTIFICATE SUBSCRIBER AGREEMENT/, text)
23
- assert_match(/GeoTrust SSL Certificate Subscriber Agreement Version 2.0/, text)
24
- end
17
+ VCR.use_cassette('product_agreement') do
18
+ text = GeoCerts::Product.find('Q').user_agreement.text
19
+ assert_match(/SSL Certificate Subscriber Agreement/, text)
25
20
  end
26
21
  end
27
22
 
28
23
  should 'return an error for an unrecognized product code' do
29
- managed_server_request :get, '/products/BAD/agreement.xml', :response => Responses::Agreement::UnrecognizedProduct do
24
+ VCR.use_cassette('product_agreement_404') do
30
25
  assert_responds_with_exception(GeoCerts::UnprocessableEntity, -90000) do
31
26
  GeoCerts::Product.new(:sku => 'BAD').user_agreement
32
27
  end
@@ -1,73 +1,154 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class GeoCerts::CertificateTest < Test::Unit::TestCase
4
-
4
+
5
5
  context 'Certificate (using the API)' do
6
-
6
+
7
7
  context 'all' do
8
-
9
- should 'return a collection of GeoCerts::Certificates' do
10
- managed_server_request :get, '/certificates.xml', :response => Responses::Certificate::All do
11
- assert GeoCerts::Certificate.all.all? { |item| item.kind_of?(GeoCerts::Certificate) }
8
+ subject do
9
+ @_subject ||= VCR.use_cassette('certificates') do
10
+ GeoCerts::Certificate.all
12
11
  end
13
12
  end
14
-
15
- should 'return two certificates' do
16
- exclusively_mocked_request :get, '/certificates.xml', :response => Responses::Certificate::All do
17
- assert_equal(2, GeoCerts::Certificate.all.size)
18
- end
13
+
14
+ should 'return a collection of GeoCerts::Certificates' do
15
+ assert subject.all? { |item| item.kind_of?(GeoCerts::Certificate) }
16
+ end
17
+
18
+ should 'return a certificate' do
19
+ assert_equal 1, subject.size
19
20
  end
20
-
21
+
21
22
  should 'properly populate the certificate data' do
22
- exclusively_mocked_request :get, '/certificates.xml', :response => Responses::Certificate::All do
23
- certificate = GeoCerts::Certificate.all.first
24
- assert_equal('422815', certificate.order_id)
25
- assert_equal('93520', certificate.geotrust_order_id)
26
- assert_equal('Renewed', certificate.status)
27
- assert_equal('www.example.com', certificate.common_name)
28
- assert_equal('1E08', certificate.serial_number)
29
- assert_equal('Atlanta', certificate.city)
30
- assert_equal('Georgia', certificate.state)
31
- assert_equal('US', certificate.country)
32
- assert_equal('GeoCerts', certificate.organization)
33
- assert_equal('Internet', certificate.organizational_unit)
34
- assert_equal(DateTime.parse('2009-08-11T19:28:18-04:00'), certificate.start_at)
35
- assert_equal(DateTime.parse('2009-08-20T00:59:16-04:00'), certificate.end_at)
36
- assert_match(%r{/orders/422815/certificate\.xml$}, certificate.url)
37
- assert_equal("-----BEGIN CERTIFICATE-----\nMIIDATCCAmqgAwIBAgICHwkwDQYJKoZIhvcNAQEEBQAwSzELMAkGA1UEBhMCVVMx\nFTATBgNVBAoTDEdlb1RydXN0IEluYzElMCMGA1UEAxMcR2VvVHJ1c3QgUHJlLVBy\nb2R1Y3Rpb24gQ0EgMTAeFw0wOTA4MTEyMzI4MThaFw0wOTA4MjAwNDU5MTZaMIHI\nMQswCQYDVQQGEwJVUzEbMBkGA1UEChMSc3J2MDIud2F2ZXBhdGguY29tMRMwEQYD\nVQQLEwpHVDAzMTIzMjc1MTEwLwYDVQQLEyhTZWUgd3d3Lmdlb3RydXN0LmNvbS9y\nZXNvdXJjZXMvY3BzIChjKTA5MTcwNQYDVQQLEy5Eb21haW4gQ29udHJvbCBWYWxp\nZGF0ZWQgLSBRdWlja1NTTCBQcmVtaXVtKFIpMRswGQYDVQQDExJzcnYwMi53YXZl\ncGF0aC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOfnRzNL60aJdLL7\nSyJ7OFJPINg4yjLDLUJA7moeerN7QupUeJm68LHQ7juTRJ7lqkwTNK1hDRZuH7+6\nsM3ohFOjWv9D9hEWqR1tKAUBnhTJlTr8rYmvqbSNCWhUJZy53NqntiyDpg8kNOTM\nUVsY0cAn9e4vJHvh49t2AsMMAjtjAgMBAAGjdjB0MA4GA1UdDwEB/wQEAwIE8DBB\nBgNVHR8EOjA4MDagNKAyhjBodHRwOi8vdGVzdC1jcmwuZ2VvdHJ1c3QuY29tL2Ny\nbHMvcHJlcHJvZGNhMS5jcmwwHwYDVR0jBBgwFoAUSu1cZmsN8sJTHAsEc92rVZad\nv4cwDQYJKoZIhvcNAQEEBQADgYEAJyNUrcKjcbtVatngWw6KCCtogp1V2eEt9BJM\nUVsY0cAn9e4vJHvh49t2AsMMAjtjAgMBAAGjdjB0MA4GA1UdDwEB/wQEAwIE8DBB\nBgNVHR8EOjA4MDagNKAyhjBodHRwOi8vdGVzdC1jcmwuZ2VvdHJ1c3QuY29tL2Ny\ngrVniKk=\n-----END CERTIFICATE-----\n", certificate.certificate)
38
- assert_equal("-----BEGIN CERTIFICATE-----\nMIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV\nUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy\ndGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1\nMVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx\ndWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B\nAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f\nBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A\ncJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC\nAwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ\nMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm\naWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw\nODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj\nIBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF\nMAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA\nMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm\naWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw\n1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4\n-----END CERTIFICATE-----", certificate.ca_root)
39
- assert !certificate.trial?
40
- end
23
+ certificate = subject.first
24
+ assert_equal('R6FQJ89F', certificate.order_id)
25
+ assert_equal('173141', certificate.geotrust_order_id)
26
+ assert_equal('Active', certificate.status)
27
+ assert_equal('envylabs.com', certificate.common_name)
28
+ assert_equal('5A43', certificate.serial_number)
29
+ assert_equal('', certificate.city)
30
+ assert_equal('', certificate.state)
31
+ assert_equal('US', certificate.country)
32
+ assert_equal('envylabs.com', certificate.organization)
33
+ assert_equal('Domain Control Validated - GeoTrust(R) SSL Trial', certificate.organizational_unit)
34
+ assert_equal(DateTime.parse('2011-01-11T07:06:37+00:00'), certificate.start_at)
35
+ assert_equal(DateTime.parse('2011-01-20T15:23:06+00:00'), certificate.end_at)
36
+ assert_match(%r{/orders/432866/certificate\.xml$}, certificate.url)
37
+ assert_equal(<<-_certificate_, certificate.certificate)
38
+ -----BEGIN CERTIFICATE-----
39
+ MIIEYDCCA0igAwIBAgICWkMwDQYJKoZIhvcNAQEFBQAwTzELMAkGA1UEBhMCVVMx
40
+ FTATBgNVBAoTDEdlb1RydXN0IEluYzEpMCcGA1UEAxMgR2VvVHJ1c3QgUHJlLVBy
41
+ b2R1Y3Rpb24gU1VCIENBIDMwHhcNMTEwMTExMDcwNjM3WhcNMTEwMTIwMTUyMzA2
42
+ WjCBtDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDGVudnlsYWJzLmNvbTETMBEGA1UE
43
+ CxMKR1Q4Nzg5NDQwNDEnMCUGA1UECxMed3d3Lmdlb3RydXN0LmNvbS9yZXNvdXJj
44
+ ZXMvY3BzMTkwNwYDVQQLEzBEb21haW4gQ29udHJvbCBWYWxpZGF0ZWQgLSBHZW9U
45
+ cnVzdChSKSBTU0wgVHJpYWwxFTATBgNVBAMTDGVudnlsYWJzLmNvbTCCASIwDQYJ
46
+ KoZIhvcNAQEBBQADggEPADCCAQoCggEBALlhCULQ4sdyrB48Fz7+FZ8c7IYJAXpJ
47
+ U/bnsTeRvf2je5xD9ZOpQbLAlprXaDWWd28LJOenQ7zxPGNGhcsdSnZ/zZautNVh
48
+ 9hgTmqfOCqZO6UV3atmrR3Wc69ZRbIEKf6IjwWpA1IjIa4fI82UVXL2k0R2ZZyz1
49
+ gvBapa50WEWqYvzv385q9NAPlqqZsrh11Sl1jxdk5+a9y74TOyFRwPHH2ZVVAYur
50
+ Z0JuiAbyiKD+XruL9A2eXw1cdAuUiOsmoXrt9lYyXhwcgrrgpdt/uP4+fn5HR+QO
51
+ EPrB6lX48O3r06KkoYNJ3PKw+UhhJpiBK8hn7IR5nHKSb0fq+6Rd+08CAwEAAaOB
52
+ 3zCB3DAfBgNVHSMEGDAWgBRlda4iaOfdlCsTaNUsGCuGGFWgxTAOBgNVHQ8BAf8E
53
+ BAMCBaAwFwYDVR0RBBAwDoIMZW52eWxhYnMuY29tMEQGA1UdHwQ9MDswOaA3oDWG
54
+ M2h0dHA6Ly90ZXN0LWNybC5nZW90cnVzdC5jb20vY3Jscy9wcmVwcm9kc3ViY2Ez
55
+ LmNybDAMBgNVHRMBAf8EAjAAMB0GA1UdDgQWBBSUvveqOz3h0R8PCrqDKFz3y1Ek
56
+ kjAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQEFBQAD
57
+ ggEBAIlYkCdEmbs6F9OR3KEH2LKJ6QMC3+0+xVLF+Hy03iyLHfn0c9S+lC4Ox8Wz
58
+ trRAwyWZ7yPJAirF4/TiGyFlqATZ7Fm63+bouNpLyYDdmlznvfamE7vCFy3rTPWr
59
+ lTJLU10SrSpb0LgEAvI6a7HX31risInjPRDNTC25yn7D4rOkpQN1iE2BRPjkia2r
60
+ FHf5SVMRgY8yYBTik2cjnxCYrG1EmbcpqM6J+QjMZiRMIO/EWLnP78Tj8uAejgzd
61
+ oUXXRSwjOul7ZWfb9sTydjrUAz8WBfFVuo3/g3B95GEjWxatzaNQTriM7MrZSshq
62
+ 5njFPdPu2+JKXyZnyjUEu7RdLNA=
63
+ -----END CERTIFICATE-----
64
+ _certificate_
65
+
66
+ assert_equal(<<-_certificate_, certificate.ca_root)
67
+ -----BEGIN CERTIFICATE-----
68
+ MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
69
+ MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
70
+ YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
71
+ EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
72
+ R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
73
+ 9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
74
+ fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
75
+ iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
76
+ 1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
77
+ bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
78
+ MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
79
+ ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
80
+ uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
81
+ Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
82
+ tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
83
+ PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
84
+ hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
85
+ 5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
86
+ -----END CERTIFICATE-----
87
+ _certificate_
88
+
89
+ assert_equal([<<-_certificate_], certificate.ca_intermediates)
90
+ -----BEGIN CERTIFICATE-----
91
+ MIID+jCCAuKgAwIBAgIDAjbSMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
92
+ MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
93
+ YWwgQ0EwHhcNMTAwMjI2MjEzMjMxWhcNMjAwMjI1MjEzMjMxWjBhMQswCQYDVQQG
94
+ EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UECxMURG9tYWluIFZh
95
+ bGlkYXRlZCBTU0wxGzAZBgNVBAMTEkdlb1RydXN0IERWIFNTTCBDQTCCASIwDQYJ
96
+ KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa7jnrNpJxiV9RRMEJ7ixqy0ogGrTs8
97
+ KRMMMbxp+Z9alNoGuqwkBJ7O1KrESGAA+DSuoZOv3gR+zfhcIlINVlPrqZTP+3RE
98
+ 60OUpJd6QFc1tqRi2tVI+Hrx7JC1Xzn+Y3JwyBKF0KUuhhNAbOtsTdJU/V8+Jh9m
99
+ cajAuIWe9fV1j9qRTonjynh0MF8VCpmnyoM6djVI0NyLGiJOhaRO+kltK3C+jgwh
100
+ w2LMpNGtFmuae8tk/426QsMmqhV4aJzs9mvIDFcN5TgH02pXA50gDkvEe4GwKhz1
101
+ SupKmEn+Als9AxSQKH6a9HjQMYRX5Uw4ekIR4vUoUQNLIBW7Ihq28BUCAwEAAaOB
102
+ 2TCB1jAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFIz02ZMKR7wAoErOS3VuoLaw
103
+ sn78MB8GA1UdIwQYMBaAFMB6mGiNifurBWQMEX2qfWW4ysxOMBIGA1UdEwEB/wQI
104
+ MAYBAf8CAQAwOgYDVR0fBDMwMTAvoC2gK4YpaHR0cDovL2NybC5nZW90cnVzdC5j
105
+ b20vY3Jscy9ndGdsb2JhbC5jcmwwNAYIKwYBBQUHAQEEKDAmMCQGCCsGAQUFBzAB
106
+ hhhodHRwOi8vb2NzcC5nZW90cnVzdC5jb20wDQYJKoZIhvcNAQEFBQADggEBADOR
107
+ NxHbQPnejLICiHevYyHBrbAN+qB4VqOC/btJXxRtyNxflNoRZnwekcW22G1PqvK/
108
+ ISh+UqKSeAhhaSH+LeyCGIT0043FiruKzF3mo7bMbq1vsw5h7onOEzRPSVX1ObuZ
109
+ lvD16lo8nBa9AlPwKg5BbuvvnvdwNs2AKnbIh+PrI7OWLOYdlF8cpOLNJDErBjgy
110
+ YWE5XIlMSB1CyWee0r9Y9/k3MbBn3Y0mNhp4GgkZPJMHcCrhfCn13mZXCxJeFu1e
111
+ vTezMGnGkqX2Gdgd+DYSuUuVlZzQzmwwpxb79k1ktl8qFJymyFWOIPllByTMOAVM
112
+ IIi0tWeUz12OYjf+xLQ=
113
+ -----END CERTIFICATE-----
114
+ _certificate_
115
+
116
+ assert certificate.trial?
41
117
  end
42
-
118
+
43
119
  should 'set the end at time' do
44
- exclusively_mocked_request :get, '/certificates.xml', :response => Responses::Certificate::All do
45
- assert_equal DateTime.parse('2009-09-08T12:57:10-04:00'), GeoCerts::Certificate.all.end_at
46
- end
120
+ assert_equal DateTime.parse('2011-01-12T19:53:05+00:00'),
121
+ subject.end_at
47
122
  end
48
-
123
+
49
124
  should 'set the start at time' do
50
- exclusively_mocked_request :get, '/certificates.xml', :response => Responses::Certificate::All do
51
- assert_equal DateTime.parse('2009-08-09T12:57:10-04:00'), GeoCerts::Certificate.all.start_at
52
- end
125
+ assert_equal DateTime.parse('2010-12-12T19:53:05+00:00'),
126
+ subject.start_at
53
127
  end
54
-
55
- should 'modify the queried window of time' do
56
- managed_server_request :get, '/certificates.xml?start_at=2009-01-01T00:00:00+00:00&end_at=2009-01-02T00:00:00+00:00', :response => Responses::Certificate::All do
57
- GeoCerts::Certificate.all(:start_at => DateTime.parse('2009-01-01T00:00:00Z'), :end_at => DateTime.parse('2009-01-02T00:00:00Z'))
128
+
129
+ should_eventually 'modify the queried window of time' do
130
+ VCR.use_cassette('certificates_query_window') do
131
+ result = GeoCerts::Certificate.all({
132
+ :start_at => DateTime.parse('2009-01-01T00:00:00Z'),
133
+ :end_at => DateTime.parse('2009-01-02T00:00:00Z')
134
+ })
135
+ assert_equal DateTime.parse('2009-01-01T00:00:00Z'),
136
+ subject.start_at.to_s
137
+ assert_equal DateTime.parse('2009-01-02T00:00:00Z'),
138
+ subject.end_at.to_s
58
139
  end
59
140
  end
60
-
141
+
61
142
  end
62
-
143
+
63
144
  context 'find' do
64
-
145
+
65
146
  setup do
66
147
  managed_server_request :get, '/orders.xml', :response => Responses::Order::All do
67
148
  @order_id = GeoCerts::Order.all.first.id
68
149
  end
69
150
  end
70
-
151
+
71
152
  should 'return a GeoCerts::Certificate' do
72
153
  managed_server_request :get, "/orders/#{@order_id}/certificate.xml", :response => Responses::Certificate::Certificate do
73
154
  certificate = GeoCerts::Certificate.find(@order_id)
@@ -75,7 +156,7 @@ class GeoCerts::CertificateTest < Test::Unit::TestCase
75
156
  assert_equal(@order_id, certificate.order_id)
76
157
  end
77
158
  end
78
-
159
+
79
160
  should 'properly populate the certificate data' do
80
161
  exclusively_mocked_request :get, '/orders/422815/certificate.xml', :response => Responses::Certificate::Certificate do
81
162
  certificate = GeoCerts::Certificate.find(422815)
@@ -97,7 +178,7 @@ class GeoCerts::CertificateTest < Test::Unit::TestCase
97
178
  assert !certificate.trial?
98
179
  end
99
180
  end
100
-
181
+
101
182
  should 'raise a ResourceNotFound error' do
102
183
  managed_server_request :get, '/orders/999999999/certificate.xml', :response => Responses::InvalidOrderId do
103
184
  assert_responds_with_exception(GeoCerts::ResourceNotFound, -90004) do
@@ -105,17 +186,17 @@ class GeoCerts::CertificateTest < Test::Unit::TestCase
105
186
  end
106
187
  end
107
188
  end
108
-
189
+
109
190
  end
110
-
191
+
111
192
  context 'find_by_order_id' do
112
-
193
+
113
194
  setup do
114
195
  managed_server_request :get, '/orders.xml', :response => Responses::Order::All do
115
196
  @order_id = GeoCerts::Order.all.first.id
116
197
  end
117
198
  end
118
-
199
+
119
200
  should 'return a GeoCerts::Certificate' do
120
201
  managed_server_request :get, "/orders/#{@order_id}/certificate.xml", :response => Responses::Certificate::Certificate do
121
202
  certificate = GeoCerts::Certificate.find_by_order_id(@order_id)
@@ -123,7 +204,7 @@ class GeoCerts::CertificateTest < Test::Unit::TestCase
123
204
  assert_equal(@order_id, certificate.order_id)
124
205
  end
125
206
  end
126
-
207
+
127
208
  should 'properly populate the certificate data' do
128
209
  exclusively_mocked_request :get, '/orders/422815/certificate.xml', :response => Responses::Certificate::Certificate do
129
210
  certificate = GeoCerts::Certificate.find_by_order_id(422815)
@@ -145,7 +226,7 @@ class GeoCerts::CertificateTest < Test::Unit::TestCase
145
226
  assert !certificate.trial?
146
227
  end
147
228
  end
148
-
229
+
149
230
  should 'not raise a ResourceNotFound error, instead returning nil' do
150
231
  managed_server_request :get, '/orders/999999999/certificate.xml', :response => Responses::InvalidOrderId do
151
232
  assert_responds_without_exception(GeoCerts::ResourceNotFound, -90004) do
@@ -153,17 +234,17 @@ class GeoCerts::CertificateTest < Test::Unit::TestCase
153
234
  end
154
235
  end
155
236
  end
156
-
237
+
157
238
  end
158
-
239
+
159
240
  context 'reissue' do
160
-
241
+
161
242
  setup do
162
243
  managed_server_request :get, '/orders.xml', :response => Responses::Order::All do
163
244
  @order_id = GeoCerts::Order.all.first.id
164
245
  end
165
246
  end
166
-
247
+
167
248
  should 'return a GeoCerts::Certificate when successful' do
168
249
  managed_server_request :get, "/orders/#{@order_id}/certificate.xml", :response => Responses::Certificate::Certificate do
169
250
  managed_server_request :post, "/orders/422815/certificate/reissue.xml?certificate[csr][body]=testbody", :response => Responses::Certificate::Certificate do
@@ -171,7 +252,7 @@ class GeoCerts::CertificateTest < Test::Unit::TestCase
171
252
  end
172
253
  end
173
254
  end
174
-
255
+
175
256
  should 'raise an error with no CSR body provided' do
176
257
  managed_server_request :get, "/orders/#{@order_id}/certificate.xml", :response => Responses::Certificate::Certificate do
177
258
  managed_server_request :post, "/orders/#{@order_id}/certificate/reissue.xml?certificate[csr][body]=", :response => Responses::Certificate::MissingCSRBody do
@@ -181,9 +262,9 @@ class GeoCerts::CertificateTest < Test::Unit::TestCase
181
262
  end
182
263
  end
183
264
  end
184
-
265
+
185
266
  end
186
-
267
+
187
268
  end
188
-
269
+
189
270
  end
@@ -0,0 +1,72 @@
1
+ require 'test_helper'
2
+
3
+ class GeoCerts::FraudScoreTest < Test::Unit::TestCase
4
+
5
+ context 'Order (using the API)' do
6
+
7
+ context 'query' do
8
+ should 'properly populate the data' do
9
+ exclusively_mocked_request :post, %r{/fraud_score.xml}, :response => GeoCerts::Responses::FraudScore::Query do
10
+ score = GeoCerts::FraudScore.query(Factory.attributes_for(:fraud_score))
11
+ assert_equal '1.2.3.4', score.ip
12
+ assert_equal 'Orlando', score.city
13
+ assert_equal 'FL', score.region
14
+ assert_equal '32801', score.postal_code
15
+ assert_equal 'US', score.country
16
+ assert_equal nil, score.domain
17
+ assert_equal nil, score.bin
18
+ assert_equal '', score.bin_name
19
+ assert_equal '', score.bin_phone
20
+ assert_equal nil, score.phone
21
+ assert_equal nil, score.forwarded_ip
22
+ assert_equal nil, score.email
23
+ assert_equal nil, score.username
24
+ assert_equal nil, score.password
25
+ assert_equal nil, score.shipping_address
26
+ assert_equal nil, score.shipping_city
27
+ assert_equal nil, score.shipping_region
28
+ assert_equal nil, score.shipping_postal_code
29
+ assert_equal nil, score.shipping_country
30
+ assert_equal nil, score.transaction_id
31
+ assert_equal nil, score.session_id
32
+ assert_equal nil, score.user_agent
33
+ assert_equal nil, score.accept_language
34
+ assert_equal true, score.country_match
35
+ assert_equal 'US', score.country_code
36
+ assert_equal false, score.high_risk_country
37
+ assert_equal 20.0, score.distance
38
+ assert_equal 'FL', score.ip_region
39
+ assert_equal 'Orlando', score.ip_city
40
+ assert_equal 28.5341, score.ip_latitude
41
+ assert_equal -81.1647, score.ip_longitude
42
+ assert_equal 'PowerOne Internet LLC', score.ip_isp
43
+ assert_equal 'CoLabs', score.ip_org
44
+ assert_equal false, score.anonymous_proxy
45
+ assert_equal 0.0, score.proxy_score
46
+ assert_equal false, score.transparent_proxy
47
+ assert_equal false, score.freemail
48
+ assert_equal false, score.carder_email
49
+ assert_equal false, score.high_risk_username
50
+ assert_equal false, score.high_risk_password
51
+ assert_equal false, score.bin_match
52
+ assert_equal '', score.bin_country
53
+ assert_equal 'NA', score.bin_name_match
54
+ assert_equal '', score.bin_name
55
+ assert_equal false, score.bin_phone_match
56
+ assert_equal '', score.bin_phone
57
+ assert_equal false, score.phone_in_billing_location
58
+ assert_equal false, score.ship_forward
59
+ assert_equal false, score.city_postal_match
60
+ assert_equal false, score.ship_city_postal_match
61
+ assert_equal 'This order is low risk', score.explanation
62
+ assert_equal 0.1, score.risk_score
63
+ assert_equal 975, score.queries_remaining
64
+ assert_equal '', score.error
65
+ end
66
+ end
67
+ end
68
+
69
+ end
70
+
71
+ end
72
+