email_direct 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,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
+