responsys-api 0.0.3 → 0.0.4

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.
Files changed (64) hide show
  1. checksums.yaml +8 -8
  2. data/.gitignore +1 -0
  3. data/Gemfile +1 -1
  4. data/README.md +82 -10
  5. data/lib/responsys/api/all.rb +17 -0
  6. data/lib/responsys/api/campaign.rb +26 -0
  7. data/lib/responsys/api/client.rb +70 -0
  8. data/lib/responsys/api/folder.rb +25 -0
  9. data/lib/responsys/api/list.rb +39 -0
  10. data/lib/responsys/api/object/all.rb +11 -0
  11. data/lib/responsys/api/object/email_format.rb +23 -0
  12. data/lib/responsys/api/object/field.rb +20 -0
  13. data/lib/responsys/api/object/field_type.rb +23 -0
  14. data/lib/responsys/api/object/interact_object.rb +18 -0
  15. data/lib/responsys/api/object/list_merge_rule.rb +41 -0
  16. data/lib/responsys/api/object/optional_data.rb +23 -0
  17. data/lib/responsys/api/object/query_column.rb +23 -0
  18. data/lib/responsys/api/object/recipient.rb +30 -0
  19. data/lib/responsys/api/object/recipient_data.rb +21 -0
  20. data/lib/responsys/api/object/record.rb +19 -0
  21. data/lib/responsys/api/object/record_data.rb +31 -0
  22. data/lib/responsys/api/session.rb +30 -0
  23. data/lib/responsys/api/table.rb +49 -0
  24. data/lib/responsys/configuration.rb +3 -3
  25. data/lib/responsys/exceptions/all.rb +1 -0
  26. data/lib/responsys/exceptions/parameter_exception.rb +7 -0
  27. data/lib/responsys/helper.rb +78 -2
  28. data/lib/responsys/i18n/en.yml +20 -0
  29. data/lib/responsys/member.rb +80 -0
  30. data/lib/responsys_api.rb +11 -4
  31. data/responsys-api.gemspec +12 -9
  32. data/spec/api/campaign_spec.rb +27 -0
  33. data/spec/api/client_spec.rb +107 -0
  34. data/spec/api/list_spec.rb +71 -0
  35. data/spec/api/object/recipient_data_spec.rb +43 -0
  36. data/spec/api/object/recipient_spec.rb +68 -0
  37. data/spec/api/object/record_data_spec.rb +28 -0
  38. data/spec/api/table_spec.rb +111 -0
  39. data/spec/fixtures/vcr_cassettes/api/campaign/login.yml +940 -0
  40. data/spec/fixtures/vcr_cassettes/api/client/expired_session.yml +1030 -0
  41. data/spec/fixtures/vcr_cassettes/api/list/login.yml +982 -0
  42. data/spec/fixtures/vcr_cassettes/api/list/merge.yml +134 -0
  43. data/spec/fixtures/vcr_cassettes/api/list/retrieve.yml +46 -0
  44. data/spec/fixtures/vcr_cassettes/api/list/retrieve_single.yml +133 -0
  45. data/spec/fixtures/vcr_cassettes/api/list/retrieve_single_single.yml +45 -0
  46. data/spec/fixtures/vcr_cassettes/api/profile_extension/login.yml +982 -0
  47. data/spec/fixtures/vcr_cassettes/api/profile_extension/merge_profile_extension_records.yml +46 -0
  48. data/spec/fixtures/vcr_cassettes/api/profile_extension/retrieve_profile_extension_records.yml +45 -0
  49. data/spec/fixtures/vcr_cassettes/api/table/create.yml +45 -0
  50. data/spec/fixtures/vcr_cassettes/api/table/create_with_pk.yml +45 -0
  51. data/spec/fixtures/vcr_cassettes/api/table/delete.yml +45 -0
  52. data/spec/fixtures/vcr_cassettes/api/table/delete_with_pk.yml +45 -0
  53. data/spec/fixtures/vcr_cassettes/member/present1.yml +982 -0
  54. data/spec/fixtures/vcr_cassettes/member/present2.yml +45 -0
  55. data/spec/fixtures/vcr_cassettes/member/present3.yml +48 -0
  56. data/spec/fixtures/vcr_cassettes/member/present4.yml +48 -0
  57. data/spec/fixtures/vcr_cassettes/member/present5.yml +48 -0
  58. data/spec/fixtures/vcr_cassettes/member/retrieve_profile_extension.yml +87 -0
  59. data/spec/member_spec.rb +136 -0
  60. data/spec/spec_helper.rb +28 -2
  61. metadata +136 -19
  62. data/lib/responsys/responsys_api.rb +0 -41
  63. data/lib/savon/savon_api.rb +0 -22
  64. data/spec/responsys_api_spec.rb +0 -4
