constantcontact 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +7 -7
  2. data/README.md +7 -0
  3. data/constantcontact.gemspec +1 -1
  4. data/lib/constantcontact.rb +54 -54
  5. data/lib/constantcontact/api.rb +5 -3
  6. data/lib/constantcontact/auth/oauth2.rb +7 -4
  7. data/lib/constantcontact/auth/session_data_store.rb +52 -52
  8. data/lib/constantcontact/components/account/verified_email_address.rb +17 -17
  9. data/lib/constantcontact/components/activities/activity.rb +34 -34
  10. data/lib/constantcontact/components/activities/activity_error.rb +17 -17
  11. data/lib/constantcontact/components/activities/add_contacts.rb +109 -109
  12. data/lib/constantcontact/components/activities/add_contacts_import_data.rb +37 -37
  13. data/lib/constantcontact/components/activities/export_contacts.rb +19 -19
  14. data/lib/constantcontact/components/component.rb +13 -13
  15. data/lib/constantcontact/components/contacts/address.rb +18 -18
  16. data/lib/constantcontact/components/contacts/contact.rb +69 -69
  17. data/lib/constantcontact/components/contacts/contact_list.rb +17 -17
  18. data/lib/constantcontact/components/contacts/custom_field.rb +17 -17
  19. data/lib/constantcontact/components/contacts/email_address.rb +23 -23
  20. data/lib/constantcontact/components/contacts/note.rb +16 -16
  21. data/lib/constantcontact/components/email_marketing/campaign.rb +67 -67
  22. data/lib/constantcontact/components/email_marketing/click_through_details.rb +17 -17
  23. data/lib/constantcontact/components/email_marketing/message_footer.rb +20 -20
  24. data/lib/constantcontact/components/email_marketing/schedule.rb +18 -18
  25. data/lib/constantcontact/components/email_marketing/test_send.rb +32 -32
  26. data/lib/constantcontact/components/result_set.rb +15 -15
  27. data/lib/constantcontact/components/tracking/bounce_activity.rb +18 -18
  28. data/lib/constantcontact/components/tracking/click_activity.rb +17 -17
  29. data/lib/constantcontact/components/tracking/forward_activity.rb +17 -17
  30. data/lib/constantcontact/components/tracking/open_activity.rb +17 -17
  31. data/lib/constantcontact/components/tracking/send_activity.rb +17 -17
  32. data/lib/constantcontact/components/tracking/tracking_activity.rb +15 -15
  33. data/lib/constantcontact/components/tracking/tracking_summary.rb +17 -17
  34. data/lib/constantcontact/components/tracking/unsubscribe_activity.rb +18 -18
  35. data/lib/constantcontact/exceptions/ctct_exception.rb +15 -15
  36. data/lib/constantcontact/exceptions/illegal_argument_exception.rb +3 -3
  37. data/lib/constantcontact/exceptions/oauth2_exception.rb +3 -3
  38. data/lib/constantcontact/services/account_service.rb +19 -19
  39. data/lib/constantcontact/services/activity_service.rb +99 -99
  40. data/lib/constantcontact/services/base_service.rb +24 -24
  41. data/lib/constantcontact/services/campaign_schedule_service.rb +85 -85
  42. data/lib/constantcontact/services/campaign_tracking_service.rb +151 -151
  43. data/lib/constantcontact/services/contact_service.rb +106 -106
  44. data/lib/constantcontact/services/contact_tracking_service.rb +151 -151
  45. data/lib/constantcontact/services/email_marketing_service.rb +66 -66
  46. data/lib/constantcontact/services/list_service.rb +67 -67
  47. data/lib/constantcontact/util/config.rb +102 -96
  48. data/lib/constantcontact/util/helpers.rb +18 -18
  49. data/lib/constantcontact/version.rb +4 -4
  50. data/spec/constantcontact/api_spec.rb +223 -173
  51. data/spec/constantcontact/auth/oauth2_spec.rb +68 -4
  52. data/spec/constantcontact/components/contacts/address_spec.rb +7 -7
  53. data/spec/constantcontact/components/contacts/contact_list_spec.rb +7 -7
  54. data/spec/constantcontact/components/contacts/contact_spec.rb +7 -7
  55. data/spec/constantcontact/components/contacts/custom_field_spec.rb +7 -7
  56. data/spec/constantcontact/components/contacts/email_address_spec.rb +7 -7
  57. data/spec/constantcontact/services/contact_service_spec.rb +95 -95
  58. data/spec/constantcontact/services/list_service_spec.rb +48 -48
  59. data/spec/spec_helper.rb +1 -1
  60. metadata +55 -44
