restforce-db 2.7.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (17) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +12 -0
  3. data/lib/generators/templates/script +102 -3
  4. data/lib/restforce/db/instances/active_record.rb +20 -9
  5. data/lib/restforce/db/instances/salesforce.rb +0 -8
  6. data/lib/restforce/db/record_types/salesforce.rb +17 -5
  7. data/lib/restforce/db/version.rb +1 -1
  8. data/test/cassettes/Restforce_DB_Initializer/_run/given_an_existing_database_record/for_an_Always_strategy/populates_Salesforce_with_the_new_record.yml +56 -56
  9. data/test/cassettes/Restforce_DB_Model/given_a_database_model_which_includes_the_module/_force_sync_/given_an_unsynchronized_record_for_a_mapped_model/creates_a_matching_record_in_Salesforce.yml +49 -49
  10. data/test/cassettes/Restforce_DB_RecordTypes_Salesforce/_create_/creates_a_record_in_Salesforce_from_the_passed_database_record_s_attributes.yml +41 -41
  11. data/test/cassettes/Restforce_DB_RecordTypes_Salesforce/_create_/updates_the_database_record_with_the_Salesforce_record_s_ID.yml +41 -41
  12. data/test/cassettes/Restforce_DB_RecordTypes_Salesforce/_create_/when_a_Salesforce_record_already_exists_for_the_database_instance/uses_the_existing_record.yml +247 -0
  13. data/test/cassettes/Restforce_DB_Worker/a_race_condition_during_synchronization/does_not_change_the_user-entered_name_on_the_database_record.yml +106 -107
  14. data/test/cassettes/Restforce_DB_Worker/a_race_condition_during_synchronization/overrides_the_stale-but-more-recent_name_on_the_Salesforce.yml +114 -115
  15. data/test/lib/restforce/db/instances/active_record_test.rb +9 -2
  16. data/test/lib/restforce/db/record_types/salesforce_test.rb +14 -4
  17. metadata +3 -2
@@ -14,8 +14,8 @@ describe Restforce::DB::Instances::ActiveRecord do
14
14
 
15
15
  describe "when the record has no synchronized Salesforce ID" do
16
16
 
17
- it "returns the record's ID" do
18
- expect(instance.id).to_equal "CustomObject::#{record.id}"
17
+ it "returns the record's UUID" do
18
+ expect(instance.id).to_equal instance.uuid
19
19
  end
20
20
  end
21
21
 
@@ -31,6 +31,13 @@ describe Restforce::DB::Instances::ActiveRecord do
31
31
  end
32
32
  end
33
33
 
34
+ describe "#uuid" do
35
+
36
+ it "returns the record's ID" do
37
+ expect(instance.uuid).to_equal "CustomObject::#{record.id}"
38
+ end
39
+ end
40
+
34
41
  describe "#update!" do
35
42
  let(:text) { "Some new text" }
36
43
 
@@ -17,18 +17,28 @@ describe Restforce::DB::RecordTypes::Salesforce do
17
17
  let(:sync_from) { Restforce::DB::Instances::ActiveRecord.new(database_model, database_record, mapping) }
18
18
  let(:instance) { record_type.create!(sync_from).record }
19
19
 
20
- before do
21
- Salesforce.records << [salesforce_model, instance.Id]
22
- end
23
-
24
20
  it "creates a record in Salesforce from the passed database record's attributes" do
21
+ Salesforce.records << [salesforce_model, instance.Id]
25
22
  expect(instance.Name).to_equal database_record.name
26
23
  expect(instance.Example_Field__c).to_equal database_record.example
27
24
  end
28
25
 
29
26
  it "updates the database record with the Salesforce record's ID" do
27
+ Salesforce.records << [salesforce_model, instance.Id]
30
28
  expect(sync_from.synced?).to_equal(true)
31
29
  end
30
+
31
+ describe "when a Salesforce record already exists for the database instance" do
32
+
33
+ it "uses the existing record" do
34
+ salesforce_id = Salesforce.create!(
35
+ salesforce_model,
36
+ "SynchronizationId__c" => sync_from.uuid,
37
+ )
38
+
39
+ expect(instance.Id).to_equal salesforce_id
40
+ end
41
+ end
32
42
  end
33
43
 
34
44
  describe "#find", :vcr do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restforce-db
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.0
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Horner
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-06-23 00:00:00.000000000 Z
11
+ date: 2015-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -303,6 +303,7 @@ files:
303
303
  - test/cassettes/Restforce_DB_RecordTypes_Salesforce/_all/returns_a_list_of_the_existing_records_in_Salesforce.yml
304
304
  - test/cassettes/Restforce_DB_RecordTypes_Salesforce/_create_/creates_a_record_in_Salesforce_from_the_passed_database_record_s_attributes.yml
305
305
  - test/cassettes/Restforce_DB_RecordTypes_Salesforce/_create_/updates_the_database_record_with_the_Salesforce_record_s_ID.yml
306
+ - test/cassettes/Restforce_DB_RecordTypes_Salesforce/_create_/when_a_Salesforce_record_already_exists_for_the_database_instance/uses_the_existing_record.yml
306
307
  - test/cassettes/Restforce_DB_RecordTypes_Salesforce/_find/finds_existing_records_in_Salesforce.yml
307
308
  - test/cassettes/Restforce_DB_RecordTypes_Salesforce/_find/given_a_set_of_mapping_conditions/when_a_record_does_not_meet_the_conditions/does_not_find_the_record.yml
308
309
  - test/cassettes/Restforce_DB_RecordTypes_Salesforce/_find/given_a_set_of_mapping_conditions/when_a_record_meets_the_conditions/finds_the_record.yml