geocerts 0.0.25 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+