@@ -1,4 +1,4 @@
1
- #
1
+ #
2
2
  # oauth2_spec.rb
3
3
  # ConstantContact
4
4
  #
@@ -7,21 +7,85 @@
7
7
  require 'spec_helper'
8
8
 
9
9
  describe ConstantContact::Auth::OAuth2 do
10
+
11
+ before(:all) {
12
+ ConstantContact::Util::Config.configure do |config|
13
+ config[:auth].delete :api_key
14
+ config[:auth].delete :api_secret
15
+ config[:auth].delete :redirect_uri
16
+ end
17
+ }
18
+
10
19
  describe "#new" do
11
- it "fails without arguments" do
20
+ it "fails without arguments and no configuration" do
12
21
  lambda {
13
22
  ConstantContact::Auth::OAuth2.new
14
23
  }.should raise_error(ArgumentError)
15
24
  end
16
-
25
+
17
26
  it "takes one argument" do
18
27
  opts = {:api_key => 'api key', :api_secret => 'secret', :redirect_url => 'redirect url'}
19
28
  lambda {
20
29
  ConstantContact::Auth::OAuth2.new(opts)
21
- }.should_not raise_error(ArgumentError)
30
+ }.should_not raise_error
22
31
  end
23
32
  end
24
33
 
34
+ context "with middle-ware configuration" do
35
+ before(:all) do
36
+ ConstantContact::Util::Config.configure do |config|
37
+ config[:auth][:api_key] = "config_api_key"
38
+ config[:auth][:api_secret] = "config_api_secret"
39
+ config[:auth][:redirect_uri] = "config_redirect_uri"
40
+ end
41
+ end
42
+ let(:proc) { lambda { ConstantContact::Auth::OAuth2.new } }
43
+ it "without error" do
44
+ proc.should_not raise_error
45
+ end
46
+ let(:oauth) { proc.call }
47
+ it "has correct api_key" do
48
+ oauth.client_id.should == "config_api_key"
49
+ end
50
+ it "has correct api_secret" do
51
+ oauth.client_secret.should == "config_api_secret"
52
+ end
53
+ it "has correct redirect_uri" do
54
+ oauth.redirect_uri.should == "config_redirect_uri"
55
+ end
56
+ end
57
+
58
+ context "with middle-ware configuration and explicit opts" do
59
+ before(:all) do
60
+ ConstantContact::Util::Config.configure do |config|
61
+ config[:auth][:api_key] = "config_api_key"
62
+ config[:auth][:api_secret] = "config_api_secret"
63
+ config[:auth][:redirect_uri] = "config_redirect_uri"
64
+ end
65
+ end
66
+ let(:proc) { lambda { ConstantContact::Auth::OAuth2.new :api_key => 'explicit_api_key', :api_secret => 'explicit_api_secret', :redirect_url => 'explicit_redirect_uri' } }
67
+ it "without error" do
68
+ proc.should_not raise_error
69
+ end
70
+ let(:oauth) { proc.call }
71
+ it "has correct api_key" do
72
+ oauth.client_id.should == "explicit_api_key"
73
+ end
74
+ it "has correct api_secret" do
75
+ oauth.client_secret.should == "explicit_api_secret"
76
+ end
77
+ it "has correct redirect_uri" do
78
+ oauth.redirect_uri.should == "explicit_redirect_uri"
79
+ end
80
+ end
81
+
82
+ it "with explicit arguments and no configuration" do
83
+ lambda {
84
+ ConstantContact::Auth::OAuth2.new :api_key => "api_key", :api_secret => "api_secret", :redirect_uri => "redirect_uri"
85
+ }.should raise_error(ArgumentError)
86
+ end
87
+
88
+
25
89
  describe "#get_authorization_url" do
