axiomus_api 0.5 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4985a26f843b94c45d279f4ef559d020c331b08f
4
- data.tar.gz: 2f5540a9db4576d29180baaedfd0fd1fa9eedc2d
3
+ metadata.gz: 50bd78448890d4337232f0593a2cbe90dabe7f76
4
+ data.tar.gz: 325644e61718e860092725ac7dcd9f78e9497186
5
5
  SHA512:
6
- metadata.gz: d9e05e9f5fe0b42853b6e51a7023b45d169a11367f5dd73ea3970b88564e5bfc3df07eecb4136a390dfcef3a83f6c2758842fe550f1da4a160fdc967b97046e7
7
- data.tar.gz: 8c7033b6789cb9ffe8e265fe29dd5524e0e56f43df1278b77dac3ddf9792b606f4c3edb220853c73700bb4c8a03f19281e4311743b93b51593eb058bb495c6bc
6
+ metadata.gz: c30d1fc0199217f475d7c8baff0e711b4df9727d75a972c80798a4d8fe7b59385197d8e4dc6378c786d2e8f5dbb0e43c49bfc94527c889ca55fad9e771fb48ce
7
+ data.tar.gz: d5d2d4afb48b2bf91afdc115111ed61846b3d762e6ac4d82545f9c18d38c3f71cf303455534c538e45d91ac18c0cea4de498b4e4512b8020268019c04fc9fd49
data/.travis.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.0
3
+ - 2.1.2
4
4
  - 1.9.3
5
5
  install: "bundle install --path vendor/bundle"
6
6
  cache:
data/Gemfile CHANGED
@@ -4,6 +4,7 @@ gemspec
4
4
 
5
5
  group :test do
6
6
  gem 'rspec'
7
+ gem 'rspec-collection_matchers'
7
8
  gem 'coveralls', require: false
8
9
  gem 'factory_girl', '~> 4.0'
9
10
  gem 'faker'
data/Gemfile.lock CHANGED
@@ -15,7 +15,7 @@ GEM
15
15
  minitest (~> 5.1)
16
16
  thread_safe (~> 0.1)
17
17
  tzinfo (~> 1.1)
18
- barby (0.5.1)
18
+ barby (0.6.1)
19
19
  chunky_png (1.3.1)
20
20
  coveralls (0.7.0)
21
21
  multi_json (~> 1.3)
@@ -24,29 +24,35 @@ GEM
24
24
  term-ansicolor
25
25
  thor
26
26
  diff-lcs (1.2.5)
27
- docile (1.1.3)
27
+ docile (1.1.5)
28
28
  factory_girl (4.4.0)
29
29
  activesupport (>= 3.0.0)
30
30
  faker (1.3.0)
31
31
  i18n (~> 0.5)
32
32
  i18n (0.6.9)
33
33
  json (1.8.1)
34
- mime-types (2.2)
34
+ mime-types (2.3)
35
35
  mini_portile (0.6.0)
36
- minitest (5.3.4)
37
- multi_json (1.10.0)
36
+ minitest (5.3.5)
37
+ multi_json (1.10.1)
38
38
  nokogiri (1.6.2.1)
39
39
  mini_portile (= 0.6.0)
40
40
  rest-client (1.6.7)
41
41
  mime-types (>= 1.16)
42
- rspec (2.14.1)
43
- rspec-core (~> 2.14.0)
44
- rspec-expectations (~> 2.14.0)
45
- rspec-mocks (~> 2.14.0)
46
- rspec-core (2.14.8)
47
- rspec-expectations (2.14.5)
48
- diff-lcs (>= 1.1.3, < 2.0)
49
- rspec-mocks (2.14.6)
42
+ rspec (3.0.0)
43
+ rspec-core (~> 3.0.0)
44
+ rspec-expectations (~> 3.0.0)
45
+ rspec-mocks (~> 3.0.0)
46
+ rspec-collection_matchers (1.0.0)
47
+ rspec-expectations (>= 2.99.0.beta1)
48
+ rspec-core (3.0.1)
49
+ rspec-support (~> 3.0.0)
50
+ rspec-expectations (3.0.1)
51
+ diff-lcs (>= 1.2.0, < 2.0)
52
+ rspec-support (~> 3.0.0)
53
+ rspec-mocks (3.0.1)
54
+ rspec-support (~> 3.0.0)
55
+ rspec-support (3.0.0)
50
56
  simplecov (0.8.2)