@@ -0,0 +1,45 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://wsxxxx.responsys.net/webservices/services/ResponsysWSService
6
+ body:
7
+ encoding: US-ASCII
8
+ string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
9
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:ws.rsys.com"
10
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><sessionHeader><sessionId>bBvxPCXScxL40VhQx6JFG6ziO9</sessionId></sessionHeader></env:Header><env:Body><tns:retrieveListMembers><tns:list><tns:folderName>another_test_folder</tns:folderName><tns:objectName>test_list</tns:objectName></tns:list><tns:queryColumn>RIID</tns:queryColumn><tns:fieldList>EMAIL_PERMISSION_STATUS_</tns:fieldList><tns:idsToRetrieve>1225</tns:idsToRetrieve></tns:retrieveListMembers></env:Body></env:Envelope>
11
+ headers:
12
+ Cookie:
13
+ - JSESSIONID=EF4D2D3574EA896D10416D6FF9DE184E.ws01-ri5
14
+ Soapaction:
15
+ - ! '"retrieveListMembers"'
16
+ Content-Type:
17
+ - text/xml;charset=UTF-8
18
+ Content-Length:
19
+ - '677'
20
+ Accept:
21
+ - ! '*/*'
22
+ User-Agent:
23
+ - Ruby
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ Content-Length:
30
+ - '383'
31
+ Content-Type:
32
+ - text/xml; charset=UTF-8
33
+ Date:
34
+ - Fri, 29 Aug 2014 22:31:03 GMT
35
+ Server:
36
+ - Apache
37
+ Set-Cookie:
38
+ - BIGipServerDC2-APIGEE-I5-9051-SSL=3617446922.23331.0000; path=/
39
+ body:
40
+ encoding: US-ASCII
41
+ string: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><retrieveListMembersResponse
42
+ xmlns="urn:ws.rsys.com"><result><recordData><fieldNames>EMAIL_PERMISSION_STATUS_</fieldNames><records><fieldValues>I</fieldValues></records></recordData></result></retrieveListMembersResponse></soapenv:Body></soapenv:Envelope>
43
+ http_version:
44
+ recorded_at: Fri, 29 Aug 2014 22:31:03 GMT
45
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://wsxxxx.responsys.net/webservices/services/ResponsysWSService
6
+ body:
7
+ encoding: US-ASCII
8
+ string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
9
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:ws.rsys.com"
10
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><sessionHeader><sessionId>bBvxPCXScxL40VhQx6JFG6ziO9</sessionId></sessionHeader></env:Header><env:Body><tns:retrieveListMembers><tns:list><tns:folderName>another_test_folder</tns:folderName><tns:objectName>test_list</tns:objectName></tns:list><tns:queryColumn>EMAIL_ADDRESS</tns:queryColumn><tns:fieldList>EMAIL_PERMISSION_STATUS_</tns:fieldList><tns:idsToRetrieve>thisemailis@notpresent.com</tns:idsToRetrieve></tns:retrieveListMembers></env:Body></env:Envelope>
11
+ headers:
12
+ Cookie:
13
+ - JSESSIONID=EF4D2D3574EA896D10416D6FF9DE184E.ws01-ri5
14
+ Soapaction:
15
+ - ! '"retrieveListMembers"'
16
+ Content-Type:
17
+ - text/xml;charset=UTF-8
18
+ Content-Length:
19
+ - '708'
20
+ Accept:
21
+ - ! '*/*'
22
+ User-Agent:
23
+ - Ruby
24
+ response:
25
+ status:
26
+ code: 500
27
+ message: Internal Server Error
28
+ headers:
29
+ Connection:
30
+ - close
31
+ Content-Length:
32
+ - '462'
33
+ Content-Type:
34
+ - text/xml;charset=UTF-8
35
+ Date:
36
+ - Fri, 29 Aug 2014 22:31:03 GMT
37
+ Server:
38
+ - Apache
39
+ Set-Cookie:
40
+ - BIGipServerDC2-APIGEE-I5-9051-SSL=3617446922.23331.0000; path=/
41
+ body:
42
+ encoding: US-ASCII
43
+ string: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>ListFault</faultstring><detail><ListFault
44
+ xmlns="urn:fault.ws.rsys.com"><exceptionCode>RECORD_NOT_FOUND</exceptionCode><exceptionMessage>No
45
+ records found in the list for given ids</exceptionMessage></ListFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
46
+ http_version:
47
+ recorded_at: Fri, 29 Aug 2014 22:31:03 GMT
48
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://wsxxxx.responsys.net/webservices/services/ResponsysWSService
6
+ body:
7
+ encoding: US-ASCII
8
+ string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
9
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:ws.rsys.com"
10
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><sessionHeader><sessionId>bBvxPCXScxL40VhQx6JFG6ziO9</sessionId></sessionHeader></env:Header><env:Body><tns:retrieveListMembers><tns:list><tns:folderName>another_test_folder</tns:folderName><tns:objectName>test_list</tns:objectName></tns:list><tns:queryColumn>RIID</tns:queryColumn><tns:fieldList>EMAIL_PERMISSION_STATUS_</tns:fieldList><tns:idsToRetrieve>000001</tns:idsToRetrieve></tns:retrieveListMembers></env:Body></env:Envelope>
11
+ headers:
12
+ Cookie:
13
+ - JSESSIONID=EF4D2D3574EA896D10416D6FF9DE184E.ws01-ri5
14
+ Soapaction:
15
+ - ! '"retrieveListMembers"'
16
+ Content-Type:
17
+ - text/xml;charset=UTF-8
18
+ Content-Length:
19
+ - '679'
20
+ Accept:
21
+ - ! '*/*'
22
+ User-Agent:
23
+ - Ruby
24
+ response:
25
+ status:
26
+ code: 500
27
+ message: Internal Server Error
28
+ headers:
29
+ Connection:
30
+ - close
31
+ Content-Length:
32
+ - '462'
33
+ Content-Type:
34
+ - text/xml;charset=UTF-8
35
+ Date:
36
+ - Fri, 29 Aug 2014 22:31:04 GMT
37
+ Server:
38
+ - Apache
39
+ Set-Cookie:
40
+ - BIGipServerDC2-APIGEE-I5-9051-SSL=3617446922.23331.0000; path=/
41
+ body:
42
+ encoding: US-ASCII
43
+ string: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>ListFault</faultstring><detail><ListFault
44
+ xmlns="urn:fault.ws.rsys.com"><exceptionCode>RECORD_NOT_FOUND</exceptionCode><exceptionMessage>No
45
+ records found in the list for given ids</exceptionMessage></ListFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
46
+ http_version:
47
+ recorded_at: Fri, 29 Aug 2014 22:31:04 GMT
48
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://wsxxxx.responsys.net/webservices/services/ResponsysWSService
6
+ body:
7
+ encoding: US-ASCII
8
+ string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
9
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:ws.rsys.com"
10
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><sessionHeader><sessionId>bBvxPCXScxL40VhQx6JFG6ziO9</sessionId></sessionHeader></env:Header><env:Body><tns:retrieveListMembers><tns:list><tns:folderName>another_test_folder</tns:folderName><tns:objectName>test_list</tns:objectName></tns:list><tns:queryColumn>RIID</tns:queryColumn><tns:fieldList>EMAIL_PERMISSION_STATUS_</tns:fieldList><tns:idsToRetrieve>000001</tns:idsToRetrieve></tns:retrieveListMembers></env:Body></env:Envelope>
11
+ headers:
12
+ Cookie:
13
+ - JSESSIONID=EF4D2D3574EA896D10416D6FF9DE184E.ws01-ri5
14
+ Soapaction:
15
+ - ! '"retrieveListMembers"'
16
+ Content-Type:
17
+ - text/xml;charset=UTF-8
18
+ Content-Length:
19
+ - '679'
20
+ Accept:
21
+ - ! '*/*'
22
+ User-Agent:
23
+ - Ruby
24
+ response:
25
+ status:
26
+ code: 500
27
+ message: Internal Server Error
28
+ headers:
29
+ Connection:
30
+ - close
31
+ Content-Length:
32
+ - '462'
33
+ Content-Type:
34
+ - text/xml;charset=UTF-8
35
+ Date:
36
+ - Fri, 29 Aug 2014 22:31:04 GMT
37
+ Server:
38
+ - Apache
39
+ Set-Cookie:
40
+ - BIGipServerDC2-APIGEE-I5-9051-SSL=3617446922.23331.0000; path=/
41
+ body:
42
+ encoding: US-ASCII
43
+ string: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>ListFault</faultstring><detail><ListFault
44
+ xmlns="urn:fault.ws.rsys.com"><exceptionCode>RECORD_NOT_FOUND</exceptionCode><exceptionMessage>No
45
+ records found in the list for given ids</exceptionMessage></ListFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
46
+ http_version:
47
+ recorded_at: Fri, 29 Aug 2014 22:31:04 GMT
48
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,87 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://wsxxxx.responsys.net/webservices/services/ResponsysWSService
6
+ body:
7
+ encoding: US-ASCII
8
+ string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
9
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:ws.rsys.com"
10
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><sessionHeader><sessionId>bBvxPCXScxL40VhQx6JFG6ziO9</sessionId></sessionHeader></env:Header><env:Body><tns:retrieveProfileExtensionRecords><tns:profileExtension><tns:folderName>demo_folder2</tns:folderName><tns:objectName>customers_extension</tns:objectName></tns:profileExtension><tns:queryColumn>RIID</tns:queryColumn><tns:fieldList>RIID_</tns:fieldList><tns:idsToRetrieve>1125</tns:idsToRetrieve></tns:retrieveProfileExtensionRecords></env:Body></env:Envelope>
11
+ headers:
12
+ Cookie:
13
+ - JSESSIONID=EF4D2D3574EA896D10416D6FF9DE184E.ws01-ri5
14
+ Soapaction:
15
+ - ! '"retrieveProfileExtensionRecords"'
16
+ Content-Type:
17
+ - text/xml;charset=UTF-8
18
+ Content-Length:
19
+ - '709'
20
+ Accept:
21
+ - ! '*/*'
22
+ User-Agent:
23
+ - Ruby
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ Content-Length:
30
+ - '391'
31
+ Content-Type:
32
+ - text/xml; charset=UTF-8
33
+ Date:
34
+ - Fri, 29 Aug 2014 22:31:04 GMT
35
+ Server:
36
+ - Apache
37
+ Set-Cookie:
38
+ - BIGipServerDC2-APIGEE-I5-9051-SSL=3617446922.23331.0000; path=/
39
+ body:
40
+ encoding: US-ASCII
41
+ string: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><retrieveProfileExtensionRecordsResponse
42
+ xmlns="urn:ws.rsys.com"><result><recordData><fieldNames>RIID_</fieldNames><records><fieldValues>1125</fieldValues></records></recordData></result></retrieveProfileExtensionRecordsResponse></soapenv:Body></soapenv:Envelope>
43
+ http_version:
44
+ recorded_at: Fri, 29 Aug 2014 22:31:04 GMT
45
+ - request:
46
+ method: post
47
+ uri: https://wsxxxx.responsys.net/webservices/services/ResponsysWSService
48
+ body:
49
+ encoding: US-ASCII
50
+ string: <?xml version="1.0" encoding="UTF-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
51
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tns="urn:ws.rsys.com"
52
+ xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><sessionHeader><sessionId>bBvxPCXScxL40VhQx6JFG6ziO9</sessionId></sessionHeader></env:Header><env:Body><tns:retrieveProfileExtensionRecords><tns:profileExtension><tns:folderName>demo_folder2</tns:folderName><tns:objectName>customers_extension</tns:objectName></tns:profileExtension><tns:queryColumn>RIID</tns:queryColumn><tns:fieldList>RIID_</tns:fieldList><tns:fieldList>EMAIL_ADDRESS</tns:fieldList><tns:idsToRetrieve>1125</tns:idsToRetrieve></tns:retrieveProfileExtensionRecords></env:Body></env:Envelope>
53
+ headers:
54
+ Cookie:
55
+ - JSESSIONID=EF4D2D3574EA896D10416D6FF9DE184E.ws01-ri5
56
+ Soapaction:
57
+ - ! '"retrieveProfileExtensionRecords"'
58
+ Content-Type:
59
+ - text/xml;charset=UTF-8
60
+ Content-Length:
61
+ - '753'
62
+ Accept:
63
+ - ! '*/*'
64
+ User-Agent:
65
+ - Ruby
66
+ response:
67
+ status:
68
+ code: 200
69
+ message: OK
70
+ headers:
71
+ Content-Length:
72
+ - '471'
73
+ Content-Type:
74
+ - text/xml; charset=UTF-8
75
+ Date:
76
+ - Fri, 29 Aug 2014 22:31:04 GMT
77
+ Server:
78
+ - Apache
79
+ Set-Cookie:
80
+ - BIGipServerDC2-APIGEE-I5-9051-SSL=3617446922.23331.0000; path=/
81
+ body:
82
+ encoding: US-ASCII
83
+ string: <?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><retrieveProfileExtensionRecordsResponse
84
+ xmlns="urn:ws.rsys.com"><result><recordData><fieldNames>RIID_</fieldNames><fieldNames>EMAIL_ADDRESS</fieldNames><records><fieldValues>1125</fieldValues><fieldValues>user@email.com</fieldValues></records></recordData></result></retrieveProfileExtensionRecordsResponse></soapenv:Body></soapenv:Envelope>
85
+ http_version:
86
+ recorded_at: Fri, 29 Aug 2014 22:31:04 GMT
87
+ recorded_with: VCR 2.5.0
@@ -0,0 +1,136 @@
1
+ require "spec_helper.rb"
2
+ require "responsys/api/client"
3
+
4
+ describe Responsys::Member do
5
+
6
+ before(:all) do
7
+ @email = "user@email.com"
8
+ end
9
+
10
+ context "New member" do
11
+
12
+ xit "should call mergeListMembers" do
13
+ end
14
+
15
+ end
16
+
17
+ context "Subscribing" do
18
+
19
+ before(:each) do
20
+ @connection = double "connection"
21
+
22
+ allow(Responsys::Api::Client).to receive(:instance).and_return(@connection)
23
+
24
+ @member = Responsys::Member.new(@email)
25
+ @list = Responsys::Api::Object::InteractObject.new("list_folder","list_object_name")
26
+ @query_column = Responsys::Api::Object::QueryColumn.new("EMAIL_ADDRESS")
27
+ end
28
+
29
+ it "should check the user is present in the list" do
30
+ expect(@member).to receive(:present_in_list?).with(@list)
31
+
32
+ @member.subscribe(@list)
33
+ end
34
+
35
+ it "should check the user has subscribed" do
36
+ response_expected = { status: "ok", data: [{ EMAIL_PERMISSION_STATUS_: "I" }] }
37
+
38
+ allow(@connection).to receive(:retrieve_list_members).with(@list, kind_of(Responsys::Api::Object::QueryColumn), %w(EMAIL_PERMISSION_STATUS_), %W(#{@member.email})).and_return(response_expected)
39
+
40
+ expect(@member.subscribed?(@list)).to eq(true)
41
+ end
42
+
43
+ end
44
+
45
+ context "Existing member" do
46
+
47
+ before(:all) do
48
+ @list = Responsys::Api::Object::InteractObject.new("another_test_folder","test_list")
49
+ @riid = 1225
50
+ end
51
+
52
+ it "should be ok, the email is present" do
53
+ VCR.use_cassette("member/present1") do
54
+ member_without_riid = Responsys::Member.new(@email)
55
+ bool = member_without_riid.present_in_list?(@list)
56
+
57
+ expect(bool).to eq(true)
58
+ end
59
+ end
60
+
61
+ it "should be ok, the email and riid is present" do
62
+ VCR.use_cassette("member/present2") do
63
+ member_with_riid = Responsys::Member.new(@email, @riid)
64
+ bool = member_with_riid.present_in_list?(@list)
65
+
66
+ expect(bool).to eq(true)
67
+ end
68
+ end
69
+
70
+ it "should fail, the email is not present" do
71
+ VCR.use_cassette("member/present3") do
72
+ member_with_fake_email = Responsys::Member.new("thisemailis@notpresent.com")
73
+ bool = member_with_fake_email.present_in_list?(@list)
74
+
75
+ expect(bool).to eq(false)
76
+ end
77
+ end
78
+
79
+ it "should fail, the email is present but not the riid" do
80
+ VCR.use_cassette("member/present4") do
81
+ member_with_fake_riid = Responsys::Member.new(@email, "000001")
82
+ bool = member_with_fake_riid.present_in_list?(@list)
83
+
84
+ expect(bool).to eq(false)
85
+ end
86
+ end
87
+
88
+ it "should return the record_not_found code message" do
89
+ VCR.use_cassette("member/present5") do
90
+ member_with_fake_riid = Responsys::Member.new(@email, "000001")
91
+ response = member_with_fake_riid.subscribed?(@list)
92
+
93
+ expect(response[:error][:code]).to eq("record_not_found")
94
+ end
95
+ end
96
+
97
+ end
98
+
99
+ context "Get profile extension data" do
100
+
101
+ before(:each) do
102
+ VCR.use_cassette("member/login") do
103
+ @profile_extension = Responsys::Api::Object::InteractObject.new("demo_folder2", "customers_extension")
104
+ @riid = 1125
105
+ @member_without_riid = Responsys::Member.new(@email)
106
+ @member_with_riid = Responsys::Member.new(@email, @riid)
107
+ @fields = %w(RIID_ EMAIL_ADDRESS)
108
+ end
109
+ end
110
+
111
+ it "should set the status to failure if no riid provided" do
112
+ VCR.use_cassette("member/retrieve_profile_extension_fail") do
113
+ response = @member_without_riid.retrieve_profile_extension(@profile_extension, @fields)
114
+
115
+ expect(response[:status]).to eq("failure")
116
+ end
117
+ end
118
+
119
+ it "should set a i18n message in the response if no riid provided" do
120
+ VCR.use_cassette("member/retrieve_profile_extension_fail") do
121
+ response = @member_without_riid.retrieve_profile_extension(@profile_extension, @fields)
122
+
123
+ expect(response[:error][:message]).to eq(I18n.t("member.riid_missing"))
124
+ end
125
+ end
126
+
127
+ it "should set the status to ok" do
128
+ VCR.use_cassette("member/retrieve_profile_extension") do
129
+ response = @member_with_riid.retrieve_profile_extension(@profile_extension, @fields)
130
+
131
+ expect(response[:status]).to eq("ok")
132
+ end
133
+ end
134
+
135
+ end
136
+ end
@@ -1,4 +1,30 @@
1
- require 'bundler/setup'
1
+ require "bundler/setup"
2
2
  Bundler.setup
3
3
 
4
- require './lib/responsys_api.rb'
4
+ require "responsys_api.rb"
5
+ require "vcr"
6
+
7
+ VCR.configure do |c|
8
+ c.cassette_library_dir = "spec/fixtures/vcr_cassettes"
9
+ c.hook_into :webmock
10
+ end
11
+
12
+ Responsys.configure do |config|
13
+ config.settings = {
14
+ username: "your_responsys_username",
15
+ password: "your_responsys_password",
16
+ wsdl: "https://wsxxxx.responsys.net/webservices/wsdl/ResponsysWS_Level1.wsdl",
17
+ debug: false
18
+ }
19
+ end
20
+
21
+ # Responsys.configure do |config|
22
+ # config.settings = {
23
+ # username: "your_responsys_username",
24
+ # password: "your_responsys_password",
25
+ # wsdl: "https://wsxxxx.responsys.net/webservices/wsdl/ResponsysWS_Level1.wsdl",
26
+ # debug: false
27
+ # }
28
+ # end
29
+
30
+ I18n.enforce_available_locales = false