26
90
  before(:each) do
27
91
  opts = {:api_key => 'api key', :api_secret => 'secret', :redirect_url => 'redirect url'}
@@ -7,12 +7,12 @@
7
7
  require 'spec_helper'
8
8
 
9
9
  describe ConstantContact::Components::Address do
10
- describe "#from_list" do
11
- it "should return an address" do
12
- json = load_json('address.json')
13
- address = ConstantContact::Components::Address.create(JSON.parse(json))
10
+ describe "#from_list" do
11
+ it "should return an address" do
12
+ json = load_json('address.json')
13
+ address = ConstantContact::Components::Address.create(JSON.parse(json))
14
14
 
15
- address.line1.should eq('6 Main Street')
16
- end
17
- end
15
+ address.line1.should eq('6 Main Street')
16
+ end
17
+ end
18
18
  end
@@ -7,12 +7,12 @@
7
7
  require 'spec_helper'
8
8
 
9
9
  describe ConstantContact::Components::ContactList do
10
- describe "#from_list" do
11
- it "should return a list" do
12
- json = load_json('list.json')
13
- list = ConstantContact::Components::ContactList.create(JSON.parse(json))
10
+ describe "#from_list" do
11
+ it "should return a list" do
12
+ json = load_json('list.json')
13
+ list = ConstantContact::Components::ContactList.create(JSON.parse(json))
14
14
 
15
- list.name.should eq('Fake List')
16
- end
17
- end
15
+ list.name.should eq('Fake List')
16
+ end
17
+ end
18
18
  end
@@ -7,12 +7,12 @@
7
7
  require 'spec_helper'
8
8
 
9
9
  describe ConstantContact::Components::Contact do
10
- describe "#from_list" do
11
- it "should return a contact" do
12
- json = load_json('contact.json')
13
- contact = ConstantContact::Components::Contact.create(JSON.parse(json))
10
+ describe "#from_list" do
11
+ it "should return a contact" do
12
+ json = load_json('contact.json')
13
+ contact = ConstantContact::Components::Contact.create(JSON.parse(json))
14
14
 
15
- contact.last_name.should eq('Smith')
16
- end
17
- end
15
+ contact.last_name.should eq('Smith')
16
+ end
17
+ end
18
18
  end
@@ -7,12 +7,12 @@
7
7
  require 'spec_helper'
8
8
 
9
9
  describe ConstantContact::Components::CustomField do
10
- describe "#from_list" do
11
- it "should return a custom field" do
12
- json = '{"name":"Property", "value":"Private"}'
13
- field = ConstantContact::Components::CustomField.create(JSON.parse(json))
10
+ describe "#from_list" do
11
+ it "should return a custom field" do
12
+ json = '{"name":"Property", "value":"Private"}'
13
+ field = ConstantContact::Components::CustomField.create(JSON.parse(json))
14
14
 
15
- field.name.should eq('Property')
16
- end
17
- end
15
+ field.name.should eq('Property')
16
+ end
17
+ end
18
18
  end
@@ -7,12 +7,12 @@
7
7
  require 'spec_helper'
8
8
 
9
9
  describe ConstantContact::Components::EmailAddress do
10
- describe "#from_list" do
11
- it "should return an email address" do
12
- json = load_json('email_address.json')
13
- email = ConstantContact::Components::EmailAddress.create(JSON.parse(json))
10
+ describe "#from_list" do
11
+ it "should return an email address" do
12
+ json = load_json('email_address.json')
13
+ email = ConstantContact::Components::EmailAddress.create(JSON.parse(json))
14
14
 
15
- email.email_address.should eq('wm2q7rwtp77m@roving.com')
16
- end
17
- end
15
+ email.email_address.should eq('wm2q7rwtp77m@roving.com')
16
+ end
17
+ end
18
18
  end
@@ -7,99 +7,99 @@
7
7
  require 'spec_helper'
8
8
 
9
9
  describe ConstantContact::Services::ContactService do
