capsulecrm 0.0.1

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,26 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party?limit=2
6
+ body:
7
+ headers:
8
+ user-agent:
9
+ - CapsuleCRM ruby gem
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ content-type:
16
+ - "*/*"
17
+ server:
18
+ - Apache
19
+ date:
20
+ - Tue, 12 Apr 2011 12:31:20 GMT
21
+ content-length:
22
+ - "713"
23
+ set-cookie:
24
+ - "[SESSION-COOKIE]"
25
+ body: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><parties size="2"><person><id>9719416</id><contacts><email><id>17716757</id><emailAddress>at@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/person_avatar_70.png</pictureURL><title>Prof</title><firstName>Alan</firstName><lastName>Turing</lastName></person><person><id>10185304</id><contacts><email><id>18565226</id><emailAddress>cd@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/person_avatar_70.png</pictureURL><title>Dr</title><firstName>Charles</firstName><lastName>Darwin</lastName></person></parties>
26
+ http_version: "1.1"
@@ -0,0 +1,28 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party?start=3
6
+ body:
7
+ headers:
8
+ user-agent:
9
+ - CapsuleCRM ruby gem
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ content-type:
16
+ - "*/*"
17
+ server:
18
+ - Apache
19
+ date:
20
+ - Tue, 12 Apr 2011 12:31:21 GMT
21
+ content-length:
22
+ - "1833"
23
+ set-cookie:
24
+ - "[SESSION-COOKIE]"
25
+ body: |-
26
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?><parties size="5"><organisation><id>10185222</id><contacts/><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/org_avatar_70.png</pictureURL><name>foo.com</name></organisation><person><id>10185308</id><contacts><email><id>18565231</id><emailAddress>mc@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/person_avatar_70.png</pictureURL><title>Ms</title><firstName>Marie</firstName><lastName>Curie</lastName></person><person><id>10185261</id><contacts><address><id>18565115</id><type>Office</type><street>Deputy Prime Minister's Office&#xD;
27
+ 70 Whitehall</street><city>London</city><zip>SW1A 2AS</zip><country>United Kingdom</country></address><email><id>18565116</id><type>Work</type><emailAddress>dpm@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/person_avatar_70.png</pictureURL><title>Mr</title><firstName>Nick</firstName><lastName>Clegg</lastName><jobTitle>Deputy Prime Minister</jobTitle><organisationId>10185256</organisationId><organisationName>UK Government</organisationName></person><person><id>9851220</id><contacts><email><id>18565224</id><emailAddress>tbl@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/person_avatar_70.png</pictureURL><title>Prof</title><firstName>Tim</firstName><lastName>Berners-Lee</lastName></person><organisation><id>10185256</id><contacts><email><id>18583945</id><emailAddress>gov@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/org_avatar_70.png</pictureURL><name>UK Government</name></organisation></parties>
28
+ http_version: "1.1"
@@ -0,0 +1,76 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party/10185256
6
+ body:
7
+ headers:
8
+ user-agent:
9
+ - CapsuleCRM ruby gem
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ content-type:
16
+ - "*/*"
17
+ server:
18
+ - Apache
19
+ date:
20
+ - Tue, 12 Apr 2011 12:34:21 GMT
21
+ content-length:
22
+ - "333"
23
+ set-cookie:
24
+ - "[SESSION-COOKIE]"
25
+ body: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><organisation><id>10185256</id><contacts><email><id>18583945</id><emailAddress>gov@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/org_avatar_70.png</pictureURL><name>UK Government</name></organisation>
26
+ http_version: "1.1"
27
+ - !ruby/struct:VCR::HTTPInteraction
28
+ request: !ruby/struct:VCR::Request
29
+ method: :get
30
+ uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party/10185257
31
+ body:
32
+ headers:
33
+ user-agent:
34
+ - CapsuleCRM ruby gem
35
+ response: !ruby/struct:VCR::Response
36
+ status: !ruby/struct:VCR::ResponseStatus
37
+ code: 200
38
+ message: OK
39
+ headers:
40
+ content-type:
41
+ - "*/*"
42
+ server:
43
+ - Apache
44
+ date:
45
+ - Tue, 12 Apr 2011 12:34:22 GMT
46
+ content-length:
47
+ - "897"
48
+ set-cookie:
49
+ - "[SESSION-COOKIE]"
50
+ body: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><person><id>10185257</id><contacts><address><id>18565068</id><type>Office</type><street>10 Downing Street</street><city>London</city><zip>SW1A 2AA</zip><country>United Kingdom</country></address><email><id>18565066</id><type>Work</type><emailAddress>pm@example.com</emailAddress></email><phone><id>18566503</id><phoneNumber>12345 67890</phoneNumber></phone><website><id>18565067</id><webAddress>http://www.number10.gov.uk/</webAddress><webService>URL</webService><url>http://www.number10.gov.uk/</url></website></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/person_avatar_70.png</pictureURL><title>Mr</title><firstName>David</firstName><lastName>Cameron</lastName><jobTitle>Prime Minister</jobTitle><organisationId>10185256</organisationId><organisationName>UK Government</organisationName></person>
51
+ http_version: "1.1"
52
+ - !ruby/struct:VCR::HTTPInteraction
53
+ request: !ruby/struct:VCR::Request
54
+ method: :get
55
+ uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party/10185256
56
+ body:
57
+ headers:
58
+ user-agent:
59
+ - CapsuleCRM ruby gem
60
+ response: !ruby/struct:VCR::Response
61
+ status: !ruby/struct:VCR::ResponseStatus
62
+ code: 200
63
+ message: OK
64
+ headers:
65
+ content-type:
66
+ - "*/*"
67
+ server:
68
+ - Apache
69
+ date:
70
+ - Tue, 12 Apr 2011 12:34:24 GMT
71
+ content-length:
72
+ - "333"
73
+ set-cookie:
74
+ - "[SESSION-COOKIE]"
75
+ body: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><organisation><id>10185256</id><contacts><email><id>18583945</id><emailAddress>gov@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/org_avatar_70.png</pictureURL><name>UK Government</name></organisation>
76
+ http_version: "1.1"
@@ -0,0 +1,85 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party/10185261
6
+ body:
7
+ headers:
8
+ user-agent:
9
+ - CapsuleCRM ruby gem
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ content-type:
16
+ - "*/*"
17
+ server:
18
+ - Apache
19
+ date:
20
+ - Tue, 12 Apr 2011 12:29:03 GMT
21
+ content-length:
22
+ - "709"
23
+ set-cookie:
24
+ - "[SESSION-COOKIE]"
25
+ body: |-
26
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?><person><id>10185261</id><contacts><address><id>18565115</id><type>Office</type><street>Deputy Prime Minister's Office&#xD;
27
+ 70 Whitehall</street><city>London</city><zip>SW1A 2AS</zip><country>United Kingdom</country></address><email><id>18565116</id><type>Work</type><emailAddress>dpm@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/person_avatar_70.png</pictureURL><title>Mr</title><firstName>kciN</firstName><lastName>Clegg</lastName><jobTitle>Deputy Prime Minister</jobTitle><organisationId>10185256</organisationId><organisationName>UK Government</organisationName></person>
28
+ http_version: "1.1"
29
+ - !ruby/struct:VCR::HTTPInteraction
30
+ request: !ruby/struct:VCR::Request
31
+ method: :put
32
+ uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/person/10185261
33
+ body: |
34
+ <?xml version="1.0" encoding="UTF-8"?>
35
+ <person>
36
+ <firstName>Nick</firstName>
37
+ </person>
38
+
39
+ headers:
40
+ content-type:
41
+ - text/xml
42
+ response: !ruby/struct:VCR::Response
43
+ status: !ruby/struct:VCR::ResponseStatus
44
+ code: 200
45
+ message: OK
46
+ headers:
47
+ content-type:
48
+ - text/plain; charset=UTF-8
49
+ server:
50
+ - Apache
51
+ date:
52
+ - Tue, 12 Apr 2011 12:29:05 GMT
53
+ content-length:
54
+ - "0"
55
+ set-cookie:
56
+ - "[SESSION-COOKIE]"
57
+ body:
58
+ http_version: "1.1"
59
+ - !ruby/struct:VCR::HTTPInteraction
60
+ request: !ruby/struct:VCR::Request
61
+ method: :get
62
+ uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party/10185261
63
+ body:
64
+ headers:
65
+ user-agent:
66
+ - CapsuleCRM ruby gem
67
+ response: !ruby/struct:VCR::Response
68
+ status: !ruby/struct:VCR::ResponseStatus
69
+ code: 200
70
+ message: OK
71
+ headers:
72
+ content-type:
73
+ - "*/*"
74
+ server:
75
+ - Apache
76
+ date:
77
+ - Tue, 12 Apr 2011 12:29:06 GMT
78
+ content-length:
79
+ - "709"
80
+ set-cookie:
81
+ - "[SESSION-COOKIE]"
82
+ body: |-
83
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?><person><id>10185261</id><contacts><address><id>18565115</id><type>Office</type><street>Deputy Prime Minister's Office&#xD;
84
+ 70 Whitehall</street><city>London</city><zip>SW1A 2AS</zip><country>United Kingdom</country></address><email><id>18565116</id><type>Work</type><emailAddress>dpm@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/person_avatar_70.png</pictureURL><title>Mr</title><firstName>Nick</firstName><lastName>Clegg</lastName><jobTitle>Deputy Prime Minister</jobTitle><organisationId>10185256</organisationId><organisationName>UK Government</organisationName></person>
85
+ http_version: "1.1"
@@ -0,0 +1,28 @@
1
+ ---
2
+ - !ruby/struct:VCR::HTTPInteraction
3
+ request: !ruby/struct:VCR::Request
4
+ method: :get
5
+ uri: https://[API-TOKEN]:x@[ACCOUNT-NAME].capsulecrm.com:443/api/party/10185261
6
+ body:
7
+ headers:
8
+ user-agent:
9
+ - CapsuleCRM ruby gem
10
+ response: !ruby/struct:VCR::Response
11
+ status: !ruby/struct:VCR::ResponseStatus
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ content-type:
16
+ - "*/*"
17
+ server:
18
+ - Apache
19
+ date:
20
+ - Tue, 12 Apr 2011 12:29:07 GMT
21
+ content-length:
22
+ - "709"
23
+ set-cookie:
24
+ - "[SESSION-COOKIE]"
25
+ body: |-
26
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?><person><id>10185261</id><contacts><address><id>18565115</id><type>Office</type><street>Deputy Prime Minister's Office&#xD;
27
+ 70 Whitehall</street><city>London</city><zip>SW1A 2AS</zip><country>United Kingdom</country></address><email><id>18565116</id><type>Work</type><emailAddress>dpm@example.com</emailAddress></email></contacts><pictureURL>https://d365sd3k9yw37.cloudfront.net/a/543325/theme/default/images/person_avatar_70.png</pictureURL><title>Mr</title><firstName>Nick</firstName><lastName>Clegg</lastName><jobTitle>Deputy Prime Minister</jobTitle><organisationId>10185256</organisationId><organisationName>UK Government</organisationName></person>
28
+ http_version: "1.1"
@@ -0,0 +1,48 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+
3
+ class PersonDotFindAllTest < Test::Unit::TestCase
4
+
5
+ # nodoc
6
+ def setup
7
+ VCR.use_cassette 'person.find_all' do
8
+ @results = CapsuleCRM::Person.find :all
9
+ end
10
+ end
11
+
12
+
13
+ # nodoc
14
+ def test_return_value_type
15
+ assert_equal CapsuleCRM::Collection, @results.class
16
+ end
17
+
18
+
19
+ # nodoc
20
+ def test_return_value_size
21
+ assert_equal 6, @results.size
22
+ end
23
+
24
+
25
+ # nodoc
26
+ def test_offset_parameter
27
+ VCR.use_cassette 'person.find_all_with_offset' do
28
+ @results = CapsuleCRM::Person.find :all, :offset => 3
29
+ assert_requested :get, /capsulecrm.*start=3/
30
+ end
31
+ end
32
+
33
+
34
+ # nodoc
35
+ def test_limit_parameter
36
+ VCR.use_cassette 'person.find_all_with_limit' do
37
+ @results = CapsuleCRM::Person.find(:all, :limit => 2)
38
+ assert_requested :get, /capsulecrm.*limit=2/
39
+ end
40
+ end
41
+
42
+
43
+ # nodoc
44
+ def teardown
45
+ WebMock.reset!
46
+ end
47
+
48
+ end
@@ -0,0 +1,57 @@
1
+ require 'test_helper'
2
+ class PersonDotFindByIdTest < Test::Unit::TestCase
3
+
4
+ def setup
5
+ VCR.use_cassette('person.find_by_id') do
6
+ @organisation = CapsuleCRM::Organisation.find organisations(:gov)
7
+ @person = CapsuleCRM::Person.find people(:pm)
8
+ @person.organisation # to record the request
9
+ end
10
+ end
11
+
12
+
13
+ # nodoc
14
+ def test_attributes
15
+ assert_equal @person.title, 'Mr'
16
+ assert_equal @person.first_name, 'David'
17
+ assert_equal @person.last_name, 'Cameron'
18
+ assert_equal @person.job_title, 'Prime Minister'
19
+ end
20
+
21
+
22
+ # nodoc
23
+ def test_organisation
24
+ assert_equal @organisation, @person.organisation
25
+ end
26
+
27
+
28
+ # nodoc
29
+ def test_addresses
30
+ assert_equal CapsuleCRM::ChildCollection, @person.addresses.class
31
+ assert_equal 1, @person.addresses.size
32
+ @person.addresses.each { |address| assert address.is_a?(CapsuleCRM::Address) }
33
+ end
34
+
35
+
36
+ # nodoc
37
+ def test_emails
38
+ assert_equal CapsuleCRM::ChildCollection, @person.emails.class
39
+ assert_equal 1, @person.emails.size
40
+ @person.emails.each { |email| assert email.is_a?(CapsuleCRM::Email) }
41
+ end
42
+
43
+
44
+ # nodoc
45
+ def test_phone_numbers
46
+ assert_equal CapsuleCRM::ChildCollection, @person.phone_numbers.class
47
+ assert_equal 1, @person.phone_numbers.size
48
+ @person.phone_numbers.each { |pn| assert pn.is_a?(CapsuleCRM::Phone) }
49
+ end
50
+
51
+
52
+ def teardown
53
+ WebMock.reset!
54
+ end
55
+
56
+
57
+ end
@@ -0,0 +1,51 @@
1
+ require 'rubygems'
2
+ require 'ruby-debug'
3
+ require 'test/unit'
4
+ require 'webmock/test_unit'
5
+ require 'vcr'
6
+
7
+
8
+ # .gemspec does this usually
9
+ $: << File.expand_path('../../lib', __FILE__)
10
+ require 'capsulecrm'
11
+
12
+ # initialization - credentials only matter for VCR's first run
13
+ CapsuleCRM.account_name = ENV['CAPSULE_ACCOUNT'] || 'foo'
14
+ CapsuleCRM.api_token = ENV['CAPSULE_TOKEN'] || 'bar'
15
+ CapsuleCRM.initialize!
16
+
17
+
18
+ # nodoc
19
+ VCR.config do |c|
20
+ c.cassette_library_dir = 'test/fixtures/responses'
21
+ c.stub_with :webmock
22
+ c.filter_sensitive_data('[API-TOKEN]') { CapsuleCRM.api_token }
23
+ c.filter_sensitive_data('[ACCOUNT-NAME]') { CapsuleCRM.account_name }
24
+ c.filter_sensitive_data('[SESSION-COOKIE]') do |interaction|
25
+ interaction.response.headers['set-cookie'].first
26
+ end
27
+ end
28
+
29
+
30
+ # nodoc
31
+ class Test::Unit::TestCase
32
+
33
+ # nodoc
34
+ def organisations(key)
35
+ ids = {
36
+ :gov => 10185256
37
+ }
38
+ ids[key]
39
+ end
40
+
41
+
42
+ # nodoc
43
+ def people(key)
44
+ ids = {
45
+ :dpm => 10185261,
46
+ :pm => 10185257
47
+ }
48
+ ids[key]
49
+ end
50
+
51
+ end
@@ -0,0 +1,46 @@
1
+ require 'test_helper'
2
+ class UpdatePersonTest < Test::Unit::TestCase
3
+
4
+ # nodoc
5
+ def setup
6
+ end
7
+
8
+
9
+ # nodoc
10
+ def test_with_changes
11
+ VCR.use_cassette('update_person') do
12
+
13
+ # get the person, cache the first name
14
+ person = CapsuleCRM::Person.find people(:dpm)
15
+ first_name = person.first_name
16
+ new_name = first_name.reverse
17
+
18
+ # change the name and update
19
+ person.first_name = new_name
20
+ assert person.save
21
+
22
+ # reload and check updates were saved
23
+ person = CapsuleCRM::Person.find person.id
24
+ assert_equal new_name, person.first_name
25
+
26
+ end
27
+ end
28
+
29
+
30
+ # nodoc
31
+ def test_without_changes
32
+ VCR.use_cassette('update_person_without_changes') do
33
+ person = CapsuleCRM::Person.find people(:dpm)
34
+ assert person.save
35
+ assert_requested :put, /capsulecrm/, :times => 0
36
+ end
37
+ end
38
+
39
+
40
+ # nodoc
41
+ def teardown
42
+ WebMock.reset!
43
+ end
44
+
45
+
46
+ end