rhoconnect-adapters 1.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
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
+