activeforce 1.5.0
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.
- data/Gemfile +15 -0
- data/Gemfile.lock +128 -0
- data/LICENSE.txt +20 -0
- data/README.md +112 -0
- data/Rakefile +47 -0
- data/VERSION +1 -0
- data/activeforce.gemspec +151 -0
- data/app/models/salesforce/account.rb +4 -0
- data/app/models/salesforce/activity_history.rb +4 -0
- data/app/models/salesforce/approval.rb +4 -0
- data/app/models/salesforce/campaign.rb +4 -0
- data/app/models/salesforce/campaign_feed.rb +4 -0
- data/app/models/salesforce/campaign_member.rb +4 -0
- data/app/models/salesforce/case.rb +4 -0
- data/app/models/salesforce/case_comment.rb +4 -0
- data/app/models/salesforce/case_contact_role.rb +4 -0
- data/app/models/salesforce/case_feed.rb +4 -0
- data/app/models/salesforce/case_history.rb +4 -0
- data/app/models/salesforce/case_share.rb +4 -0
- data/app/models/salesforce/case_solution.rb +4 -0
- data/app/models/salesforce/case_status.rb +4 -0
- data/app/models/salesforce/case_team_member.rb +4 -0
- data/app/models/salesforce/community.rb +4 -0
- data/app/models/salesforce/contact.rb +4 -0
- data/app/models/salesforce/contact_feed.rb +4 -0
- data/app/models/salesforce/contact_history.rb +4 -0
- data/app/models/salesforce/contract.rb +4 -0
- data/app/models/salesforce/document.rb +4 -0
- data/app/models/salesforce/event.rb +4 -0
- data/app/models/salesforce/feed_item.rb +4 -0
- data/app/models/salesforce/group.rb +4 -0
- data/app/models/salesforce/group_member.rb +4 -0
- data/app/models/salesforce/idea.rb +4 -0
- data/app/models/salesforce/lead.rb +4 -0
- data/app/models/salesforce/lead_status.rb +4 -0
- data/app/models/salesforce/name.rb +4 -0
- data/app/models/salesforce/note.rb +4 -0
- data/app/models/salesforce/open_activity.rb +4 -0
- data/app/models/salesforce/opportunity.rb +4 -0
- data/app/models/salesforce/organization.rb +4 -0
- data/app/models/salesforce/partner.rb +4 -0
- data/app/models/salesforce/period.rb +4 -0
- data/app/models/salesforce/product2.rb +4 -0
- data/app/models/salesforce/product2_feed.rb +4 -0
- data/app/models/salesforce/profile.rb +4 -0
- data/app/models/salesforce/quote.rb +4 -0
- data/app/models/salesforce/solution.rb +4 -0
- data/app/models/salesforce/task.rb +4 -0
- data/app/models/salesforce/task_feed.rb +4 -0
- data/app/models/salesforce/task_priority.rb +4 -0
- data/app/models/salesforce/task_status.rb +4 -0
- data/app/models/salesforce/user.rb +4 -0
- data/app/models/salesforce/user_role.rb +4 -0
- data/app/models/salesforce/vote.rb +4 -0
- data/lib/activeforce.rb +29 -0
- data/lib/salesforce/attributes.rb +13 -0
- data/lib/salesforce/authentication.rb +25 -0
- data/lib/salesforce/base.rb +240 -0
- data/lib/salesforce/bulk/batch.rb +77 -0
- data/lib/salesforce/bulk/job.rb +103 -0
- data/lib/salesforce/bulk/operations.rb +25 -0
- data/lib/salesforce/bulk/update_job.rb +24 -0
- data/lib/salesforce/column.rb +98 -0
- data/lib/salesforce/columns.rb +60 -0
- data/lib/salesforce/config.rb +110 -0
- data/lib/salesforce/connection.rb +33 -0
- data/lib/salesforce/connection/async.rb +36 -0
- data/lib/salesforce/connection/conversion.rb +37 -0
- data/lib/salesforce/connection/http_methods.rb +72 -0
- data/lib/salesforce/connection/rest_api.rb +52 -0
- data/lib/salesforce/connection/soap_api.rb +74 -0
- data/lib/salesforce/engine.rb +6 -0
- data/lib/salesforce/errors.rb +33 -0
- data/test/salesforce/authentication_test.rb +52 -0
- data/test/salesforce/base_test.rb +440 -0
- data/test/salesforce/bulk/batch_test.rb +79 -0
- data/test/salesforce/bulk/update_job_test.rb +125 -0
- data/test/salesforce/column_test.rb +115 -0
- data/test/salesforce/config_test.rb +163 -0
- data/test/salesforce/connection/async_test.rb +138 -0
- data/test/salesforce/connection/http_methods_test.rb +242 -0
- data/test/salesforce/connection/rest_api_test.rb +61 -0
- data/test/salesforce/connection/soap_api_test.rb +148 -0
- data/test/salesforce/connection_test.rb +148 -0
- data/test/test_helper.rb +79 -0
- metadata +295 -0
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Salesforce::Bulk::BatchTest < ActiveSupport::TestCase
|
4
|
+
setup :clear_columns_for_bulk_table
|
5
|
+
setup :setup_columns_for_bulk_table
|
6
|
+
setup :setup_job
|
7
|
+
teardown :clear_file
|
8
|
+
|
9
|
+
def test_initialize
|
10
|
+
assert_equal @job, @batch.job
|
11
|
+
assert !@batch.filename.nil?
|
12
|
+
assert !@batch.csv.nil?
|
13
|
+
@batch.csv.close
|
14
|
+
content = File.read(@batch.filename)
|
15
|
+
assert_equal "Id,Name__c,dob__c,Car__c\n", content
|
16
|
+
assert_equal [ 'Id', "Name__c", "dob__c", "Car__c"], @batch.send(:csv_header)
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_record__from_hash
|
20
|
+
@batch.csv.expects(:<<).with([ 'recordid', 'record name', "2008-10-14", 'record car'])
|
21
|
+
@batch.record :id => "recordid", :name => "record name", :car => "record car", :dob => Date.parse("10/14/2008")
|
22
|
+
|
23
|
+
@batch.csv.expects(:<<).with([ 'recordid', 'record name', "2008-10-14", 'record car'])
|
24
|
+
@batch.record :id => "recordid", :name => "record name", :car => "record car", :dob => "10/14/2008"
|
25
|
+
|
26
|
+
@batch.csv.expects(:<<).with([ 'recordid', '', '', 'record car'])
|
27
|
+
@batch.record :id => "recordid", :car => "record car"
|
28
|
+
|
29
|
+
@batch.csv.expects(:<<).with([ 'recordid', '', '', ''])
|
30
|
+
@batch.record :id => "recordid"
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_record__from_object
|
34
|
+
bulk_table = Salesforce::BulkTable.new("Id" => "btid", :name => "name", "Car__c" => 'car', :dob => "10/14/2008")
|
35
|
+
@batch.csv.expects(:<<).with([ 'btid', "name", "2008-10-14", "car"])
|
36
|
+
@batch.record bulk_table
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_create
|
40
|
+
@batch.csv.expects(:close)
|
41
|
+
File.expects(:read).returns("csv_contents")
|
42
|
+
Salesforce.connection.expects(:async_post).with("job/#{@job.id}/batch", "csv_contents", :format => :xml, :content_type => "text/csv").returns("id" => "batchid", "state" => "In Progress")
|
43
|
+
@batch.create!
|
44
|
+
assert_equal "batchid", @batch.id
|
45
|
+
assert @batch.in_progress?
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_update_status
|
49
|
+
Salesforce.connection.expects(:async_get).with("job/#{@job.id}/batch/#{@batch.id}", :format => :xml).returns(:state => "Not Processed")
|
50
|
+
@batch.update_status
|
51
|
+
assert @batch.not_processed?
|
52
|
+
|
53
|
+
Salesforce.connection.expects(:async_get).with("job/#{@job.id}/batch/#{@batch.id}", :format => :xml).returns(:state => "Completed")
|
54
|
+
@batch.update_status
|
55
|
+
assert @batch.completed?
|
56
|
+
|
57
|
+
Salesforce.connection.expects(:async_get).never
|
58
|
+
@batch.update_status
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_results
|
62
|
+
csv = "Id,Success,Created,Errors\n1,true,no,\n2,true,yes,"
|
63
|
+
Salesforce.connection.expects(:async_get).with("job/#{@job.id}/batch/#{@batch.id}/result").returns(csv)
|
64
|
+
assert_equal 2, @batch.results.size
|
65
|
+
end
|
66
|
+
|
67
|
+
private
|
68
|
+
|
69
|
+
def setup_job
|
70
|
+
@job = Salesforce::Bulk::UpdateJob.new(Salesforce::BulkTable)
|
71
|
+
@batch = @job.batch do
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def clear_file
|
76
|
+
FileUtils.rm_rf(@batch.filename) if @batch.filename.present?
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
@@ -0,0 +1,125 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Salesforce::Bulk::UpdateJobTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
setup :setup_columns_for_bulk_table
|
6
|
+
setup :setup_columns_for_account
|
7
|
+
|
8
|
+
|
9
|
+
def test_initialize
|
10
|
+
job = Salesforce::Bulk::UpdateJob.new(Salesforce::Account)
|
11
|
+
assert_equal Salesforce::Account, job.object_type
|
12
|
+
assert_equal 'update', job.operation
|
13
|
+
assert_equal 'Parallel', job.concurrency_mode
|
14
|
+
assert_equal 'Account', job.object
|
15
|
+
assert_equal 'Id,City,Address,Name,Type,State', job.send(:csv_header).join(',')
|
16
|
+
end
|
17
|
+
|
18
|
+
def test_initialize__with_columns
|
19
|
+
job = Salesforce::Bulk::UpdateJob.new(Salesforce::Account, [:name, :state])
|
20
|
+
assert_equal Salesforce::Account, job.object_type
|
21
|
+
assert_equal 'update', job.operation
|
22
|
+
assert_equal 'Parallel', job.concurrency_mode
|
23
|
+
assert_equal 'Account', job.object
|
24
|
+
assert_equal 'Id,Name,State', job.send(:csv_header).join(',')
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_initialize__with_all
|
28
|
+
job = Salesforce::Bulk::UpdateJob.new(Salesforce::Account, :all)
|
29
|
+
assert_equal Salesforce::Account, job.object_type
|
30
|
+
assert_equal 'update', job.operation
|
31
|
+
assert_equal 'Parallel', job.concurrency_mode
|
32
|
+
assert_equal 'Account', job.object
|
33
|
+
assert_equal 'Id,City,Address,Name,Type,State', job.send(:csv_header).join(',')
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_csv_columns__unrecognized_column
|
37
|
+
assert_raises Salesforce::UnrecognizedColumn do
|
38
|
+
Salesforce::Bulk::UpdateJob.new(Salesforce::Account, [ :ssn ]).csv_columns
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_bulk_update
|
43
|
+
Salesforce::Bulk::UpdateJob.any_instance.expects(:process!)
|
44
|
+
|
45
|
+
job = Salesforce::BulkTable.bulk_update do
|
46
|
+
serial!
|
47
|
+
batch do
|
48
|
+
record({})
|
49
|
+
record({})
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
assert_equal Salesforce::BulkTable, job.object_type
|
54
|
+
assert_equal 'update', job.operation
|
55
|
+
assert_equal 'Serial', job.concurrency_mode
|
56
|
+
assert_equal 'BulkTable__c', job.object
|
57
|
+
assert_equal 1, job.batches.size
|
58
|
+
end
|
59
|
+
|
60
|
+
def test_process
|
61
|
+
job = Salesforce::Bulk::UpdateJob.new(Salesforce::Account)
|
62
|
+
job.expects(:create_job!)
|
63
|
+
job.expects(:create_batches!)
|
64
|
+
job.expects(:close_job!)
|
65
|
+
job.process!
|
66
|
+
end
|
67
|
+
|
68
|
+
def test_create_job
|
69
|
+
job = Salesforce::Bulk::UpdateJob.new(Salesforce::Account)
|
70
|
+
xml = anything
|
71
|
+
Salesforce.connection.expects(:async_post).with("job", xml, :format => :xml).returns({ "id" => 3})
|
72
|
+
job.send :create_job!
|
73
|
+
assert_equal 3, job.id
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_completed
|
77
|
+
job_with_batches
|
78
|
+
@batch_1.stubs(:update_status)
|
79
|
+
@batch_2.stubs(:update_status)
|
80
|
+
@batch_1.expects(:completed?).returns(false)
|
81
|
+
@batch_1.expects(:failed?).returns(false)
|
82
|
+
assert_equal false, @job.completed?
|
83
|
+
|
84
|
+
@batch_1.expects(:completed?).returns(true)
|
85
|
+
@batch_2.expects(:completed?).returns(false)
|
86
|
+
@batch_2.expects(:failed?).returns(false)
|
87
|
+
assert_equal false, @job.completed?
|
88
|
+
|
89
|
+
@batch_1.expects(:completed?).returns(true)
|
90
|
+
@batch_2.expects(:completed?).returns(false)
|
91
|
+
@batch_2.expects(:failed?).returns(true)
|
92
|
+
assert @job.completed?
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_results
|
96
|
+
job_with_batches
|
97
|
+
@batch_1.expects(:results).returns([ :result_1, :result_2])
|
98
|
+
@batch_2.expects(:results).returns([ :result_3, :result_4])
|
99
|
+
assert_equal [ :result_1, :result_2, :result_3, :result_4 ], @job.results
|
100
|
+
end
|
101
|
+
|
102
|
+
def test_close_job
|
103
|
+
Salesforce::Authentication.stubs(:session_id).returns('session_id')
|
104
|
+
job_with_batches
|
105
|
+
Salesforce.connection.expects(:async_post).with("job/jobId", includes("<state>Closed</state>"), :format => :xml).returns("state" => "Closed", "number_batches_total" => 2)
|
106
|
+
@job.send(:close_job!)
|
107
|
+
assert_equal 2, @job.number_batches_total
|
108
|
+
assert @job.closed?
|
109
|
+
end
|
110
|
+
|
111
|
+
private
|
112
|
+
|
113
|
+
def job_with_batches
|
114
|
+
Salesforce::Authentication.stubs(:session_id).returns('session_id')
|
115
|
+
|
116
|
+
@job = Salesforce::Bulk::UpdateJob.new(Salesforce::Account)
|
117
|
+
@job.id = "jobId"
|
118
|
+
@batch_1 = Salesforce::Bulk::Batch.new(@job)
|
119
|
+
@batch_2 = Salesforce::Bulk::Batch.new(@job)
|
120
|
+
@job.batches << @batch_1
|
121
|
+
@job.batches << @batch_2
|
122
|
+
end
|
123
|
+
|
124
|
+
|
125
|
+
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Salesforce::ColumnTest < ActiveSupport::TestCase
|
4
|
+
def test_initializer
|
5
|
+
col = Salesforce::Column.new("name" => "Name", "type" => "string", "updateable" => true)
|
6
|
+
assert_equal "name", col.name
|
7
|
+
assert_equal "Name", col.original_name
|
8
|
+
assert_equal :string, col.type
|
9
|
+
assert col.editable?
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_initializer__custom
|
13
|
+
col = Salesforce::Column.new("name" => "Name__c", "type" => "string", "updateable" => true)
|
14
|
+
assert_equal "name", col.name
|
15
|
+
assert_equal "Name__c", col.original_name
|
16
|
+
assert_equal :string, col.type
|
17
|
+
assert col.editable?
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_initializer__not_editable
|
21
|
+
col = Salesforce::Column.new("name" => "Name__c", "type" => "string", "updateable" => false, "createable" => false)
|
22
|
+
assert_equal "name", col.name
|
23
|
+
assert_equal "Name__c", col.original_name
|
24
|
+
assert_equal :string, col.type
|
25
|
+
assert_equal false, col.editable?
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_initializer__editable
|
29
|
+
col = Salesforce::Column.new("name" => "Name__c", "type" => "string", "updateable" => true, "createable" => false)
|
30
|
+
assert_equal "name", col.name
|
31
|
+
assert_equal "Name__c", col.original_name
|
32
|
+
assert_equal :string, col.type
|
33
|
+
assert col.editable?
|
34
|
+
assert col.updateable?
|
35
|
+
assert_equal false, col.createable?
|
36
|
+
col.updateable = false
|
37
|
+
col.createable = true
|
38
|
+
assert col.editable?
|
39
|
+
assert col.createable?
|
40
|
+
assert_equal false, col.updateable?
|
41
|
+
end
|
42
|
+
|
43
|
+
def test_to_soql_value
|
44
|
+
assert_equal "'string'", Salesforce::Column.to_soql_value('string')
|
45
|
+
assert_equal "TRUE", Salesforce::Column.to_soql_value(true)
|
46
|
+
assert_equal "FALSE", Salesforce::Column.to_soql_value(false)
|
47
|
+
assert_equal "NULL", Salesforce::Column.to_soql_value(nil)
|
48
|
+
assert_equal "2012-01-02", Salesforce::Column.to_soql_value(Date.parse('01/02/2012'))
|
49
|
+
assert_equal "2012-01-02T18:40:00-08:00", Salesforce::Column.to_soql_value(Time.zone.parse('01/02/2012 06:40PM'))
|
50
|
+
assert_equal "1", Salesforce::Column.to_soql_value(1)
|
51
|
+
assert_equal "1.0", Salesforce::Column.to_soql_value(1.0)
|
52
|
+
assert_equal "1.04", Salesforce::Column.to_soql_value(BigDecimal.new("1.04"))
|
53
|
+
assert_equal "'col'", Salesforce::Column.to_soql_value(:col)
|
54
|
+
assert_equal "('string1','string2','string3')", Salesforce::Column.to_soql_value(['string1','string2','string3'])
|
55
|
+
assert_equal "('string1',1,2012-01-02)", Salesforce::Column.to_soql_value(['string1',1,Date.parse("01/02/2012")])
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_to_csv_value
|
59
|
+
assert_equal "string", Salesforce::Column.to_csv_value('string')
|
60
|
+
assert_equal "TRUE", Salesforce::Column.to_csv_value(true)
|
61
|
+
assert_equal "FALSE", Salesforce::Column.to_csv_value(false)
|
62
|
+
assert_equal "", Salesforce::Column.to_csv_value(nil)
|
63
|
+
assert_equal "2012-01-02", Salesforce::Column.to_csv_value(Date.parse('01/02/2012'))
|
64
|
+
assert_equal "2012-01-02T18:40:00-08:00", Salesforce::Column.to_csv_value(Time.zone.parse('01/02/2012 06:40PM'))
|
65
|
+
assert_equal "1", Salesforce::Column.to_csv_value(1)
|
66
|
+
assert_equal "1.0", Salesforce::Column.to_csv_value(1.0)
|
67
|
+
assert_equal "1.04", Salesforce::Column.to_csv_value(BigDecimal.new("1.04"))
|
68
|
+
assert_equal "col", Salesforce::Column.to_csv_value(:col)
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_typecast
|
72
|
+
assert_equal "123456789012345", Salesforce::Column.typecast(:id, "123456789012345")
|
73
|
+
assert_equal "123456789012345", Salesforce::Column.typecast(:id, "123456789012345123")
|
74
|
+
assert_equal "123456789012345", Salesforce::Column.typecast(:reference, "123456789012345")
|
75
|
+
assert_equal "123456789012345", Salesforce::Column.typecast(:reference, "123456789012345123")
|
76
|
+
assert_equal Date.parse("08/31/2011"), Salesforce::Column.typecast(:date, "2011-08-31")
|
77
|
+
assert_equal Date.parse("08/31/2011"), Salesforce::Column.typecast(:date, Date.parse("08/31/2011"))
|
78
|
+
assert_equal nil, Salesforce::Column.typecast(:date, nil)
|
79
|
+
assert_equal nil, Salesforce::Column.typecast(:date, 'nil')
|
80
|
+
|
81
|
+
assert_equal Time.zone.parse('01/02/2012 06:40PM'), Salesforce::Column.typecast(:datetime, "2012-01-02T18:40:00-08:00")
|
82
|
+
assert_equal Time.zone.parse('01/02/2012 06:40PM'), Salesforce::Column.typecast(:datetime, Time.zone.parse('01/02/2012 06:40PM'))
|
83
|
+
assert_equal nil, Salesforce::Column.typecast(:datetime, nil)
|
84
|
+
assert_equal Time.now.to_s, Salesforce::Column.typecast(:datetime, 'nil').to_s
|
85
|
+
|
86
|
+
assert_equal BigDecimal("2012"), Salesforce::Column.typecast(:double, "2012")
|
87
|
+
assert_equal BigDecimal("2012.33"), Salesforce::Column.typecast(:double, "2012.33")
|
88
|
+
assert_equal BigDecimal("1"), Salesforce::Column.typecast(:double, 1)
|
89
|
+
assert_equal BigDecimal("1.2"), Salesforce::Column.typecast(:double, 1.2)
|
90
|
+
assert_equal 0, Salesforce::Column.typecast(:double, nil)
|
91
|
+
assert_equal 0, Salesforce::Column.typecast(:double, 'nil')
|
92
|
+
|
93
|
+
assert_equal true, Salesforce::Column.typecast(:boolean, true)
|
94
|
+
assert_equal false, Salesforce::Column.typecast(:boolean, false)
|
95
|
+
end
|
96
|
+
|
97
|
+
def test_typecast__using_full_length_ids
|
98
|
+
Salesforce::Config.instance.use_full_length_ids
|
99
|
+
assert_equal "123456789012345", Salesforce::Column.typecast(:id, "123456789012345")
|
100
|
+
assert_equal "123456789012345123", Salesforce::Column.typecast(:id, "123456789012345123")
|
101
|
+
assert_equal "123456789012345", Salesforce::Column.typecast(:reference, "123456789012345")
|
102
|
+
assert_equal "123456789012345123", Salesforce::Column.typecast(:reference, "123456789012345123")
|
103
|
+
end
|
104
|
+
|
105
|
+
def test_equals
|
106
|
+
col1 = Salesforce::Column.new("name" => "Name", "type" => "string", "updateable" => true)
|
107
|
+
col2 = Salesforce::Column.new("name" => "Name", "type" => "string", "updateable" => false)
|
108
|
+
col3 = Salesforce::Column.new("name" => "Name__c", "type" => "string", "updateable" => true)
|
109
|
+
|
110
|
+
assert col1 == col2
|
111
|
+
assert col2 != col3
|
112
|
+
assert col1 != col3
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
@@ -0,0 +1,163 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class Salesforce::ConfigTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
setup :clean_config
|
6
|
+
|
7
|
+
def test_configure
|
8
|
+
Salesforce.configure do
|
9
|
+
username "foo"
|
10
|
+
password "bar"
|
11
|
+
end
|
12
|
+
assert_equal "foo", Salesforce::Config.username
|
13
|
+
assert_equal "bar", Salesforce::Config.password
|
14
|
+
assert_equal '22.0', Salesforce::Config.api_version
|
15
|
+
assert_equal false, Salesforce::Config.use_sandbox?
|
16
|
+
assert_equal false, Salesforce::Config.use_full_length_ids?
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_configure__username__password_can_be_blocks
|
20
|
+
user_count = 0
|
21
|
+
password_count = 4
|
22
|
+
|
23
|
+
Salesforce.configure do
|
24
|
+
username { user_count = user_count + 1 }
|
25
|
+
password { password_count = password_count + 1 }
|
26
|
+
end
|
27
|
+
|
28
|
+
assert_equal 1, Salesforce::Config.username
|
29
|
+
assert_equal 2, Salesforce::Config.username
|
30
|
+
assert_equal 3, Salesforce::Config.username
|
31
|
+
assert_equal 4, Salesforce::Config.username
|
32
|
+
|
33
|
+
assert_equal 5, Salesforce::Config.password
|
34
|
+
assert_equal 6, Salesforce::Config.password
|
35
|
+
assert_equal 7, Salesforce::Config.password
|
36
|
+
assert_equal 8, Salesforce::Config.password
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_config__on_login_failure
|
40
|
+
assert_nil Salesforce::Config.on_login_failure
|
41
|
+
|
42
|
+
@my_stuff = 0
|
43
|
+
|
44
|
+
Salesforce.configure do
|
45
|
+
on_login_failure { @my_stuff = @my_stuff + 1 }
|
46
|
+
end
|
47
|
+
|
48
|
+
Salesforce::Config.on_login_failure
|
49
|
+
assert_equal 1, @my_stuff
|
50
|
+
Salesforce::Config.on_login_failure
|
51
|
+
|
52
|
+
assert_equal 2, @my_stuff
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_config__specific_api_version
|
56
|
+
Salesforce.configure do
|
57
|
+
username "foo"
|
58
|
+
password "bar"
|
59
|
+
api_version 21
|
60
|
+
end
|
61
|
+
assert_equal "foo", Salesforce::Config.username
|
62
|
+
assert_equal "bar", Salesforce::Config.password
|
63
|
+
assert_equal '21.0', Salesforce::Config.api_version
|
64
|
+
assert_equal false, Salesforce::Config.use_sandbox?
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_config__sandbox
|
68
|
+
Salesforce.configure do
|
69
|
+
username "foo"
|
70
|
+
password "bar"
|
71
|
+
use_sandbox
|
72
|
+
end
|
73
|
+
|
74
|
+
assert_equal "foo", Salesforce::Config.username
|
75
|
+
assert_equal "bar", Salesforce::Config.password
|
76
|
+
assert Salesforce::Config.use_sandbox?
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_login_url__regular
|
80
|
+
Salesforce.configure do
|
81
|
+
username "foo"
|
82
|
+
password "bar"
|
83
|
+
api_version 21
|
84
|
+
end
|
85
|
+
|
86
|
+
assert_equal "https://login.salesforce.com/services/Soap/c/21.0", Salesforce::Config.login_url
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_login_url__sandbox
|
90
|
+
Salesforce.configure do
|
91
|
+
username "foo"
|
92
|
+
password "bar"
|
93
|
+
use_sandbox
|
94
|
+
end
|
95
|
+
|
96
|
+
assert_equal "https://test.salesforce.com/services/Soap/c/22.0", Salesforce::Config.login_url
|
97
|
+
end
|
98
|
+
|
99
|
+
def test_passthrough_methods
|
100
|
+
config = Salesforce::Config.instance
|
101
|
+
config.username "username"
|
102
|
+
assert_equal "username", Salesforce::Config.username
|
103
|
+
config.password "password"
|
104
|
+
assert_equal "password", Salesforce::Config.password
|
105
|
+
config.api_version "23"
|
106
|
+
assert_equal "23.0", Salesforce::Config.api_version
|
107
|
+
config.use_sandbox
|
108
|
+
assert Salesforce::Config.use_sandbox?
|
109
|
+
assert_equal config.login_url, Salesforce::Config.login_url
|
110
|
+
config.session_id "session_id"
|
111
|
+
assert_equal "session_id", Salesforce::Config.session_id
|
112
|
+
|
113
|
+
config.server_instance "na99"
|
114
|
+
assert_equal "na99", Salesforce::Config.server_instance
|
115
|
+
|
116
|
+
config.user_id "user_id"
|
117
|
+
assert_equal "user_id", Salesforce::Config.user_id
|
118
|
+
assert_equal config.server_url, Salesforce::Config.server_url
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_server_url__and_server_host
|
122
|
+
config = Salesforce::Config.instance
|
123
|
+
config.server_instance "sa2"
|
124
|
+
config.api_version 99
|
125
|
+
assert_equal "https://sa2.salesforce.com/services/data/v99.0", Salesforce::Config.server_url
|
126
|
+
assert_equal "https://sa2.salesforce.com", Salesforce::Config.server_host
|
127
|
+
end
|
128
|
+
|
129
|
+
def test_configured
|
130
|
+
config = Salesforce::Config.instance
|
131
|
+
assert_equal false, config.configured?
|
132
|
+
|
133
|
+
config.username "username"
|
134
|
+
assert_equal false, config.configured?
|
135
|
+
|
136
|
+
config.password "password"
|
137
|
+
assert config.configured?
|
138
|
+
|
139
|
+
config.username nil
|
140
|
+
assert_equal false, config.configured?
|
141
|
+
end
|
142
|
+
|
143
|
+
def test_soap_enterprise_namespace
|
144
|
+
assert_equal "urn:enterprise.soap.sforce.com", Salesforce::Config.soap_enterprise_namespace
|
145
|
+
assert_equal "urn:enterprise.soap.sforce.com", Salesforce::Config.instance.soap_enterprise_namespace
|
146
|
+
end
|
147
|
+
|
148
|
+
def test_use_full_length_ids?
|
149
|
+
|
150
|
+
Salesforce.configure do
|
151
|
+
use_full_length_ids
|
152
|
+
end
|
153
|
+
|
154
|
+
assert Salesforce::Config.use_full_length_ids?
|
155
|
+
end
|
156
|
+
|
157
|
+
private
|
158
|
+
|
159
|
+
def clean_config
|
160
|
+
Salesforce::Config.instance_variable_set(:@instance, nil)
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|