10
- describe "#get_contacts" do
11
- it "returns an array of contacts" do
12
- json = load_json('contacts.json')
13
- net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
14
-
15
- response = RestClient::Response.create(json, net_http_resp, {})
16
- RestClient.stub(:get).and_return(response)
17
- contacts = ConstantContact::Services::ContactService.get_contacts('token')
18
- contact = contacts.results[0]
19
-
20
- contacts.should be_kind_of(ConstantContact::Components::ResultSet)
21
- contact.should be_kind_of(ConstantContact::Components::Contact)
22
- end
23
- end
24
-
25
- describe "#get_contact" do
26
- it "returns a contact" do
27
- json = load_json('contact.json')
28
- net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
29
-
30
- response = RestClient::Response.create(json, net_http_resp, {})
31
- RestClient.stub(:get).and_return(response)
32
- contact = ConstantContact::Services::ContactService.get_contact('token', 1)
33
-
34
- contact.should be_kind_of(ConstantContact::Components::Contact)
35
- end
36
- end
37
-
38
- describe "#add_contact" do
39
- it "adds a contact" do
40
- json = load_json('contact.json')
41
- net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
42
-
43
- response = RestClient::Response.create(json, net_http_resp, {})
44
- RestClient.stub(:post).and_return(response)
45
- contact = ConstantContact::Components::Contact.create(JSON.parse(json))
46
- added = ConstantContact::Services::ContactService.add_contact('token', contact)
47
-
48
- added.should respond_to(:status)
49
- added.status.should eq('REMOVED')
50
- end
51
- end
52
-
53
- describe "#delete_contact" do
54
- it "deletes a contact" do
55
- json = load_json('contact.json')
56
- net_http_resp = Net::HTTPResponse.new(1.0, 204, 'No Content')
57
-
58
- response = RestClient::Response.create('', net_http_resp, {})
59
- RestClient.stub(:delete).and_return(response)
60
- contact = ConstantContact::Components::Contact.create(JSON.parse(json))
61
- ConstantContact::Services::ContactService.delete_contact('token', contact).should be_true
62
- end
63
- end
64
-
65
- describe "#delete_contact_from_lists" do
66
- it "deletes a contact" do
67
- json = load_json('contact.json')
68
- net_http_resp = Net::HTTPResponse.new(1.0, 204, 'No Content')
69
-
70
- response = RestClient::Response.create('', net_http_resp, {})
71
- RestClient.stub(:delete).and_return(response)
72
- contact = ConstantContact::Components::Contact.create(JSON.parse(json))
73
- ConstantContact::Services::ContactService.delete_contact_from_lists('token', contact).should be_true
74
- end
75
- end
76
-
77
- describe "#delete_contact_from_list" do
78
- it "deletes a contact" do
79
- contact_json = load_json('contact.json')
80
- list_json = load_json('list.json')
81
- net_http_resp = Net::HTTPResponse.new(1.0, 204, 'No Content')
82
-
83
- response = RestClient::Response.create('', net_http_resp, {})
84
- RestClient.stub(:delete).and_return(response)
85
- contact = ConstantContact::Components::Contact.create(JSON.parse(contact_json))
86
- list = ConstantContact::Components::ContactList.create(JSON.parse(list_json))
87
- ConstantContact::Services::ContactService.delete_contact_from_list('token', contact, list).should be_true
88
- end
89
- end
90
-
91
- describe "#update_contact" do
92
- it "updates a contact" do
93
- json = load_json('contact.json')
94
- net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
95
-
96
- response = RestClient::Response.create(json, net_http_resp, {})
97
- RestClient.stub(:put).and_return(response)
98
- contact = ConstantContact::Components::Contact.create(JSON.parse(json))
99
- added = ConstantContact::Services::ContactService.update_contact('token', contact)
100
-
101
- added.should respond_to(:status)
102
- added.status.should eq('REMOVED')
103
- end
104
- end
10
+ describe "#get_contacts" do
11
+ it "returns an array of contacts" do
12
+ json = load_json('contacts.json')
13
+ net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
14
+
15
+ response = RestClient::Response.create(json, net_http_resp, {})
16
+ RestClient.stub(:get).and_return(response)
17
+ contacts = ConstantContact::Services::ContactService.get_contacts('token')
18
+ contact = contacts.results[0]
19
+
20
+ contacts.should be_kind_of(ConstantContact::Components::ResultSet)
21
+ contact.should be_kind_of(ConstantContact::Components::Contact)
22
+ end
23
+ end
24
+
25
+ describe "#get_contact" do
26
+ it "returns a contact" do
27
+ json = load_json('contact.json')
28
+ net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
29
+
30
+ response = RestClient::Response.create(json, net_http_resp, {})
31
+ RestClient.stub(:get).and_return(response)
32
+ contact = ConstantContact::Services::ContactService.get_contact('token', 1)
33
+
34
+ contact.should be_kind_of(ConstantContact::Components::Contact)
35
+ end
36
+ end
37
+
38
+ describe "#add_contact" do
39
+ it "adds a contact" do
40
+ json = load_json('contact.json')
41
+ net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
42
+
43
+ response = RestClient::Response.create(json, net_http_resp, {})
44
+ RestClient.stub(:post).and_return(response)
45
+ contact = ConstantContact::Components::Contact.create(JSON.parse(json))
46
+ added = ConstantContact::Services::ContactService.add_contact('token', contact)
47
+
48
+ added.should respond_to(:status)
49
+ added.status.should eq('REMOVED')
50
+ end
51
+ end
52
+
53
+ describe "#delete_contact" do
54
+ it "deletes a contact" do
55
+ json = load_json('contact.json')
56
+ net_http_resp = Net::HTTPResponse.new(1.0, 204, 'No Content')
57
+
58
+ response = RestClient::Response.create('', net_http_resp, {})
59
+ RestClient.stub(:delete).and_return(response)
60
+ contact = ConstantContact::Components::Contact.create(JSON.parse(json))
61
+ ConstantContact::Services::ContactService.delete_contact('token', contact).should be_true
62
+ end
63
+ end
64
+
65
+ describe "#delete_contact_from_lists" do
66
+ it "deletes a contact" do
67
+ json = load_json('contact.json')
68
+ net_http_resp = Net::HTTPResponse.new(1.0, 204, 'No Content')
69
+
70
+ response = RestClient::Response.create('', net_http_resp, {})
71
+ RestClient.stub(:delete).and_return(response)
72
+ contact = ConstantContact::Components::Contact.create(JSON.parse(json))
73
+ ConstantContact::Services::ContactService.delete_contact_from_lists('token', contact).should be_true
74
+ end
75
+ end
76
+
77
+ describe "#delete_contact_from_list" do
78
+ it "deletes a contact" do
79
+ contact_json = load_json('contact.json')
80
+ list_json = load_json('list.json')
81
+ net_http_resp = Net::HTTPResponse.new(1.0, 204, 'No Content')
82
+
83
+ response = RestClient::Response.create('', net_http_resp, {})
84
+ RestClient.stub(:delete).and_return(response)
85
+ contact = ConstantContact::Components::Contact.create(JSON.parse(contact_json))
86
+ list = ConstantContact::Components::ContactList.create(JSON.parse(list_json))
87
+ ConstantContact::Services::ContactService.delete_contact_from_list('token', contact, list).should be_true
88
+ end
89
+ end
90
+
91
+ describe "#update_contact" do
92
+ it "updates a contact" do
93
+ json = load_json('contact.json')
94
+ net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
95
+
96
+ response = RestClient::Response.create(json, net_http_resp, {})
97
+ RestClient.stub(:put).and_return(response)
98
+ contact = ConstantContact::Components::Contact.create(JSON.parse(json))
99
+ added = ConstantContact::Services::ContactService.update_contact('token', contact)
100
+
101
+ added.should respond_to(:status)
102
+ added.status.should eq('REMOVED')
103
+ end
104
+ end
105
105
  end
