rhoconnect-adapters 1.0.0.beta1

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 (106) hide show
  1. data/.gitignore +4 -0
  2. data/CHANGELOG +4 -0
  3. data/Gemfile +18 -0
  4. data/README.md +239 -0
  5. data/Rakefile +31 -0
  6. data/bin/rhoconnect-adapters +35 -0
  7. data/generators/crm/templates/application/application.rb +34 -0
  8. data/generators/crm/templates/source/source_adapter.rb +10 -0
  9. data/generators/crm/templates/source/source_spec.rb +25 -0
  10. data/generators/crm/templates/spec/spec_helper.rb +64 -0
  11. data/generators/crm/vendor/ms_dynamics/adapter.rb +301 -0
  12. data/generators/crm/vendor/ms_dynamics/application.rb +56 -0
  13. data/generators/crm/vendor/ms_dynamics/lib/crm_metadata_service.rb +43 -0
  14. data/generators/crm/vendor/ms_dynamics/lib/crm_service.rb +141 -0
  15. data/generators/crm/vendor/ms_dynamics/lib/discovery_service.rb +51 -0
  16. data/generators/crm/vendor/ms_dynamics/lib/wlid_service.rb +159 -0
  17. data/generators/crm/vendor/ms_dynamics/ms_dynamics.rb +45 -0
  18. data/generators/crm/vendor/ms_dynamics/settings/Account.yml +46 -0
  19. data/generators/crm/vendor/ms_dynamics/settings/Contact.yml +40 -0
  20. data/generators/crm/vendor/ms_dynamics/settings/GenericObject.yml +18 -0
  21. data/generators/crm/vendor/ms_dynamics/settings/Lead.yml +53 -0
  22. data/generators/crm/vendor/ms_dynamics/settings/Opportunity.yml +41 -0
  23. data/generators/crm/vendor/ms_dynamics/settings/settings.yml +9 -0
  24. data/generators/crm/vendor/ms_dynamics/spec/application_spec.rb +23 -0
  25. data/generators/crm/vendor/ms_dynamics/spec/sources/account_spec.rb +49 -0
  26. data/generators/crm/vendor/ms_dynamics/spec/sources/contact_spec.rb +49 -0
  27. data/generators/crm/vendor/ms_dynamics/spec/sources/lead_spec.rb +49 -0
  28. data/generators/crm/vendor/ms_dynamics/spec/sources/opportunity_spec.rb +62 -0
  29. data/generators/crm/vendor/ms_dynamics/spec/spec_helper.rb +78 -0
  30. data/generators/crm/vendor/ms_dynamics/spec_data/Account.yml +6 -0
  31. data/generators/crm/vendor/ms_dynamics/spec_data/Contact.yml +7 -0
  32. data/generators/crm/vendor/ms_dynamics/spec_data/GenericObject.yml +3 -0
  33. data/generators/crm/vendor/ms_dynamics/spec_data/Lead.yml +12 -0
  34. data/generators/crm/vendor/ms_dynamics/spec_data/Opportunity.yml +6 -0
  35. data/generators/crm/vendor/ms_dynamics/templates.rb +57 -0
  36. data/generators/crm/vendor/oracle_on_demand/adapter.rb +421 -0
  37. data/generators/crm/vendor/oracle_on_demand/application.rb +64 -0
  38. data/generators/crm/vendor/oracle_on_demand/settings/Account.yml +91 -0
  39. data/generators/crm/vendor/oracle_on_demand/settings/Contact.yml +54 -0
  40. data/generators/crm/vendor/oracle_on_demand/settings/GenericObject.yml +21 -0
  41. data/generators/crm/vendor/oracle_on_demand/settings/Lead.yml +72 -0
  42. data/generators/crm/vendor/oracle_on_demand/settings/Opportunity.yml +69 -0
  43. data/generators/crm/vendor/oracle_on_demand/settings/settings.yml +8 -0
  44. data/generators/crm/vendor/oracle_on_demand/spec/application_spec.rb +14 -0
  45. data/generators/crm/vendor/oracle_on_demand/spec/sources/account_spec.rb +50 -0
  46. data/generators/crm/vendor/oracle_on_demand/spec/sources/contact_spec.rb +50 -0
  47. data/generators/crm/vendor/oracle_on_demand/spec/sources/lead_spec.rb +51 -0
  48. data/generators/crm/vendor/oracle_on_demand/spec/sources/opportunity_spec.rb +51 -0
  49. data/generators/crm/vendor/oracle_on_demand/spec_data/Account.yml +8 -0
  50. data/generators/crm/vendor/oracle_on_demand/spec_data/Contact.yml +8 -0
  51. data/generators/crm/vendor/oracle_on_demand/spec_data/GenericObject.yml +4 -0
  52. data/generators/crm/vendor/oracle_on_demand/spec_data/Lead.yml +14 -0
  53. data/generators/crm/vendor/oracle_on_demand/spec_data/Opportunity.yml +6 -0
  54. data/generators/crm/vendor/oracle_on_demand/templates.rb +52 -0
  55. data/generators/crm/vendor/salesforce/adapter.rb +315 -0
  56. data/generators/crm/vendor/salesforce/application.rb +80 -0
  57. data/generators/crm/vendor/salesforce/settings/Account.yml +53 -0
  58. data/generators/crm/vendor/salesforce/settings/Contact.yml +61 -0
  59. data/generators/crm/vendor/salesforce/settings/GenericObject.yml +13 -0
  60. data/generators/crm/vendor/salesforce/settings/Lead.yml +73 -0
  61. data/generators/crm/vendor/salesforce/settings/Opportunity.yml +48 -0
  62. data/generators/crm/vendor/salesforce/settings/settings.yml +6 -0
  63. data/generators/crm/vendor/salesforce/spec/application_spec.rb +14 -0
  64. data/generators/crm/vendor/salesforce/spec/sources/account_spec.rb +50 -0
  65. data/generators/crm/vendor/salesforce/spec/sources/contact_spec.rb +50 -0
  66. data/generators/crm/vendor/salesforce/spec/sources/lead_spec.rb +51 -0
  67. data/generators/crm/vendor/salesforce/spec/sources/opportunity_spec.rb +51 -0
  68. data/generators/crm/vendor/salesforce/spec_data/Account.yml +14 -0
  69. data/generators/crm/vendor/salesforce/spec_data/Contact.yml +8 -0
  70. data/generators/crm/vendor/salesforce/spec_data/GenericObject.yml +3 -0
  71. data/generators/crm/vendor/salesforce/spec_data/Lead.yml +10 -0
  72. data/generators/crm/vendor/salesforce/spec_data/Opportunity.yml +10 -0
  73. data/generators/crm/vendor/salesforce/templates.rb +45 -0
  74. data/generators/crm/vendor/sugar/adapter.rb +291 -0
  75. data/generators/crm/vendor/sugar/application.rb +50 -0
  76. data/generators/crm/vendor/sugar/settings/Account.yml +49 -0
  77. data/generators/crm/vendor/sugar/settings/Contact.yml +62 -0
  78. data/generators/crm/vendor/sugar/settings/GenericObject.yml +12 -0
  79. data/generators/crm/vendor/sugar/settings/Lead.yml +76 -0
  80. data/generators/crm/vendor/sugar/settings/Opportunity.yml +49 -0
  81. data/generators/crm/vendor/sugar/settings/settings.yml +9 -0
  82. data/generators/crm/vendor/sugar/spec/application_spec.rb +25 -0
  83. data/generators/crm/vendor/sugar/spec/sources/account_spec.rb +53 -0
  84. data/generators/crm/vendor/sugar/spec/sources/contact_spec.rb +53 -0
  85. data/generators/crm/vendor/sugar/spec/sources/lead_spec.rb +54 -0
  86. data/generators/crm/vendor/sugar/spec/sources/opportunity_spec.rb +54 -0
  87. data/generators/crm/vendor/sugar/spec_data/Account.yml +13 -0
  88. data/generators/crm/vendor/sugar/spec_data/Contact.yml +8 -0
  89. data/generators/crm/vendor/sugar/spec_data/GenericObject.yml +3 -0
  90. data/generators/crm/vendor/sugar/spec_data/Lead.yml +16 -0
  91. data/generators/crm/vendor/sugar/spec_data/Opportunity.yml +10 -0
  92. data/generators/crm/vendor/sugar/sugar.rb +33 -0
  93. data/generators/crm/vendor/sugar/templates.rb +58 -0
  94. data/generators/rhoconnect-adapters.rb +217 -0
  95. data/lib/rhoconnect-adapters/crm/crm.rb +31 -0
  96. data/lib/rhoconnect-adapters/soap_service.rb +70 -0
  97. data/lib/rhoconnect-adapters/version.rb +3 -0
  98. data/lib/rhoconnect-adapters.rb +2 -0
  99. data/rhoconnect-adapters.gemspec +36 -0
  100. data/spec/apps/ms_dynamics_spec.rb +19 -0
  101. data/spec/apps/oracle_on_demand_spec.rb +20 -0
  102. data/spec/apps/salesforce_spec.rb +18 -0
  103. data/spec/apps/sugar_spec.rb +18 -0
  104. data/spec/generator/generator_spec.rb +113 -0
  105. data/spec/spec_helper.rb +57 -0
  106. metadata +288 -0