51
57
  docile (~> 1.1.0)
52
58
  multi_json
@@ -55,9 +61,9 @@ GEM
55
61
  term-ansicolor (1.3.0)
56
62
  tins (~> 1.0)
57
63
  thor (0.19.1)
58
- thread_safe (0.3.3)
64
+ thread_safe (0.3.4)
59
65
  tins (1.3.0)
60
- tzinfo (1.1.0)
66
+ tzinfo (1.2.1)
61
67
  thread_safe (~> 0.1)
62
68
 
63
69
  PLATFORMS
@@ -69,3 +75,4 @@ DEPENDENCIES
69
75
  factory_girl (~> 4.0)
70
76
  faker
71
77
  rspec
78
+ rspec-collection_matchers
@@ -76,7 +76,11 @@
76
76
  <div class="d9"><b><i><%= label.weight.round(1) %></i></b><span class="cu"> кг</span></div>
77
77
  <div class="d5"><%= label.type %></div>
78
78
  <div class="d6"><%= label.city %></div>
79
- <div class="d7"><%= label.place %>/<%= label.places %></div>
79
+ <div class="d7">
80
+ <% if label.place && label.places %>
81
+ <%= label.place %>/<%= label.places %>
82
+ <% end %>
83
+ </div>
80
84
  </div>
81
85
  </div>
82
86
  <% end %>
@@ -1,3 +1,3 @@
1
1
  module AxiomusApi
2
- VERSION = '0.5'
2
+ VERSION = '0.5.1'
3
3
  end
data/spec/factories.rb CHANGED
@@ -273,4 +273,9 @@ FactoryGirl.define do
273
273
  city {['Мск', 'СПб'][rand(0..1)]}
274
274
  end
275
275
 
276
+ factory :label_without_places, parent: :label do
277
+ place nil
278
+ places nil
279
+ end
280
+
276
281
  end
@@ -1,26 +1,23 @@
1
1
  require_relative '../../spec_helper'
2
2
 
3
- describe 'AxiomusApi::Base' do
3
+ describe AxiomusApi::Base do
4
4
 
5
5
  it 'should raise on wrong xml options' do
6
6
  expect do
7
- class C < AxiomusApi::Base
7
+ class C < described_class
8
8
  xml_field :some_field, unknown_option: 21
9
9
  end
10
10
  end.to raise_error
11
11
  end
12
12
 
13
13
  it 'should raise if no tag name' do
14
-
15
- class C < AxiomusApi::Base
14
+ class C < described_class
16
15
  xml_field :value
17
16
  end
18
17
 
19
18
  c = C.new
20
19
  c.value = '32'
21
-
22
20
  expect{c.tag_name}.to raise_error
23
-
24
21
  end
25
22
 
26
23
  end
@@ -1,6 +1,6 @@
1
1
  require_relative '../../spec_helper'
2
2
 
3
- describe 'AxiomusApi::Delivset' do
3
+ describe AxiomusApi::Delivset do
4
4
 
5
5
  it 'should create below element' do
6
6
  delivset = build(:delivset)
@@ -1,6 +1,6 @@
1
1
  require_relative '../../spec_helper'
2
2
 
3
- describe 'AxiomusApi::Label' do
3
+ describe AxiomusApi::Label do
4
4
  it 'should generate barcode' do
5
5
  @label = build(:label)
6
6
  expect{barcode = @label_barcode64}.not_to raise_error
@@ -8,11 +8,17 @@ describe 'AxiomusApi::Label' do
8
8
 
9
9
  it 'should render single label' do
10
10
  @label = build(:label)
11
- expect{html = AxiomusApi::Label.render(@label)}.not_to raise_error
11
+ expect{html = described_class.render(@label)}.not_to raise_error
12
12
  end
13
13
 