@@ -7,63 +7,63 @@
7
7
  require 'spec_helper'
8
8
 
9
9
  describe ConstantContact::Services::ListService do
10
- describe "#get_lists" do
11
- it "returns an array of lists" do
12
- json = load_json('lists.json')
13
- net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
10
+ describe "#get_lists" do
11
+ it "returns an array of lists" do
12
+ json = load_json('lists.json')
13
+ net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
14
14
 
15
- response = RestClient::Response.create(json, net_http_resp, {})
16
- RestClient.stub(:get).and_return(response)
17
- lists = ConstantContact::Services::ListService.get_lists('token')
18
- list = lists[0]
15
+ response = RestClient::Response.create(json, net_http_resp, {})
16
+ RestClient.stub(:get).and_return(response)
17
+ lists = ConstantContact::Services::ListService.get_lists('token')
18
+ list = lists[0]
19
19
 
20
- lists.should be_kind_of(Array)
21
- list.should be_kind_of(ConstantContact::Components::ContactList)
22
- end
23
- end
20
+ lists.should be_kind_of(Array)
21
+ list.should be_kind_of(ConstantContact::Components::ContactList)
22
+ end
23
+ end
24
24
 
25
- describe "#get_list" do
26
- it "returns a list" do
27
- json = load_json('list.json')
28
- net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
25
+ describe "#get_list" do
26
+ it "returns a list" do
27
+ json = load_json('list.json')
28
+ net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
29
29
 
