restforce-db 2.7.0 → 3.0.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.
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