14
14
  it 'should render multiple labels' do
15
15
  @labels = (1..10).map{build(:label)}
16
- expect{html = AxiomusApi::Label.render(@labels)}.not_to raise_error
16
+ expect{html = described_class.render(@labels)}.not_to raise_error
17
17
  end
18
+
19
+ it 'renders label without places' do
20
+ @label = build(:label_without_places)
21
+ expect{html = described_class.render(@label)}.not_to raise_error
22
+ end
23
+
18
24
  end
@@ -1,24 +1,24 @@
1
1
  require_relative '../../../spec_helper'
2
2
 
3
- describe 'AxiomusApi::BaseOrder' do
3
+ describe AxiomusApi::BaseOrder do
4
4
 
5
5
  it 'should build order by mode' do
6
6
  ORDER_MODES.each do |mode|
7
- order = AxiomusApi::BaseOrder.create_by_mode(mode)
7
+ order = described_class.create_by_mode(mode)
8
8
  end
9
9
  end
10
10
 
11
11
  it 'should create item' do
12
12
  ORDER_MODES.each do |mode|
13
- order = AxiomusApi::BaseOrder.create_by_mode(mode)
13
+ order = described_class.create_by_mode(mode)
14
14
  item = order.items.add_item
15
15
  item.quantity = 21
16
16
  expect(order.items.item.first.quantity).to eq(21)
17
17
 
18
18
  if [:new_export, :update_export, :new_self_export, :update_self_export].include?(mode)
19
- expect(item.is_a?(AxiomusApi::ExportItem)).to be_true
19
+ expect(item.is_a?(AxiomusApi::ExportItem)).to be_truthy
20
20
  else
21
- expect(item.is_a?(AxiomusApi::Item)).to be_true
21
+ expect(item.is_a?(AxiomusApi::Item)).to be_truthy
22
22
  end
23
23
  end
24
24
  end
@@ -1,6 +1,6 @@
1
1
  require_relative '../../spec_helper'
2
2
 
3
- describe 'AxiomusApi::Serializable' do
3
+ describe AxiomusApi::Serializable do
4
4
 
5
5
  it 'should serialize value as text node' do
6
6
 
@@ -1,24 +1,36 @@
1
1
  require_relative '../../spec_helper'
2
2
 
3
- describe 'AxiomusApi::Session' do
3
+ describe AxiomusApi::Session do
4
4
  before(:all) do
5
5
  AxiomusApi.logger.level = Logger::UNKNOWN
6
6
 
7
7
  @session = AxiomusApi.test_session
8
8
  end
9
9
 
10
+ def enqueue_response(response_body, code = '200', msg='OK')
11
+ @responses ||= []
12
+ @responses.push([response_body, code, msg])
13
+
14
+ allow_any_instance_of(Net::HTTP).to receive(:request) do |req|
15
+ next_response = @responses.shift
16
+ response = Net::HTTPResponse.new(1.0, next_response[1], next_response[2])
17
+ allow(response).to receive(:body) {next_response[0]}
18
+ response
19
+ end
20
+ end
21
+
10
22
  ORDER_MODES.each do |method|
11
23
  order_class = order_factory_name(method)
12
24
 
13
25
  describe "##{method}" do
14
26
  it 'should handle successful request' do
15
- HttpMocking.enqueue_response(DummyData.order_success_response(method))
27
+ enqueue_response(DummyData.order_success_response(method))
16
28
  response = @session.send(method, build(order_class))
17
29
  expect(response.code).to eq 0
18
30
  end
19
31
 
20
32
  it 'should raise on error' do
21
- HttpMocking.enqueue_response(DummyData.order_error_response(method))
33
+ enqueue_response(DummyData.order_error_response(method))
22
34
  expect{@session.send(method, build(order_class))}.to raise_error(AxiomusApi::Errors::RequestError)
23
35
  end
24
36
  end
@@ -26,7 +38,7 @@ describe 'AxiomusApi::Session' do
26
38
 
27
39
  describe '#get_regions' do
28
40
  it 'should handle successfull request' do
