activenetsuite 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. checksums.yaml +7 -0
  2. data/.gemtest +0 -0
  3. data/.rspec +1 -0
  4. data/CHANGELOG +0 -0
  5. data/Gemfile +4 -0
  6. data/Gemfile.lock +51 -0
  7. data/History.txt +3 -0
  8. data/Manifest.txt +60 -0
  9. data/README.rdoc +14 -0
  10. data/Rakefile +14 -0
  11. data/activenetsuite.gemspec +30 -0
  12. data/lib/activenetsuite.rb +30 -0
  13. data/lib/activenetsuite/accounting/account.rb +11 -0
  14. data/lib/activenetsuite/accounting/non_inventory_sale_item.rb +10 -0
  15. data/lib/activenetsuite/core/custom_field_list.rb +7 -0
  16. data/lib/activenetsuite/core/custom_field_ref.rb +8 -0
  17. data/lib/activenetsuite/core/deleted_record.rb +10 -0
  18. data/lib/activenetsuite/core/get_deleted_result.rb +13 -0
  19. data/lib/activenetsuite/core/record.rb +254 -0
  20. data/lib/activenetsuite/core/record_ref.rb +35 -0
  21. data/lib/activenetsuite/core/search_record.rb +97 -0
  22. data/lib/activenetsuite/core/search_result.rb +12 -0
  23. data/lib/activenetsuite/core/status.rb +50 -0
  24. data/lib/activenetsuite/helpers/client.rb +135 -0
  25. data/lib/activenetsuite/helpers/error.rb +7 -0
  26. data/lib/activenetsuite/helpers/method_inflector.rb +78 -0
  27. data/lib/activenetsuite/helpers/response_methods.rb +21 -0
  28. data/lib/activenetsuite/helpers/search_response_methods.rb +62 -0
  29. data/lib/activenetsuite/messages/add_response.rb +8 -0
  30. data/lib/activenetsuite/messages/delete_list_response.rb +19 -0
  31. data/lib/activenetsuite/messages/delete_response.rb +8 -0
  32. data/lib/activenetsuite/messages/get_deleted_response.rb +23 -0
  33. data/lib/activenetsuite/messages/get_deleted_result.rb +21 -0
  34. data/lib/activenetsuite/messages/get_response.rb +13 -0
  35. data/lib/activenetsuite/messages/read_response.rb +7 -0
  36. data/lib/activenetsuite/messages/search_more_with_id_response.rb +8 -0
  37. data/lib/activenetsuite/messages/search_response.rb +8 -0
  38. data/lib/activenetsuite/messages/update_response.rb +8 -0
  39. data/lib/activenetsuite/messages/write_response.rb +16 -0
  40. data/lib/activenetsuite/relationships/partner.rb +18 -0
  41. data/lib/activenetsuite/relationships/vendor.rb +14 -0
  42. data/lib/activenetsuite/sales/cash_refund.rb +12 -0
  43. data/lib/activenetsuite/sales/cash_sale.rb +12 -0
  44. data/lib/activenetsuite/soap/NetSuiteServiceClient.rb +978 -0
  45. data/lib/activenetsuite/soap/default.rb +68163 -0
  46. data/lib/activenetsuite/soap/defaultDriver.rb +419 -0
  47. data/lib/activenetsuite/soap/defaultMappingRegistry.rb +62549 -0
  48. data/lib/activenetsuite/version.rb +3 -0
  49. data/spec/lib/activenetsuite/accounting/non_inventory_sale_item_spec.rb +9 -0
  50. data/spec/lib/activenetsuite/core/record_ref_spec.rb +56 -0
  51. data/spec/lib/activenetsuite/core/record_spec.rb +298 -0
  52. data/spec/lib/activenetsuite/core/search_record_spec.rb +50 -0
  53. data/spec/lib/activenetsuite/core/search_result_spec.rb +26 -0
  54. data/spec/lib/activenetsuite/helpers/client_spec.rb +115 -0
  55. data/spec/lib/activenetsuite/helpers/method_inflector_spec.rb +85 -0
  56. data/spec/lib/activenetsuite/helpers/search_response_methods_spec.rb +50 -0
  57. data/spec/lib/activenetsuite/messages/search_response_spec.rb +5 -0
  58. data/spec/lib/activenetsuite/relationships/partner_spec.rb +22 -0
  59. data/spec/lib/activenetsuite/relationships/vendor_spec.rb +14 -0
  60. data/spec/lib/activenetsuite/sales/cash_refund_spec.rb +10 -0
  61. data/spec/lib/activenetsuite/sales/cash_sale_spec.rb +10 -0
  62. data/spec/spec_helper.rb +17 -0
  63. metadata +138 -0