30
- response = RestClient::Response.create(json, net_http_resp, {})
31
- RestClient.stub(:get).and_return(response)
32
- contact = ConstantContact::Services::ListService.get_list('token', 1)
30
+ response = RestClient::Response.create(json, net_http_resp, {})
31
+ RestClient.stub(:get).and_return(response)
32
+ contact = ConstantContact::Services::ListService.get_list('token', 1)
33
33
 
34
- contact.should be_kind_of(ConstantContact::Components::ContactList)
35
- end
36
- end
34
+ contact.should be_kind_of(ConstantContact::Components::ContactList)
35
+ end
36
+ end
37
37
 
38
- describe "#add_list" do
39
- it "adds a list" do
40
- json = load_json('list.json')
41
- net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
38
+ describe "#add_list" do
39
+ it "adds a list" do
40
+ json = load_json('list.json')
41
+ net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
42
42
 
43
- response = RestClient::Response.create(json, net_http_resp, {})
44
- RestClient.stub(:post).and_return(response)
45
- list = ConstantContact::Components::ContactList.create(JSON.parse(json))
46
- added = ConstantContact::Services::ListService.add_list('token', list)
43
+ response = RestClient::Response.create(json, net_http_resp, {})
44
+ RestClient.stub(:post).and_return(response)
45
+ list = ConstantContact::Components::ContactList.create(JSON.parse(json))
46
+ added = ConstantContact::Services::ListService.add_list('token', list)
47
47
 
48
- added.should respond_to(:status)
49
- added.status.should eq('ACTIVE')
50
- end
51
- end
48
+ added.should respond_to(:status)
49
+ added.status.should eq('ACTIVE')
50
+ end
51
+ end
52
52
 
53
- describe "#get_contacts_from_list" do
54
- it "returns an array of contacts" do
55
- json_list = load_json('list.json')
56
- json_contacts = load_json('contacts.json')
57
- net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
53
+ describe "#get_contacts_from_list" do
54
+ it "returns an array of contacts" do
55
+ json_list = load_json('list.json')
56
+ json_contacts = load_json('contacts.json')
57
+ net_http_resp = Net::HTTPResponse.new(1.0, 200, 'OK')
58
58
 
59
- response = RestClient::Response.create(json_contacts, net_http_resp, {})
60
- RestClient.stub(:get).and_return(response)
61
- list = ConstantContact::Components::ContactList.create(JSON.parse(json_list))
62
- contacts = ConstantContact::Services::ListService.get_contacts_from_list('token', list)
63
- contact = contacts.results[0]
59
+ response = RestClient::Response.create(json_contacts, net_http_resp, {})
60
+ RestClient.stub(:get).and_return(response)
61
+ list = ConstantContact::Components::ContactList.create(JSON.parse(json_list))
62
+ contacts = ConstantContact::Services::ListService.get_contacts_from_list('token', list)
63
+ contact = contacts.results[0]
64
64
 
65
- contacts.should be_kind_of(ConstantContact::Components::ResultSet)
66
- contact.should be_kind_of(ConstantContact::Components::Contact)
67
- end
68
- end
65
+ contacts.should be_kind_of(ConstantContact::Components::ResultSet)
66
+ contact.should be_kind_of(ConstantContact::Components::Contact)
67
+ end
68
+ end
69
69
  end