29
- HttpMocking.enqueue_response(DummyData::REGIONS_SUCCESS_RESPONSE)
41
+ enqueue_response(DummyData::REGIONS_SUCCESS_RESPONSE)
30
42
  z = @session.get_regions()
31
43
  expect(z.regions.count).to eq 1
32
44
  expect(z.regions.first.code).to eq '21'
@@ -35,7 +47,7 @@ describe 'AxiomusApi::Session' do
35
47
 
36
48
  describe '#status' do
37
49
  it 'should handle successfull request' do
38
- HttpMocking.enqueue_response(DummyData::STATUS_SUCCESS_RESPONSE)
50
+ enqueue_response(DummyData::STATUS_SUCCESS_RESPONSE)
39
51
  z = @session.status('2e3023c3e78f4f0c8cbb81257743c2d7')
40
52
  expect(z.order.id).to eq('1013')
41
53
  expect(z.order.inner_id).to eq('16777')
@@ -48,21 +60,21 @@ describe 'AxiomusApi::Session' do
48
60
 
49
61
  describe '#status_list' do
50
62
  it 'should handle successfull request' do
51
- HttpMocking.enqueue_response(DummyData::STATUS_LIST_SUCCESS_RESPONSE)
63
+ enqueue_response(DummyData::STATUS_LIST_SUCCESS_RESPONSE)
52
64
  z = @session.status_list(['7bbf66349060b723bba20ef687ee4ebf', 'f2c2635a00310d39cf26b7cc1db6fab2'])
53
65
  end
54
66
  end
55
67
 
56
68
  describe '#get_version' do
57
69
  it 'should handle successfull request' do
58
- HttpMocking.enqueue_response(DummyData::GET_VERSION_SUCCESS_RESPONSE)
70
+ enqueue_response(DummyData::GET_VERSION_SUCCESS_RESPONSE)
59
71
  z = @session.get_version
60
72
  expect(z).to eq('2.12')
61
73
  end
62
74
  end
63
75
 
64
76
  it 'should accept a block' do
65
- HttpMocking.enqueue_response(DummyData::REGIONS_SUCCESS_RESPONSE)
77
+ enqueue_response(DummyData::REGIONS_SUCCESS_RESPONSE)
66
78
  res = nil
67
79
 
68
80
  AxiomusApi.test_session do |s|
@@ -76,7 +88,7 @@ describe 'AxiomusApi::Session' do
76
88
  describe '#send_order_request' do
77
89
  it 'should raise on invalid order' do
78
90
  order = build(:dpd_order, :without_address)
79
- HttpMocking.enqueue_response(DummyData.order_success_response(:new_dpd))
91
+ enqueue_response(DummyData.order_success_response(:new_dpd))
80
92
  expect{@session.send_order_request(:new_dpd, order)}.to raise_error(AxiomusApi::Errors::ValidationError)
81
93
  end
82
94
  end
@@ -1,36 +1,36 @@
1
1
  require_relative '../../spec_helper'
2
2
 
3
- describe 'AxiomusApi::Validated' do
3
+ describe AxiomusApi::Validated do
4
4
 
5
5
  it 'should validate required fields' do
6
6
  address = build(:dpd_address, :without_region)
7
7
  expect(address).not_to be_valid
8
- expect(address.validation_errors).to have(1).items
8
+ expect(address.validation_errors).to have_exactly(1).items
9
9
  end
10
10
 
11
11
  it 'should validate empty fields' do
12
12
  order = build(:order, :with_empty_address)
13
13
  expect(order).not_to be_valid
14
- expect(order.validation_errors).to have(1).items
14
+ expect(order.validation_errors).to have_exactly(1).items
15
15
  end
16
16
 
17
17
  it 'should validate wrong type fields' do
18
18
  order = build(:post_order, :with_region_services)
19
19
  expect(order).not_to be_valid
20
- expect(order.validation_errors).to have(1).items
20
+ expect(order.validation_errors).to have_exactly(1).items
21
21
  end
22
22
 
23
23
  it 'should validate nested fields' do
24
24
  order = build(:dpd_order)
25
25
  order.address.region = nil
26
26
  expect(order).not_to be_valid