@@ -0,0 +1,115 @@
1
+ require 'spec_helper'
2
+
3
+ describe Client do
4
+ let(:client) { Client.new }
5
+
6
+ describe Client::SearchPreferencesHeaderHandler do
7
+ subject { Client::SearchPreferencesHeaderHandler }
8
+
9
+ its(:superclass) { should eq Client::ActiveNetsuiteHeader }
10
+ it { subject::Name.should eq 'searchPreferences' }
11
+ it do
12
+ subject::DefaultPrefs.should == {
13
+ bodyFieldsOnly: false,
14
+ pageSize: 25
15
+ }
16
+ end
17
+ end
18
+
19
+ describe Client::PreferencesHeaderHandler do
20
+ subject { Client::PreferencesHeaderHandler }
21
+
22
+ its(:superclass) { should eq Client::ActiveNetsuiteHeader }
23
+ it { subject::Name.should eq 'preferences' }
24
+ it do
25
+ subject::DefaultPrefs.should == {
26
+ warningAsError: false,
27
+ ignoreReadOnlyFields: true
28
+ }
29
+ end
30
+ end
31
+
32
+ describe Client::PassportHeaderHandler do
33
+ subject { Client::PassportHeaderHandler }
34
+
35
+ its(:superclass) { should eq Client::ActiveNetsuiteHeader }
36
+ it { subject::Name.should eq 'passport' }
37
+ it do
38
+ subject::DefaultPrefs.should == {
39
+ account: '',
40
+ email: '',
41
+ password: ''
42
+ }
43
+ end
44
+ end
45
+
46
+ describe '#logger' do
47
+ subject { client.logger }
48
+ it { should be_a Logger }
49
+ end
50
+
51
+ describe '#get' do
52
+ subject { client.get ref }
53
+
54
+ let(:ref) { double }
55
+ let(:res) { double }
56
+
57
+ it do
58
+ client.driver.should_receive(:get) do |req|
59
+ req.should be_a GetRequest
60
+ req.baseRef.should eq ref
61
+ res
62
+ end
63
+ should eq res
64
+ end
65
+ end
66
+
67
+ describe '#get_all' do
68
+ subject { client.get_all refs }
69
+
70
+ let(:refs) { double }
71
+ let(:res) { double }
72
+
73
+ it do
74
+ client.driver.should_receive(:getAll) do |req|
75
+ req.should be_a GetAllRequest
76
+ req.record.should eq refs
77
+ res
78
+ end
79
+ should eq res
80
+ end
81
+ end
82
+
83
+ describe '#add' do
84
+ subject { client.add rec }
85
+
86
+ let(:rec) { double }
87
+ let(:res) { double }
88
+
89
+ it do
90
+ client.driver.should_receive(:add) do |req|
91
+ req.should be_a AddRequest
92
+ req.record.should eq rec
93
+ res
94
+ end
95
+ should eq res
96
+ end
97
+ end
98
+
99
+ describe '#add_list' do
100
+ subject { client.add_list recs }
101
+
102
+ let(:recs) { [double] }
103
+ let(:res) { double }
104
+
105
+ it do
106
+ client.driver.should_receive(:addList) do |req|
107
+ req.should be_a AddListRequest
108
+ req.should have(1).record
109
+ req.first.should eq recs.first
110
+ res
111
+ end
112
+ should eq res
113
+ end
114
+ end
115
+ end
@@ -0,0 +1,85 @@
1
+ require 'spec_helper'
2
+
3
+ describe MethodInflector do
4
+ class Model
5
+ include MethodInflector
6
+
7
+ attr_accessor :xmlattr_internalId, :xmlattr_externalId
8
+
9
+ attr_reader :fooBarBaz
10
+ attr_reader :isCool
11
+ attr_reader :customFieldList
12
+ end
13
+
14
+ let(:model) { Model.new }
15
+
16
+ describe '#method_missing' do
17
+ subject { model.method_missing method, args, block }
18
+ let(:args) { double }
19
+ let(:block) { double }
20
+ let(:result) { double }
21
+
22
+ context 'when it is one of the xmlattr_ methods' do
23
+ context 'when method is internal_id' do
24
+ let(:method) { :internal_id }
25
+ it do
26
+ model.should_receive(:xmlattr_internalId) { result }
27
+ should eq result
28
+ end
29
+ end
30
+
31
+ context 'when method is external_id' do
32
+ let(:method) { :external_id }
33
+ it do
34
+ model.should_receive(:xmlattr_externalId) { result }
35
+ should eq result
36
+ end
37
+ end
38
+
39
+ context 'when method is internal_id=' do
40
+ let(:method) { :internal_id= }
41
+ it do
42
+ model.should_receive(:xmlattr_internalId=) { result }
43
+ should eq result
44
+ end
45
+ end
46
+
47
+ context 'when method is external_id=' do
48
+ let(:method) { :external_id= }
49
+ it do
50
+ model.should_receive(:xmlattr_externalId=) { result }
51
+ should eq result
52
+ end
53
+ end
54
+ end
55
+
56
+ context 'when it is a `regular` method' do
57
+ let(:method) { :foo_bar_baz }
58
+ it do
59
+ model.should_receive(:fooBarBaz) { result }
60
+ should eq result
61
+ end
62
+ end
63
+
64
+ context 'when it is a boolean is_ method' do
65
+ let(:method) { :cool? }
66
+ it do
67
+ model.should_receive(:isCool) { result }
68
+ should eq result
69
+ end
70
+ end
71
+
72
+ context 'when it is a `special` method' do
73
+ let(:method) { :custom_fields }
74
+ it do
75
+ model.should_receive(:customFieldList) { result }
76
+ should eq result
77
+ end
78
+ end
79
+
80
+ context 'non existing method' do
81
+ let(:method) { :does_not_exist }
82
+ it { expect { subject }.to raise_error NameError }
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,50 @@
1
+ require 'spec_helper'
2
+
3
+ describe SearchResponseMethods do
4
+ class Response
5
+ include SearchResponseMethods
6
+ attr_accessor :records
7
+ end
8
+ let(:response) { Response.new }
9
+ before do
10
+ response.stub(
11
+ status: status,
12
+ result: result
13
+ )
14
+ end
15
+ let(:status) { double }
16
+ let(:result) { double }
17
+
18
+ describe '#each' do
19
+ subject { response.each }
20
+ before { response.records = [1,2,3] }
21
+ its(:to_a) { should eq [1,2,3] }
22
+ end
23
+
24
+ describe '#success?' do
25
+ subject { response.success? }
26
+ let(:status) { double xmlattr_isSuccess: true }
27
+ it { should be_true }
28
+ end
29
+
30
+ describe ":[]" do
31
+ subject { response[3] }
32
+ before { response.stub(:records) { [5,6,7,8,9] } }
33
+ it { should eq 8 }
34
+ end
35
+
36
+ describe '#next' do
37
+ subject { response.next }
38
+ before do
39
+ response.stub(:result) do
40
+ double page_index: 5
41
+ end
42
+ Record.client = double
43
+ end
44
+
45
+ it do
46
+ Record.client.should_receive(:search_next).with(response, 6)
47
+ subject
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe SearchResponse do
4
+ end
5
+
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe Partner do
4
+ let(:model) { Partner.new }
5
+ before do
6
+ model.internal_id = 123
7
+ end
8
+
9
+ describe '#vendor' do
10
+ subject { model.vendor }
11
+
12
+ it { should be_a Vendor }
13
+ its(:internal_id) { should eq 123 }
14
+ it { should be model.vendor } # memoized
15
+ end
16
+
17
+ describe '#eligible_for_commission?' do
18
+ subject { model.eligible_for_commission? }
19
+ before { model.eligible_for_commission = :yes }
20
+ it { should eq :yes }
21
+ end
22
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ describe Vendor do
4
+ let(:model) { Vendor.new }
5
+
6
+ describe '#partner' do
7
+ subject { model.partner }
8
+ before { model.internal_id = 123 }
9
+
10
+ it { should be_a Partner }
11
+ its(:internal_id) { should eq 123 }
12
+ it { should eq model.partner } # memoized
13
+ end
14
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe CashRefund do
4
+ let(:model) { CashRefund.new }
5
+
6
+ describe '.basic_search_class' do
7
+ subject { described_class.basic_search_class }
8
+ it { should be ActiveNetsuite::TransactionSearchBasic }
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe CashSale do
4
+ let(:model) { CashSale.new }
5
+
6
+ describe '.basic_search_class' do
7
+ subject { described_class.basic_search_class }
8
+ it { should be ActiveNetsuite::TransactionSearchBasic }
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ require 'simplecov'
2
+ SimpleCov.start do
3
+ add_filter do |src|
4
+ src.filename.start_with? SimpleCov.root + '/lib/ActiveNetsuite/soap/'
5
+ end
6
+ end
7
+
8
+ $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
9
+ $:.unshift File.expand_path(File.join(File.dirname(__FILE__)))
10
+ require 'activenetsuite'
11
+ require 'webmock'
12
+
13
+ include ActiveNetsuite
14
+ RSpec.configure do |config|
15
+ WebMock.disable_net_connect!
16
+ end
17
+
metadata ADDED
@@ -0,0 +1,138 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: activenetsuite
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Stan Mazhara
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-02-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rdoc
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '4.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '4.0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: hoe
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '3.8'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '3.8'
41
+ description: Netsuite Object Mapper.
42
+ email:
43
+ - akmegran@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files:
47
+ - History.txt
48
+ - Manifest.txt
49
+ - README.rdoc
50
+ files:
51
+ - .rspec
52
+ - CHANGELOG
53
+ - Gemfile
54
+ - Gemfile.lock
55
+ - History.txt
56
+ - Manifest.txt
57
+ - README.rdoc
58
+ - Rakefile
59
+ - activenetsuite.gemspec
60
+ - lib/activenetsuite.rb
61
+ - lib/activenetsuite/accounting/account.rb
62
+ - lib/activenetsuite/accounting/non_inventory_sale_item.rb
63
+ - lib/activenetsuite/core/custom_field_list.rb
64
+ - lib/activenetsuite/core/custom_field_ref.rb
65
+ - lib/activenetsuite/core/deleted_record.rb
66
+ - lib/activenetsuite/core/get_deleted_result.rb
67
+ - lib/activenetsuite/core/record.rb
68
+ - lib/activenetsuite/core/record_ref.rb
69
+ - lib/activenetsuite/core/search_record.rb
70
+ - lib/activenetsuite/core/search_result.rb
71
+ - lib/activenetsuite/core/status.rb
72
+ - lib/activenetsuite/helpers/client.rb
73
+ - lib/activenetsuite/helpers/error.rb
74
+ - lib/activenetsuite/helpers/method_inflector.rb
75
+ - lib/activenetsuite/helpers/response_methods.rb
76
+ - lib/activenetsuite/helpers/search_response_methods.rb
77
+ - lib/activenetsuite/messages/add_response.rb
78
+ - lib/activenetsuite/messages/delete_list_response.rb
79
+ - lib/activenetsuite/messages/delete_response.rb
80
+ - lib/activenetsuite/messages/get_deleted_response.rb
81
+ - lib/activenetsuite/messages/get_deleted_result.rb
82
+ - lib/activenetsuite/messages/get_response.rb
83
+ - lib/activenetsuite/messages/read_response.rb
84
+ - lib/activenetsuite/messages/search_more_with_id_response.rb
85
+ - lib/activenetsuite/messages/search_response.rb
86
+ - lib/activenetsuite/messages/update_response.rb
87
+ - lib/activenetsuite/messages/write_response.rb
88
+ - lib/activenetsuite/relationships/partner.rb
89
+ - lib/activenetsuite/relationships/vendor.rb
90
+ - lib/activenetsuite/sales/cash_refund.rb
91
+ - lib/activenetsuite/sales/cash_sale.rb
92
+ - lib/activenetsuite/soap/NetSuiteServiceClient.rb
93
+ - lib/activenetsuite/soap/default.rb
94
+ - lib/activenetsuite/soap/defaultDriver.rb
95
+ - lib/activenetsuite/soap/defaultMappingRegistry.rb
96
+ - lib/activenetsuite/version.rb
97
+ - spec/lib/activenetsuite/accounting/non_inventory_sale_item_spec.rb
98
+ - spec/lib/activenetsuite/core/record_ref_spec.rb
99
+ - spec/lib/activenetsuite/core/record_spec.rb
100
+ - spec/lib/activenetsuite/core/search_record_spec.rb
101
+ - spec/lib/activenetsuite/core/search_result_spec.rb
102
+ - spec/lib/activenetsuite/helpers/client_spec.rb
103
+ - spec/lib/activenetsuite/helpers/method_inflector_spec.rb
104
+ - spec/lib/activenetsuite/helpers/search_response_methods_spec.rb
105
+ - spec/lib/activenetsuite/messages/search_response_spec.rb
106
+ - spec/lib/activenetsuite/relationships/partner_spec.rb
107
+ - spec/lib/activenetsuite/relationships/vendor_spec.rb
108
+ - spec/lib/activenetsuite/sales/cash_refund_spec.rb
109
+ - spec/lib/activenetsuite/sales/cash_sale_spec.rb
110
+ - spec/spec_helper.rb
111
+ - .gemtest
112
+ homepage: https://github.com/smazhara/activenetsuite
113
+ licenses:
114
+ - MIT
115
+ metadata: {}
116
+ post_install_message:
117
+ rdoc_options:
118
+ - --main
119
+ - README.rdoc
120
+ require_paths:
121
+ - lib
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - '>='
125
+ - !ruby/object:Gem::Version
126
+ version: '0'
127
+ required_rubygems_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ requirements: []
133
+ rubyforge_project: activenetsuite
134
+ rubygems_version: 2.0.3
135
+ signing_key:
136
+ specification_version: 4
137
+ summary: Netsuite Object Mapper.
138
+ test_files: []