@@ -0,0 +1,91 @@
1
+ Query_Fields:
2
+ # This is just a sample list of fields
3
+ # that are used in QueryPage
4
+ Id:
5
+ Label: Id
6
+ Type: id
7
+ AccountName:
8
+ Label: Name
9
+ Type: textinput
10
+ AccountType:
11
+ Label: Type
12
+ Type: Picklist
13
+ Priority:
14
+ Label: Priority
15
+ Type: Picklist
16
+ Status:
17
+ Label: Status
18
+ Type: Picklist
19
+ Description:
20
+ Label: Description
21
+ Type: textarea
22
+ MainPhone:
23
+ Label: Main Phone
24
+ Type: textinput
25
+ WebSite:
26
+ Label: Web Site
27
+ Type: textinput
28
+ NumberEmployees:
29
+ Label: Number Of Employees
30
+ Type: textinput
31
+ AnnualRevenues:
32
+ Label: Annual Revenues
33
+ Type: textinput
34
+ Industry:
35
+ Label: Industry
36
+ Type: Picklist
37
+ Region:
38
+ Label: Region
39
+ Type: Picklist
40
+ CallFrequency:
41
+ Label: Call Frequency
42
+ Type: Picklist
43
+ InfluenceType:
44
+ Label: Influence Type
45
+ Type: Picklist
46
+ Route:
47
+ Label: Route
48
+ Type: Picklist
49
+
50
+ NonQuery_MappingWS_Fields:
51
+ # these are the fields that are returned by Mapping WebService
52
+ # but can not be used in QueryPage
53
+ PartnerOrgStatus:
54
+ ModifiedbyEmailAddress:
55
+ CreatedbyEmailAddress:
56
+ AccountId:
57
+ OwnerPartnerName:
58
+ OwnerPartnerChannelManagerAlias:
59
+ PrincipalPartnerName:
60
+ PrincipalPartnerChannelManagerAlias:
61
+ OriginatingPartnerName:
62
+ OriginatingPartnerChannelManagerAlias:
63
+ StaticPicklist:
64
+ # these are fields that are Picklists
65
+ # but Oracle returns an error,
66
+ # so we define it manually here
67
+ Industry:
68
+ - Automotive
69
+ - Consumer Goods
70
+ - Energy
71
+ - Financial Services
72
+ - High Technology
73
+ - Insurance
74
+ - Manufacturing
75
+ - Media & Entertainment
76
+ - Medical
77
+ - Metals & Mining
78
+ - Non-profit
79
+ - Other
80
+ - Pharmaceuticals
81
+ - Public Sector
82
+ - Real Estate
83
+ - Retail
84
+ - Services
85
+ - Telecommunication
86
+ - Travel & Transportation
87
+ ObjectFields:
88
+ # these are reference fields to the other objects
89
+
90
+ TitleFields:
91
+ - AccountName
@@ -0,0 +1,54 @@
1
+ Query_Fields:
2
+ # This is just a sample list of fields
3
+ # that are used in QueryPage
4
+ Id:
5
+ Label: Id
6
+ Type: id
7
+ MrMrs:
8
+ Label: Salutation
9
+ Type: Picklist
10
+ ContactFirstName:
11
+ Label: First Name
12
+ Type: textinput
13
+ ContactLastName:
14
+ Label: Last Name
15
+ Type: textinput
16
+ ContactType:
17
+ Label: Type
18
+ Type: Picklist
19
+ ContactEmail:
20
+ Label: Email
21
+ Type: textinput
22
+ WorkPhone:
23
+ Label: Work Phone
24
+ Type: textinput
25
+ CellularPhone:
26
+ Label: Cell Phone
27
+ Type: textinput
28
+ Age:
29
+ Label: Age
30
+ Type: textinput
31
+ Description:
32
+ Label: Description
33
+ Type: textarea
34
+ AccountName:
35
+ Label: Account Name
36
+ Type: object
37
+ Object: Account
38
+
39
+ NonQuery_MappingWS_Fields:
40
+ # these are the fields that are returned by Mapping WebService
41
+ # but can not be used in QueryPage
42
+ ContactId:
43
+ ModifiedbyEmailAddress:
44
+ CreatedbyEmailAddress:
45
+ OccamTerritory:
46
+ StaticPicklist:
47
+ # these are fields that are Picklists
48
+ # but Oracle returns an error
49
+ ObjectFields:
50
+ AccountName:
51
+
52
+ TitleFields:
53
+ - ContactLastName
54
+ - ContactFirstName
@@ -0,0 +1,21 @@
1
+ Query_Fields:
2
+ # This is just a sample list of fields
3
+ # that are used in QueryPage
4
+ Id:
5
+ Label: Id
6
+ Type: id
7
+
8
+ NonQuery_MappingWS_Fields:
9
+ # these are the fields that are returned by Mapping WebService
10
+ # but can not be used in QueryPage
11
+
12
+ StaticPicklist:
13
+ # these are fields that are Picklists
14
+ # but Oracle returns an error,
15
+ # so we define it manually here
16
+
17
+ ObjectFields:
18
+ # these are reference fields to the other objects
19
+
20
+ TitleFields:
21
+ - Id
@@ -0,0 +1,72 @@
1
+ Query_Fields:
2
+ # This is just a sample list of fields
3
+ # that are used in QueryPage
4
+ Id:
5
+ Label: Id
6
+ Type: id
7
+ MrMrs:
8
+ Label: Salutation
9
+ Type: Picklist
10
+ LeadFirstName:
11
+ Label: First Name
12
+ Type: textinput
13
+ LeadLastName:
14
+ Label: Last Name
15
+ Type: textinput
16
+ AccountName:
17
+ Label: Account Name
18
+ Type: object
19
+ Object: Account
20
+ CellularPhone:
21
+ Label: Cell Phone
22
+ Type: textinput
23
+ LeadEmail:
24
+ Label: Email
25
+ Type: textinput
26
+ Company:
27
+ Label: Company
28
+ Type: textinput
29
+ JobTitle:
30
+ Label: Job Title
31
+ Type: textinput
32
+ PotentialRevenue:
33
+ Label: Potential Revenue
34
+ Type: textinput
35
+ EstimatedCloseDate:
36
+ Label: Estimated Close Date
37
+ Type: textinput
38
+ Country:
39
+ Label: Country
40
+ Type: Picklist
41
+ Province:
42
+ Label: State/Province
43
+ Type: textinput
44
+ City:
45
+ Label: City
46
+ Type: textinput
47
+ StreetAddress:
48
+ Label: Street Address
49
+ Type: textinput
50
+ NonQuery_MappingWS_Fields:
51
+ # these are the fields that are returned by Mapping WebService
52
+ # but can not be used in QueryPage
53
+ ChannelAccountManager:
54
+ ObjectiveObjectiveName:
55
+ ModifiedbyEmailAddress:
56
+ CreatedbyEmailAddress:
57
+ LastUpdated:
58
+ LeadId:
59
+ PrincipalPartnerName:
60
+ PrincipalPartnerChannelManagerAlias:
61
+ OriginatingPartnerName:
62
+ OriginatingPartnerChannelManagerAlias:
63
+ StaticPicklist:
64
+ # these are fields that are Picklists
65
+ # but Oracle returns an error
66
+ ObjectFields:
67
+ # these are reference fields to the other objects
68
+ AccountName:
69
+
70
+ TitleFields:
71
+ - LeadLastName
72
+ - LeadFirstName
@@ -0,0 +1,69 @@
1
+ Query_Fields:
2
+ # This is just a sample list of fields
3
+ # that are used in QueryPage
4
+ Id:
5
+ Label: Id
6
+ Type: id
7
+ OpportunityName:
8
+ Label: Name
9
+ Type: textinput
10
+ OpportunityType:
11
+ Label: Type
12
+ Type: Picklist
13
+ ExpectedRevenue:
14
+ Label: Expected Revenue
15
+ Type: textinput
16
+ Probability:
17
+ Label: Probability
18
+ Type: textinput
19
+ SalesStage:
20
+ Label: Sales Stage
21
+ Type: Picklist
22
+ Priority:
23
+ Label: Priority
24
+ Type: Picklist
25
+ LeadSource:
26
+ Label: Lead Source
27
+ Type: Picklist
28
+ NextStep:
29
+ Label: Next Step
30
+ Type: textarea
31
+ AccountName:
32
+ Label: Account Name
33
+ Type: object
34
+ Object: Account
35
+ NonQuery_MappingWS_Fields:
36
+ # these are the fields that are returned by Mapping WebService
37
+ # but can not be used in QueryPage
38
+ OpportunityId:
39
+ ChannelAccountManager:
40
+ ApprovedDRPartnerId:
41
+ ApprovedDRExpiresDate:
42
+ ApprovedDRId:
43
+ ModifiedByEmailAddress:
44
+ CreatedByEmailAddress:
45
+ ProgramProgramName:
46
+ PrincipalPartnerName:
47
+ ApproverAlias:
48
+ PrincipalPartnerName:
49
+ PrincipalPartnerChannelManagerAlias:
50
+ OriginatingPartnerName:
51
+ OriginatingPartnerChannelManagerAlias:
52
+ StaticPicklist:
53
+ # these are fields that are Picklists
54
+ # but Oracle returns an error,
55
+ # so we define it manually here
56
+ SalesStage:
57
+ - Qualified Lead
58
+ - Closed/Won
59
+ - Closed/Lost
60
+ - Short List
61
+ - Selected
62
+ - Negotiation
63
+ - Building Vision
64
+ ObjectFields:
65
+ # these are reference fields to the other objects
66
+ AccountName:
67
+
68
+ TitleFields:
69
+ - OpportunityName
@@ -0,0 +1,8 @@
1
+ :test:
2
+ :oraclecrm_service_url: https://secure-ausomxkwa.crmondemand.com/Services/Integration
3
+ :production:
4
+ :oraclecrm_service_url: https://secure-ausomxkwa.crmondemand.com/Services/Integration
5
+ :development:
6
+ :oraclecrm_service_url: https://secure-ausomxkwa.crmondemand.com/Services/Integration
7
+
8
+
@@ -0,0 +1,14 @@
1
+ require File.join(File.dirname(__FILE__),'spec_helper')
2
+
3
+ describe "Application" do
4
+ it_should_behave_like "SpecHelper" do
5
+ it "should authenticate" do
6
+ Application.authenticate(@test_user,@test_password,nil).should be_true
7
+ end
8
+
9
+ it "should not authenticate with wrong credentials" do
10
+ Application.should_receive(:warn).once.with(/wrong_user: #<RuntimeError: LOGIN/)
11
+ Application.authenticate('wrong_user','wrong_password',nil).should be_false
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,50 @@
1
+ require File.join(File.dirname(__FILE__),'..','spec_helper')
2
+
3
+ describe "Account" do
4
+ it_should_behave_like "SpecHelper" do
5
+ before(:each) do
6
+ sample_data_file = File.join(File.dirname(__FILE__),'..','..','vendor','oracle_on_demand','spec_data','Account.yml')
7
+ @sample_data = YAML.load_file(sample_data_file)['Account'] if sample_data_file and File.exist?(sample_data_file)
8
+ setup_test_for Account,@test_user
9
+ Application.authenticate(@test_user, @test_password,"")
10
+ end
11
+
12
+ before(:each) do
13
+ @ss.adapter.login
14
+ end
15
+
16
+ after(:each) do
17
+ @ss.adapter.logoff
18
+ end
19
+
20
+ it "should process Account query" do
21
+ result = test_query
22
+ puts result.length.inspect
23
+ query_errors.should == {}
24
+ end
25
+
26
+ it "should process Account create" do
27
+ create_hash = @sample_data
28
+ result = test_create(create_hash)
29
+ puts result.inspect
30
+ create_hash['Id'] = result
31
+ TestHelpers.created_records = { result => create_hash }
32
+ create_errors.should == {}
33
+ end
34
+
35
+ it "should process Account update" do
36
+ TestHelpers.created_records.each do |key,value|
37
+ value["AccountName"] = "Sample Update #{key.to_s}"
38
+ end
39
+ result = test_update(TestHelpers.created_records)
40
+ puts result.inspect
41
+ update_errors.should == {}
42
+ end
43
+
44
+ it "should process Account delete" do
45
+ result = test_delete(TestHelpers.created_records)
46
+ puts result.inspect
47
+ delete_errors.should == {}
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,50 @@
1
+ require File.join(File.dirname(__FILE__),'..','spec_helper')
2
+
3
+ describe "Contact" do
4
+ it_should_behave_like "SpecHelper" do
5
+ before(:each) do
6
+ sample_data_file = File.join(File.dirname(__FILE__),'..','..','vendor','oracle_on_demand','spec_data','Contact.yml')
7
+ @sample_data = YAML.load_file(sample_data_file)['Contact'] if sample_data_file and File.exist?(sample_data_file)
8
+ setup_test_for Contact,@test_user
9
+ Application.authenticate(@test_user, @test_password,"")
10
+ end
11
+
12
+ before(:each) do
13
+ @ss.adapter.login
14
+ end
15
+
16
+ after(:each) do
17
+ @ss.adapter.logoff
18
+ end
19
+
20
+ it "should process Contact query" do
21
+ result = test_query
22
+ puts result.length.inspect
23
+ query_errors.should == {}
24
+ end
25
+
26
+ it "should process Contact create" do
27
+ create_hash = @sample_data
28
+ result = test_create(create_hash)
29
+ puts result.inspect
30
+ create_hash['Id'] = result
31
+ TestHelpers.created_records = { result => create_hash }
32
+ create_errors.should == {}
33
+ end
34
+
35
+ it "should process Contact update" do
36
+ TestHelpers.created_records.each do |key,value|
37
+ value["ContactFirstName"] = "Changed Name #{key.to_s}"
38
+ end
39
+ result = test_update(TestHelpers.created_records)
40
+ puts result.inspect
41
+ update_errors.should == {}
42
+ end
43
+
44
+ it "should process Contact delete" do
45
+ result = test_delete(TestHelpers.created_records)
46
+ puts result.inspect
47
+ delete_errors.should == {}
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,51 @@
1
+ require File.join(File.dirname(__FILE__),'..','spec_helper')
2
+
3
+ describe "Lead" do
4
+ it_should_behave_like "SpecHelper" do
5
+
6
+ before(:each) do
7
+ sample_data_file = File.join(File.dirname(__FILE__),'..','..','vendor','oracle_on_demand','spec_data','Lead.yml')
8
+ @sample_data = YAML.load_file(sample_data_file)['Lead'] if sample_data_file and File.exist?(sample_data_file)
9
+ setup_test_for Lead,@test_user
10
+ Application.authenticate(@test_user, @test_password,"")
11
+ end
12
+
13
+ before(:each) do
14
+ @ss.adapter.login
15
+ end
16
+
17
+ after(:each) do
18
+ @ss.adapter.logoff
19
+ end
20
+
21
+ it "should process Lead query" do
22
+ result = test_query
23
+ puts result.length.inspect
24
+ query_errors.should == {}
25
+ end
26
+
27
+ it "should process Lead create" do
28
+ create_hash = @sample_data
29
+ result = test_create(create_hash)
30
+ puts result.inspect
31
+ create_hash['Id'] = result
32
+ TestHelpers.created_records = { result => create_hash }
33
+ create_errors.should == {}
34
+ end
35
+
36
+ it "should process Lead update" do
37
+ TestHelpers.created_records.each do |key,value|
38
+ value["LeadFirstName"] = "Changed Lead #{key.to_s}"
39
+ end
40
+ result = test_update(TestHelpers.created_records)
41
+ puts result.inspect
42
+ update_errors.should == {}
43
+ end
44
+
45
+ it "should process Lead delete" do
46
+ result = test_delete(TestHelpers.created_records)
47
+ puts result.inspect
48
+ delete_errors.should == {}
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,51 @@
1
+ require File.join(File.dirname(__FILE__),'..','spec_helper')
2
+
3
+ describe "Opportunity" do
4
+ it_should_behave_like "SpecHelper" do
5
+
6
+ before(:each) do
7
+ sample_data_file = File.join(File.dirname(__FILE__),'..','..','vendor','oracle_on_demand','spec_data','Opportunity.yml')
8
+ @sample_data = YAML.load_file(sample_data_file)['Opportunity'] if sample_data_file and File.exist?(sample_data_file)
9
+ setup_test_for Opportunity,@test_user
10
+ Application.authenticate(@test_user, @test_password,"")
11
+ end
12
+
13
+ before(:each) do
14
+ @ss.adapter.login
15
+ end
16
+
17
+ after(:each) do
18
+ @ss.adapter.logoff
19
+ end
20
+
21
+ it "should process Opportunity query" do
22
+ result = test_query
23
+ puts result.length.inspect
24
+ query_errors.should == {}
25
+ end
26
+
27
+ it "should process Opportunity create" do
28
+ create_hash = @sample_data
29
+ result = test_create(create_hash)
30
+ puts result.inspect
31
+ create_hash["Id"] = result
32
+ TestHelpers.created_records = { result => create_hash }
33
+ create_errors.should == {}
34
+ end
35
+
36
+ it "should process Opportunity update" do
37
+ TestHelpers.created_records.each do |key,value|
38
+ value["OpportunityName"] = "Changed Opportunity #{key.to_s}"
39
+ end
40
+ result = test_update(TestHelpers.created_records)
41
+ puts result.inspect
42
+ update_errors.should == {}
43
+ end
44
+
45
+ it "should process Opportunity delete" do
46
+ result = test_delete(TestHelpers.created_records)
47
+ puts result.inspect
48
+ delete_errors.should == {}
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,8 @@
1
+ Account:
2
+ AccountName: ACME Co.
3
+ AccountType: Partner
4
+ Priority: High
5
+ MainPhone: (333)-333-3333
6
+ WebSite: www.acme.com
7
+ NumberEmployees: 100
8
+ AnnualRevenues: 500000
@@ -0,0 +1,8 @@
1
+ Contact:
2
+ MrMrs: Mr.
3
+ ContactFirstName: John
4
+ ContactLastName: Smith
5
+ Age: 25
6
+ ContactEmail: john.smith@example.com
7
+ WorkPhone: (555)555-5555
8
+ CellularPhone: (555)111-1111
@@ -0,0 +1,4 @@
1
+ <%=class_name%>:
2
+ # put all of your sample data for specs here in the form of hash
3
+ # { field_name => sample_field_value }
4
+
@@ -0,0 +1,14 @@
1
+ Lead:
2
+ MrMrs: Mr.
3
+ LeadFirstName: John
4
+ LeadLastName: Smith
5
+ CellularPhone: (555)111-1111
6
+ Email: john.smith@example.com
7
+ Company: ABC Company
8
+ JobTitle: Sales Assistant
9
+ PotentialRevenue: $40000
10
+ EstimatedCloseDate: 5/15/2011
11
+ Country: USA
12
+ Province: CA
13
+ City: San Francisco
14
+ StreetAddress: 111 Market St.
@@ -0,0 +1,6 @@
1
+ Opportunity:
2
+ OpportunityName: 600 Hard Drives
3
+ ExpectedRevenue: 5000
4
+ Probability: 85%
5
+ SalesStage: Negotiation
6
+ Priority: High
@@ -0,0 +1,52 @@
1
+ # these are Oracle-specific Templater::Generator templates
2
+ module RhoconnectAdapters
3
+ module CRM
4
+ module OracleOnDemand
5
+ class << self
6
+ def configure_gemfile
7
+ # put all specific dependencies here
8
+ # in the form of hash {'gem' => 'version'}
9
+ {}
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
15
+
16
+ RhoconnectAdapters::CRMAppGenerator.add_vendor_templates :template, :settings_yml do |template,name,crm|
17
+ template.source = File.join('..','..','vendor','oracle_on_demand','settings','settings.yml')
18
+ template.destination = File.join("#{name}", 'vendor','oracle_on_demand','settings','settings.yml')
19
+ end
20
+
21
+ RhoconnectAdapters::CRMAppGenerator.add_vendor_templates :file, :application_spec do |file,name,crm|
22
+ file.source = File.join('..','..','vendor','oracle_on_demand','spec','application_spec.rb')
23
+ file.destination = File.join("#{name}", 'spec','application_spec.rb')
24
+ end
25
+
26
+ RhoconnectAdapters::CRMSourceGenerator.add_vendor_templates :file, :object_yml do |file,name,crm|
27
+ source_name = name.gsub('-', '_').camel_case
28
+ source_filename = File.join('..','..','vendor','oracle_on_demand','settings',"#{source_name}.yml")
29
+ if File.exists? File.join(CRMSourceGenerator.source_root, source_filename)
30
+ file.source = source_filename
31
+ else
32
+ file.source = File.join('..','..','vendor','oracle_on_demand','settings',"GenericObject.yml")
33
+ end
34
+ file.destination = File.join('vendor','oracle_on_demand','settings', "#{source_name}.yml")
35
+ end
36
+
37
+ RhoconnectAdapters::CRMSourceGenerator.add_vendor_templates :template, :spec_data do |template,name,crm|
38
+ source_name = name.gsub('-', '_').camel_case
39
+ source_filename = File.join('..','..','vendor','oracle_on_demand','spec_data',"#{source_name}.yml")
40
+ if File.exists? File.join(CRMSourceGenerator.source_root, source_filename)
41
+ template.source = source_filename
42
+ else
43
+ template.source = File.join('..','..','vendor','oracle_on_demand','spec_data',"GenericObject.yml")
44
+ end
45
+ template.destination = File.join('vendor','oracle_on_demand','spec_data', "#{source_name}.yml")
46
+ end
47
+
48
+
49
+
50
+
51
+
52
+