27
- expect(order.validation_errors).to have(1).items
27
+ expect(order.validation_errors).to have_exactly(1).items
28
28
  end
29
29
 
30
30
  it 'should validate correct items' do
31
31
  order = build(:post_order)
32
32
  expect(order).to be_valid
33
- expect(order.validation_errors).to have(0).items
33
+ expect(order.validation_errors).to have_exactly(0).items
34
34
  end
35
35
 
36
36
  it 'should validate array items' do
@@ -41,7 +41,7 @@ describe 'AxiomusApi::Validated' do
41
41
  order.delivset.above_sum = 12
42
42
  order.delivset.above_price = 12
43
43
  expect(order).not_to be_valid
44
- expect(order.validation_errors).to have(1).items
44
+ expect(order.validation_errors).to have_exactly(1).items
45
45
  end
46
46
 
47
47
  it 'should validate max occurs' do
@@ -56,7 +56,7 @@ describe 'AxiomusApi::Validated' do
56
56
  end
57
57
 
58
58
  expect(order).not_to be_valid
59
- expect(order.validation_errors).to have(1).items
59
+ expect(order.validation_errors).to have_exactly(1).items
60
60
  end
61
61
 
62
62
  it 'should validate optional arrays' do
@@ -1,7 +1,7 @@
1
1
  require_relative '../spec_helper'
2
2
 
3
- describe 'AxiomusApi' do
3
+ describe AxiomusApi do
4
4
  it 'should assign logger' do
5
- AxiomusApi.logger = Logger.new($stdout)
5
+ described_class.logger = Logger.new($stdout)
6
6
  end
7
7
  end
data/spec/spec_helper.rb CHANGED
@@ -1,10 +1,11 @@
1
1
  require 'coveralls'
2
2
  Coveralls.wear!
3
-
3
+ require 'rspec/collection_matchers'
4
4
  require 'factory_girl'
5
5
 
6
6
  RSpec.configure do |config|
7
7
  config.include FactoryGirl::Syntax::Methods
8
+ config.mock_with :rspec
8
9
  end
9
10
 
10
11
  ORDER_MODES = [:new, :update, :new_carry, :update_carry, :new_export, :update_export,
@@ -24,5 +25,4 @@ end
24
25
 
25
26
  require_relative '../lib/axiomus_api.rb'
26
27
  require_relative 'support/dummy_data.rb'
27
- require_relative 'support/http_mocking.rb'
28
28
  require_relative 'factories.rb'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: axiomus_api
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.5'
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kinderly LTD
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-19 00:00:00.000000000 Z
11
+ date: 2014-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -120,7 +120,7 @@ files:
120
120
  - spec/factories.rb
121
121
  - spec/integration/lib/axiomus_api/session_spec.rb
122
122
  - spec/lib/axiomus_api/base_spec.rb
123
- - spec/lib/axiomus_api/delivest_spec.rb
123
+ - spec/lib/axiomus_api/delivset_spec.rb
124
124
  - spec/lib/axiomus_api/label_spec.rb
125
125
  - spec/lib/axiomus_api/order/base_order_spec.rb
126
126
  - spec/lib/axiomus_api/serializable_spec.rb
@@ -129,7 +129,6 @@ files:
129
129
  - spec/lib/axiomus_api_spec.rb
130
130
  - spec/spec_helper.rb
131
131
  - spec/support/dummy_data.rb
132
- - spec/support/http_mocking.rb
133
132
  homepage: https://github.com/kinderly/axiomus_api
134
133
  licenses:
135
134
  - MIT
@@ -1,17 +0,0 @@
1
- require 'net/http'
2
-
3
- module HttpMocking
4
-
5
- def self.enqueue_response(response_body, code = '200', msg='OK')
6
- @responses ||= []
7
- @responses.push([response_body, code, msg])
8
-
9
- Net::HTTP.any_instance.stub(:request) do |req|
10
- next_response = @responses.shift
11
- response = Net::HTTPResponse.new(1.0, next_response[1], next_response[2])
12
- response.stub(:body => next_response[0])
13
- response
14
- end
15
- end
16
-
17
- end