email_direct 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,3 @@
1
+ module EmailDirect
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+ require 'email_direct/soap'
3
+
4
+ describe EmailDirect::SOAP, "#Email_AddWithFields" do
5
+
6
+ describe "A valid request without hardcoding parameters (Source,Publications,List,etc) id" do
7
+ before do
8
+ @soap = EmailDirect::SOAP.new(ENV['USERNAME'], ENV['PASSWORD'])
9
+ @soap.debug = true
10
+ end
11
+
12
+ it "should run successfully" do
13
+ result = @soap.Source_GetAll()
14
+ result.success?.should == true
15
+ source_id = result.data["Element"].first["ElementID"]
16
+
17
+ # create some publication
18
+ # result = @soap.Publication_Add("ElementName" => "Publication1", "Description" => "publication 1 info")
19
+ # result.success?.should == true
20
+
21
+ # result = @soap.Publication_Add("ElementName" => "Publication2", "Description" => "publication 2 info")
22
+ # result.success?.should == true
23
+
24
+ result = @soap.Publication_GetAll()
25
+ result.success?.should == true
26
+ publication_id1 = result.data["Element"][0]["ElementID"]
27
+ publication_id2 = result.data["Element"][1]["ElementID"]
28
+
29
+ # create some list
30
+ # result = @soap.List_Add("ElementName" => "List1", "Description" => "List 1 info")
31
+ # result.success?.should == true
32
+
33
+ # result = @soap.List_Add("ElementName" => "List2", "Description" => "List 2 info")
34
+ # result.success?.should == true
35
+
36
+ result = @soap.List_GetAll()
37
+ result.success?.should == true
38
+ list_id1 = result.data["Element"][0]["ElementID"]
39
+ list_id2 = result.data["Element"][1]["ElementID"]
40
+
41
+ result = @soap.Email_AddWithFields(
42
+ "Email" => "someone@test.com",
43
+ "SourceID" => source_id,
44
+ "Publications" => [
45
+ {"int" => publication_id1},
46
+ {"int" => publication_id2}
47
+ ],
48
+ "Lists" => [
49
+ {"int" => list_id1},
50
+ {"int" => list_id2}
51
+ ],
52
+ "AutoResponderID" => 0,
53
+ "Force" => "false",
54
+ "CustomFields" => [
55
+ {
56
+ "FieldName" => "FirstName",
57
+ "Value" => "Jason"
58
+ }, {
59
+ "FieldName" => "LastName",
60
+ "Value" => "Red"
61
+ }
62
+ ])
63
+ result.success?.should == true
64
+ end
65
+ end
66
+
67
+ end
68
+
@@ -0,0 +1,54 @@
1
+ require 'spec_helper'
2
+ require 'email_direct'
3
+
4
+ describe EmailDirect::Response, "#initialize" do
5
+
6
+ describe "A valid response from Source_Add" do
7
+ before do
8
+ xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"><soap:Body><Source_AddResponse xmlns=\"http://espapi.net/v1/\"><Source_AddResult xmlns=\"http://espapi.net/v1/components/apiresult\"><Code>10</Code><Message>Invalid AccountName or Password.</Message></Source_AddResult></Source_AddResponse></soap:Body></soap:Envelope>"
9
+ @response = EmailDirect::Response.new(xml)
10
+ end
11
+ it "parse correctly" do
12
+ @response.success?.should == false
13
+ @response.code.should == 10
14
+ @response.message.should == "Invalid AccountName or Password."
15
+ end
16
+ end
17
+
18
+ describe "A valid element List with Source_GetAll" do
19
+ before do
20
+ xml =<<XML
21
+ <?xml version="1.0" encoding="utf-8"?>
22
+ <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
23
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
24
+ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
25
+ <soap:Body>
26
+ <Source_GetAllResponse xmlns="http://espapi.net/v1/">
27
+ <Source_GetAllResult>
28
+ <Element>
29
+ <ElementID>1</ElementID>
30
+ <ElementName>string</ElementName>
31
+ <Description>string</Description>
32
+ </Element>
33
+ <Element>
34
+ <ElementID>2</ElementID>
35
+ <ElementName>string</ElementName>
36
+ <Description>string</Description>
37
+ </Element>
38
+ </Source_GetAllResult>
39
+ </Source_GetAllResponse>
40
+ </soap:Body>
41
+ </soap:Envelope>
42
+ XML
43
+ @response = EmailDirect::Response.new(xml)
44
+ end
45
+
46
+ it "parse correctly" do
47
+ @response.success?.should == true
48
+ @response.data.should == {"Element"=>
49
+ [{"ElementID"=>"1", "Description"=>"string", "ElementName"=>"string"},
50
+ {"ElementID"=>"2", "Description"=>"string", "ElementName"=>"string"}]}
51
+ end
52
+ end
53
+ end
54
+
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+ require 'email_direct/soap'
3
+
4
+ describe EmailDirect::SOAP, "#source" do
5
+
6
+ describe "A live EmailDirect Source actions" do
7
+ before do
8
+ @soap = EmailDirect::SOAP.new(ENV['USERNAME'], ENV['PASSWORD'])
9
+ #uncomment this line for full debug info
10
+ #@soap.debug = true
11
+ end
12
+ it "interacts with source" do
13
+ puts "Element should already exists.."
14
+ element_name = 'RubyTestSource'
15
+ description = 'a test source item'
16
+ result = @soap.Source_Add("ElementName" => element_name, "Description" => element_name)
17
+ result.success?.should == false
18
+ result.code.should == 402
19
+ result.message.should == "A Source with this name already exists."
20
+
21
+ puts "creating new source.."
22
+ element_name = 'RubyTestSource2'
23
+ description = 'a test source item'
24
+ result = @soap.Source_Add("ElementName" => element_name, "Description" => element_name)
25
+ result.success?.should == true
26
+
27
+ # puts "find the added item"
28
+ result = @soap.Source_GetAll()
29
+ result.success?.should == true
30
+
31
+ source = result.data["Element"].find {|e| e["ElementName"] == element_name}
32
+ source.should_not == nil
33
+ pp source
34
+
35
+
36
+ puts "we're done with the test, delete the test source"
37
+ result = @soap.Source_Delete("SourceID" => source["ElementID"])
38
+ result.success?.should == true
39
+ result.message.should == ""
40
+ end
41
+ end
42
+
43
+ describe "An invalid authentication error in soap response with Source_GetAll" do
44
+ before do
45
+ @soap = EmailDirect::SOAP.new('invalid', 'password')
46
+ #@soap.debug = true
47
+ end
48
+
49
+ it "fails gracefully" do
50
+ result = @soap.Source_GetAll()
51
+ result.success?.should == false
52
+ result.code.should == 10
53
+ result.message.should == "Invalid AccountName or Password."
54
+ end
55
+ end
56
+
57
+ end
58
+
@@ -0,0 +1,7 @@
1
+ Bundler.require(:default, :development)
2
+
3
+ RSpec.configure do |c|
4
+ # filter_run is short-form alias for filter_run_including
5
+ # c.filter_run :focus => true
6
+ end
7
+
metadata ADDED
@@ -0,0 +1,166 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: email_direct
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Tucker Connelly
14
+ - wynst
15
+ autorequire:
16
+ bindir: bin
17
+ cert_chain: []
18
+
19
+ date: 2010-10-30 00:00:00 +07:00
20
+ default_executable:
21
+ dependencies:
22
+ - !ruby/object:Gem::Dependency
23
+ name: serviceproxy
24
+ prerelease: false
25
+ requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ hash: 21
31
+ segments:
32
+ - 0
33
+ - 2
34
+ - 1
35
+ version: 0.2.1
36
+ type: :runtime
37
+ version_requirements: *id001
38
+ - !ruby/object:Gem::Dependency
39
+ name: nokogiri
40
+ prerelease: false
41
+ requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
43
+ requirements:
44
+ - - "="
45
+ - !ruby/object:Gem::Version
46
+ hash: 5
47
+ segments:
48
+ - 1
49
+ - 4
50
+ - 1
51
+ version: 1.4.1
52
+ type: :runtime
53
+ version_requirements: *id002
54
+ - !ruby/object:Gem::Dependency
55
+ name: builder
56
+ prerelease: false
57
+ requirement: &id003 !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ hash: 15
63
+ segments:
64
+ - 2
65
+ - 1
66
+ - 2
67
+ version: 2.1.2
68
+ type: :runtime
69
+ version_requirements: *id003
70
+ - !ruby/object:Gem::Dependency
71
+ name: activesupport
72
+ prerelease: false
73
+ requirement: &id004 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ hash: 7
79
+ segments:
80
+ - 3
81
+ - 0
82
+ - 0
83
+ version: 3.0.0
84
+ type: :runtime
85
+ version_requirements: *id004
86
+ - !ruby/object:Gem::Dependency
87
+ name: rspec
88
+ prerelease: false
89
+ requirement: &id005 !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ~>
93
+ - !ruby/object:Gem::Version
94
+ hash: 15
95
+ segments:
96
+ - 2
97
+ - 0
98
+ - 0
99
+ version: 2.0.0
100
+ type: :development
101
+ version_requirements: *id005
102
+ description: "To use this gem, initialize with your account name and password. All the SOAP calls (found here: http://dev.emaildirect.com/v1/) are functions of the module with the same function name and parameters (minus the credentials). This gem depends on the serviceproxy and activesupport gems."
103
+ email:
104
+ - l4nc3r@comcast.net
105
+ - wynst.uei@gmail.com
106
+ executables: []
107
+
108
+ extensions: []
109
+
110
+ extra_rdoc_files: []
111
+
112
+ files:
113
+ - .gitignore
114
+ - Gemfile
115
+ - Gemfile.lock
116
+ - MIT-LICENSE
117
+ - README.md
118
+ - Rakefile
119
+ - email_direct.gemspec
120
+ - examples/email.rb
121
+ - examples/source.rb
122
+ - lib/email_direct.rb
123
+ - lib/email_direct/response.rb
124
+ - lib/email_direct/service_proxy_patch.rb
125
+ - lib/email_direct/soap.rb
126
+ - lib/email_direct/version.rb
127
+ - spec/email_spec.rb
128
+ - spec/response_spec.rb
129
+ - spec/source_spec.rb
130
+ - spec/spec_helper.rb
131
+ has_rdoc: true
132
+ homepage: http://rubygems.org/gems/email_direct
133
+ licenses: []
134
+
135
+ post_install_message:
136
+ rdoc_options: []
137
+
138
+ require_paths:
139
+ - lib
140
+ required_ruby_version: !ruby/object:Gem::Requirement
141
+ none: false
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ hash: 3
146
+ segments:
147
+ - 0
148
+ version: "0"
149
+ required_rubygems_version: !ruby/object:Gem::Requirement
150
+ none: false
151
+ requirements:
152
+ - - ">="
153
+ - !ruby/object:Gem::Version
154
+ hash: 3
155
+ segments:
156
+ - 0
157
+ version: "0"
158
+ requirements: []
159
+
160
+ rubyforge_project: email_direct
161
+ rubygems_version: 1.3.7
162
+ signing_key:
163
+ specification_version: 3
164
+ summary: Used to connect to the EmailDirect SOAP service.
165
+ test_files: []
166
+