dopis_online_client 0.1.0 → 0.2.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.
data/.gitignore ADDED
@@ -0,0 +1,6 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ rdoc/
6
+ coverage/
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in dopis_online_client.gemspec
4
+ gemspec
data/README.rdoc CHANGED
@@ -8,8 +8,8 @@ Vice informaci na https://online.postservis.cz/Download/DopisOnline/DopisOnline.
8
8
 
9
9
  require 'lib/dopis_online_client'
10
10
 
11
- DopisOnlineClient::Request.base_uri 'http://localhost:8000'
12
- DopisOnlineClient::Request.auth('jmeno','heslo')
11
+ DopisOnlineClient.base_uri 'https://online.postservis.cz/cmdedopis'
12
+ DopisOnlineClient.auth('jmeno','heslo')
13
13
 
14
14
  DopisOnlineClient::Request.send(
15
15
  :pdf_file_path=>"letter.pdf"
data/Rakefile CHANGED
@@ -1,65 +1,53 @@
1
- require 'rubygems'
2
- require 'rake'
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
3
3
 
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "dopis_online_client"
8
- gem.summary = %Q{Dopis Online Client Library}
9
- gem.email = "jiri.kubicek@kraxnet.cz"
10
- gem.homepage = "http://github.com/kraxnet/dopis_online_client"
11
- gem.authors = ["Jiri Kubicek"]
12
- gem.description = "Klientská knihovna pro práci se službou Dopis Online České pošty"
13
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
14
- end
15
-
16
- rescue LoadError
17
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
18
- end
4
+ task :default => :test
19
5
 
20
6
  require 'rake/testtask'
21
7
  Rake::TestTask.new(:test) do |test|
22
8
  test.libs << 'lib' << 'test'
23
- test.pattern = 'test/**/*_test.rb'
9
+ test.test_files = FileList['test/unit/*_test.rb', 'test/integration/*_test.rb']
24
10
  test.verbose = true
11
+ # test.warning = true
25
12
  end
26
13
 
27
- begin
28
- require 'rcov/rcovtask'
29
- Rcov::RcovTask.new do |test|
30
- test.libs << 'test'
31
- test.pattern = 'test/**/*_test.rb'
14
+ namespace :test do
15
+ Rake::TestTask.new(:unit) do |test|
16
+ test.libs << 'lib' << 'test'
17
+ test.pattern = 'test/unit/*_test.rb'
32
18
  test.verbose = true
33
19
  end
34
- rescue LoadError
35
- task :rcov do
36
- abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
20
+ Rake::TestTask.new(:integration) do |test|
21
+ test.libs << 'lib' << 'test'
22
+ test.pattern = 'test/integration/*_test.rb'
23
+ test.verbose = true
37
24
  end
38
25
  end
39
26
 
27
+ # Generate documentation
40
28
  begin
41
- require 'cucumber/rake/task'
42
- Cucumber::Rake::Task.new(:features)
29
+ require 'sdoc'
43
30
  rescue LoadError
44
- task :features do
45
- abort "Cucumber is not available. In order to run features, you must: sudo gem install cucumber"
46
- end
47
31
  end
48
-
49
- task :default => :test
50
-
51
32
  require 'rake/rdoctask'
52
33
  Rake::RDocTask.new do |rdoc|
53
- if File.exist?('VERSION.yml')
54
- config = YAML.load(File.read('VERSION.yml'))
55
- version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
56
- else
57
- version = ""
58
- end
59
-
60
34
  rdoc.rdoc_dir = 'rdoc'
61
- rdoc.title = "frest_client #{version}"
62
- rdoc.rdoc_files.include('README*')
35
+ rdoc.title = "Tire"
36
+ rdoc.rdoc_files.include('README.rdoc')
63
37
  rdoc.rdoc_files.include('lib/**/*.rb')
64
38
  end
65
39
 
40
+ # Generate coverage reports
41
+ begin
42
+ require 'rcov/rcovtask'
43
+ Rcov::RcovTask.new do |test|
44
+ test.libs << 'test'
45
+ test.rcov_opts = ['--exclude', 'gems/*']
46
+ test.pattern = 'test/**/*_test.rb'
47
+ test.verbose = true
48
+ end
49
+ rescue LoadError
50
+ task :rcov do
51
+ abort "RCov is not available. In order to run rcov, you must: sudo gem install rcov"
52
+ end
53
+ end
@@ -0,0 +1,36 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "dopis_online_client/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "dopis_online_client"
7
+ s.version = DopisOnlineClient::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Jiri Kubicek"]
10
+ s.email = ["jiri.kubicek@kraxnet.cz"]
11
+ s.homepage = "http://github.com/kraxnet/dopis_online_client"
12
+ s.summary = %q{Dopis Online Client Library}
13
+ s.description = %q{Klientská knihovna pro práci se službou Dopis Online České pošty}
14
+
15
+ s.rubyforge_project = "dopis_online_client"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ s.extra_rdoc_files = [ "README.rdoc", "LICENSE" ]
23
+ s.rdoc_options = [ "--charset=UTF-8" ]
24
+
25
+ s.required_rubygems_version = ">= 1.3.6"
26
+
27
+ s.add_dependency "rake", "~> 0.8.0"
28
+ s.add_dependency "bundler", "~> 1.0.0"
29
+ s.add_dependency "httmultiparty"
30
+
31
+ s.add_development_dependency "turn"
32
+ s.add_development_dependency "shoulda"
33
+ s.add_development_dependency "sdoc"
34
+ s.add_development_dependency "rcov"
35
+ s.add_development_dependency "fakeweb"
36
+ end
@@ -1,33 +1,30 @@
1
- require 'httpclient'
2
-
3
1
  module DopisOnlineClient
4
2
  class Request
5
-
3
+
4
+ include HTTMultiParty
5
+
6
6
  attr_reader :username, :password, :color, :postage_type, :payment_type, :response_format, :pdf_file
7
7
 
8
8
  def initialize(params)
9
- @username = params[:username]
10
- @password = params[:password]
11
9
  @color = params[:color] || 0 # cernobile
12
10
  @postage_type = params[:postage_type] || 66 # obycejne
13
11
  @payment_type = params[:payment_type] || 0 # fakturou
14
12
  @format = params[:format] || :xml
15
13
  @pdf_file_path = params[:pdf_file_path]
14
+ self.class.base_uri DopisOnlineClient.base_uri
16
15
  end
17
16
 
18
17
  def deliver
19
- client = HTTPClient.new
20
- client.ssl_config.verify_mode=OpenSSL::SSL::VERIFY_NONE
21
- response = client.post @@base_uri, {
22
- :user => @@username,
23
- :passwd => @@password,
18
+ response = self.class.post '/dopisonline.php', :body => {
19
+ :user => DopisOnlineClient.username,
20
+ :passwd => DopisOnlineClient.password,
24
21
  :barvatisku => @color,
25
22
  :typvyplatneho => @postage_type,
26
23
  :typuhrady => @payment_type,
27
24
  :typvystupu => @format.to_s,
28
25
  :soubor => File.new(@pdf_file_path)
29
26
  }
30
- parsed_response = parse_response(response.body.content)
27
+ parsed_response = parse_response(response.body)
31
28
  DopisOnlineClient::Response.new(parsed_response, response.body, response.code)
32
29
  end
33
30
 
@@ -44,15 +41,6 @@ module DopisOnlineClient
44
41
  def self.send(params)
45
42
  @request = new(params).deliver
46
43
  end
47
-
48
- def self.base_uri(uri)
49
- @@base_uri=uri
50
- end
51
-
52
- def self.auth(username, password)
53
- @@username=username
54
- @@password=password
55
- end
56
44
 
57
45
  end
58
46
  end
@@ -13,38 +13,50 @@ module DopisOnlineClient
13
13
  @delegate.send(name, *args, &block)
14
14
  end
15
15
 
16
+ # Byl dopis úspěšně přijat k odeslání?
16
17
  def success?
17
18
  code==200 && !has_key?("chyba") && has_key?("zakazka")
18
19
  end
19
20
 
21
+ # Jméno odeslaného souboru
20
22
  def filename
21
23
  success_result["soubor"]
22
24
  end
23
25
 
26
+ # Počet stránek
24
27
  def pages_count
25
28
  success_result["pocetstranek"].to_i
26
29
  end
27
30
 
31
+ # Kód objednávky
28
32
  def order_code
29
33
  success_result["kodobjednavky"].to_i
30
34
  end
31
35
 
36
+ # Podací číslo
32
37
  def tracking_number
33
38
  success_result["podacicislo"]
34
39
  end
35
40
 
41
+ # Datum podání
36
42
  def posting_date
37
43
  success_result["datumpodani"]
38
44
  end
39
45
 
46
+ # PSČ podací pošty
40
47
  def posting_zip
41
48
  success_result["podaciposta"]
42
49
  end
43
50
 
51
+ # Cena
44
52
  def price
45
53
  success_result["cena"]
46
54
  end
47
55
 
56
+ # Barva tisku
57
+ #
58
+ # * Barevný <tt>true</tt>
59
+ # * černobílý <tt>false</tt>
48
60
  def color
49
61
  success_result["barvatisku"]=="1"
50
62
  end
@@ -53,10 +65,12 @@ module DopisOnlineClient
53
65
  success_result["typvyplatneho"]
54
66
  end
55
67
 
68
+ # Popis chyby
56
69
  def failure_message
57
70
  failure_result["popis"]
58
71
  end
59
72
 
73
+ # Kód chyby
60
74
  def failure_code
61
75
  failure_result["kod"].to_i
62
76
  end
@@ -0,0 +1,27 @@
1
+ module DopisOnlineClient
2
+ class StatusRequest
3
+
4
+ include HTTMultiParty
5
+
6
+ attr_reader :username, :password, :color, :postage_type, :payment_type, :response_format, :pdf_file
7
+
8
+ def initialize(params)
9
+ @format = params[:format] || :xml
10
+ @tracking_number = params[:tracking_number]
11
+ @date = params[:date]
12
+ self.class.base_uri DopisOnlineClient.base_uri
13
+ end
14
+
15
+ def deliver
16
+ response = self.class.post '/eprehledZak.php', :query => {
17
+ :user => DopisOnlineClient.username,
18
+ :passwd => DopisOnlineClient.password,
19
+ :typvystupu => @format,
20
+ :zasilka => @tracking_number,
21
+ :datum => @date
22
+ }
23
+ response.body
24
+ end
25
+
26
+ end
27
+ end
@@ -0,0 +1,3 @@
1
+ module DopisOnlineClient
2
+ VERSION = "0.2.0"
3
+ end
@@ -1,12 +1,27 @@
1
- begin
2
- require 'rubygems'
3
- gem 'crack'
4
- require 'crack'
5
- # raise LoadError, "You must have crack installed"
6
- end
1
+ require 'httmultiparty'
2
+
3
+ require 'dopis_online_client/request'
4
+ require 'dopis_online_client/response'
5
+ require 'dopis_online_client/status_request'
7
6
 
8
7
  module DopisOnlineClient
8
+
9
+ def self.base_uri(path=nil)
10
+ path ? @base_uri = path : @base_uri
11
+ end
12
+
13
+ def self.auth(username, password)
14
+ @username=username
15
+ @password=password
16
+ end
17
+
18
+ def self.username
19
+ @username
20
+ end
21
+
22
+ def self.password
23
+ @password
24
+ end
25
+
9
26
  end
10
27
 
11
- require File.dirname(__FILE__) + '/dopis_online_client/request.rb'
12
- require File.dirname(__FILE__) + '/dopis_online_client/response.rb'
File without changes
@@ -0,0 +1,35 @@
1
+ <dopisonline>
2
+ <zakazka id="20110521067226">
3
+ <podacicislo type="string">neni</podacicislo>
4
+ <pocetstranek type="integer">1</pocetstranek>
5
+ <datumpodani type="datetime">2011-05-21 15:13:57</datumpodani>
6
+ <cena mena="CZK" type="decimal">12.60</cena>
7
+ <barvatisku type="integer">0</barvatisku>
8
+ <platba type="integer">0</platba>
9
+ <typvyplatneho type="integer">66</typvyplatneho>
10
+ <zpracovani type="integer">50</zpracovani>
11
+ <stav type="integer">0</stav>
12
+ </zakazka>
13
+ <zakazka id="20110521067227">
14
+ <podacicislo type="string">neni</podacicislo>
15
+ <pocetstranek type="integer">1</pocetstranek>
16
+ <datumpodani type="datetime">2011-05-21 15:14:25</datumpodani>
17
+ <cena mena="CZK" type="decimal">12.60</cena>
18
+ <barvatisku type="integer">0</barvatisku>
19
+ <platba type="integer">0</platba>
20
+ <typvyplatneho type="integer">66</typvyplatneho>
21
+ <zpracovani type="integer">50</zpracovani>
22
+ <stav type="integer">0</stav>
23
+ </zakazka>
24
+ <zakazka id="20110521067228">
25
+ <podacicislo type="string">neni</podacicislo>
26
+ <pocetstranek type="integer">1</pocetstranek>
27
+ <datumpodani type="datetime">2011-05-21 15:15:41</datumpodani>
28
+ <cena mena="CZK" type="decimal">12.60</cena>
29
+ <barvatisku type="integer">0</barvatisku>
30
+ <platba type="integer">0</platba>
31
+ <typvyplatneho type="integer">66</typvyplatneho>
32
+ <zpracovani type="integer">50</zpracovani>
33
+ <stav type="integer">0</stav>
34
+ </zakazka>
35
+ </dopisonline>
data/test/test_helper.rb CHANGED
@@ -1,11 +1,10 @@
1
1
  require 'rubygems'
2
2
  require 'test/unit'
3
3
  require 'shoulda'
4
- require 'matchy'
4
+ require 'turn' unless ENV["TM_FILEPATH"]
5
5
 
6
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
- $LOAD_PATH.unshift(File.dirname(__FILE__))
8
6
  require 'dopis_online_client'
9
7
 
10
- class Test::Unit::TestCase
11
- end
8
+ require "fakeweb"
9
+
10
+ FakeWeb.allow_net_connect = false
@@ -0,0 +1,26 @@
1
+ require 'test_helper'
2
+
3
+ module DopisOnlineClient
4
+ class DopisOnlineClientTest < Test::Unit::TestCase
5
+
6
+ context "Client" do
7
+ setup do
8
+ DopisOnlineClient.base_uri 'http://mujdopisonline.cz/odeslat'
9
+ DopisOnlineClient.auth("mojejmeno", "mojeheslo")
10
+ end
11
+
12
+ should "have base_url set" do
13
+ assert_equal "http://mujdopisonline.cz/odeslat", DopisOnlineClient.base_uri
14
+ end
15
+
16
+ should "have username set" do
17
+ assert_equal "mojejmeno", DopisOnlineClient.username
18
+ end
19
+
20
+ should "have password set" do
21
+ assert_equal "mojeheslo", DopisOnlineClient.password
22
+ end
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,23 @@
1
+ require 'test_helper'
2
+
3
+ module DopisOnlineClient
4
+ class RequestTest < Test::Unit::TestCase
5
+
6
+ context "Request#deliver" do
7
+
8
+ setup do
9
+ FakeWeb.register_uri(:post, "https://online3.postservis.cz/cmdedopis/dopisonline.php", :body => File.read(File.join(File.dirname(__FILE__),'../fixtures/success.xml')))
10
+
11
+ DopisOnlineClient.base_uri 'https://online3.postservis.cz/cmdedopis'
12
+ DopisOnlineClient.auth('jmeno','heslo')
13
+ @response = DopisOnlineClient::Request.new(:pdf_file_path=>File.join(File.dirname(__FILE__),'../fixtures/letter.pdf')).deliver
14
+ end
15
+
16
+ should "return DopisOnlineClient::Response" do
17
+ assert_equal true, @response.kind_of?(DopisOnlineClient::Response)
18
+ end
19
+
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,41 @@
1
+ require 'test_helper'
2
+
3
+ module DopisOnlineClient
4
+ class ResponseTest < Test::Unit::TestCase
5
+
6
+ should "parse success correctly" do
7
+ response = load_response_from_file("success.xml")
8
+
9
+ assert_equal 200, response.code
10
+ assert_equal true, response.success?
11
+
12
+ assert_equal 0, response.failure_code
13
+ assert_nil response.failure_message
14
+
15
+ assert_equal "testing.pdf", response.filename
16
+ assert_equal 1, response.pages_count
17
+ assert_equal 20090608050001, response.order_code
18
+ assert_equal "", response.tracking_number
19
+ # assert_equal Date.parse("2009-06-08"), response.success_result["datumpodani"]
20
+ assert_not_nil response.price
21
+ assert_equal false, response.color
22
+ assert_equal 67, response.shipping_method
23
+ end
24
+
25
+ should "parse failure correctly" do
26
+ response = load_response_from_file("failure.xml")
27
+
28
+ assert_equal 200, response.code
29
+ assert_equal false, response.success?
30
+ assert_equal 8, response.failure_code
31
+ assert_not_nil response.failure_message
32
+ end
33
+
34
+ def load_response_from_file(filename)
35
+ body = File.read(File.join(File.dirname(__FILE__),'../fixtures',filename))
36
+ parsed_response = Crack::XML.parse(body)
37
+ DopisOnlineClient::Response.new(parsed_response, body, 200)
38
+ end
39
+
40
+ end
41
+ end
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ module DopisOnlineClient
4
+ class StatusRequestTest < Test::Unit::TestCase
5
+
6
+ context "Request#deliver" do
7
+
8
+ setup do
9
+ FakeWeb.register_uri(:post, "https://online3.postservis.cz/cmdedopis/eprehledZak.php", :body => File.read(File.join(File.dirname(__FILE__),'../fixtures/status.xml')))
10
+ DopisOnlineClient.base_uri 'https://online3.postservis.cz/cmdedopis'
11
+ DopisOnlineClient.auth('jmeno','heslo')
12
+ @response = DopisOnlineClient::StatusRequest.new(:date=>"20110521").deliver
13
+ end
14
+
15
+ should "return response" do
16
+ assert_not_nil @response
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dopis_online_client
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
8
+ - 2
9
9
  - 0
10
- version: 0.1.0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jiri Kubicek
@@ -15,31 +15,156 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2009-09-30 00:00:00 +02:00
18
+ date: 2011-05-21 00:00:00 +02:00
19
19
  default_executable:
20
- dependencies: []
21
-
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rake
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 63
30
+ segments:
31
+ - 0
32
+ - 8
33
+ - 0
34
+ version: 0.8.0
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: bundler
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ hash: 23
46
+ segments:
47
+ - 1
48
+ - 0
49
+ - 0
50
+ version: 1.0.0
51
+ type: :runtime
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: httmultiparty
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 3
62
+ segments:
63
+ - 0
64
+ version: "0"
65
+ type: :runtime
66
+ version_requirements: *id003
67
+ - !ruby/object:Gem::Dependency
68
+ name: turn
69
+ prerelease: false
70
+ requirement: &id004 !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ hash: 3
76
+ segments:
77
+ - 0
78
+ version: "0"
79
+ type: :development
80
+ version_requirements: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ name: shoulda
83
+ prerelease: false
84
+ requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
93
+ type: :development
94
+ version_requirements: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ name: sdoc
97
+ prerelease: false
98
+ requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ hash: 3
104
+ segments:
105
+ - 0
106
+ version: "0"
107
+ type: :development
108
+ version_requirements: *id006
109
+ - !ruby/object:Gem::Dependency
110
+ name: rcov
111
+ prerelease: false
112
+ requirement: &id007 !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ hash: 3
118
+ segments:
119
+ - 0
120
+ version: "0"
121
+ type: :development
122
+ version_requirements: *id007
123
+ - !ruby/object:Gem::Dependency
124
+ name: fakeweb
125
+ prerelease: false
126
+ requirement: &id008 !ruby/object:Gem::Requirement
127
+ none: false
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ hash: 3
132
+ segments:
133
+ - 0
134
+ version: "0"
135
+ type: :development
136
+ version_requirements: *id008
22
137
  description: "Klientsk\xC3\xA1 knihovna pro pr\xC3\xA1ci se slu\xC5\xBEbou Dopis Online \xC4\x8Cesk\xC3\xA9 po\xC5\xA1ty"
23
- email: jiri.kubicek@kraxnet.cz
138
+ email:
139
+ - jiri.kubicek@kraxnet.cz
24
140
  executables: []
25
141
 
26
142
  extensions: []
27
143
 
28
144
  extra_rdoc_files:
29
- - LICENSE
30
145
  - README.rdoc
146
+ - LICENSE
31
147
  files:
148
+ - .gitignore
149
+ - Gemfile
32
150
  - LICENSE
33
151
  - README.rdoc
34
152
  - Rakefile
35
- - VERSION
153
+ - dopis_online_client.gemspec
36
154
  - lib/dopis_online_client.rb
37
155
  - lib/dopis_online_client/request.rb
38
156
  - lib/dopis_online_client/response.rb
39
- - test/dopis_online_response_test.rb
157
+ - lib/dopis_online_client/status_request.rb
158
+ - lib/dopis_online_client/version.rb
40
159
  - test/fixtures/failure.xml
160
+ - test/fixtures/letter.pdf
161
+ - test/fixtures/status.xml
41
162
  - test/fixtures/success.xml
42
163
  - test/test_helper.rb
164
+ - test/unit/dopis_online_client_test.rb
165
+ - test/unit/request_test.rb
166
+ - test/unit/response_test.rb
167
+ - test/unit/status_request_test.rb
43
168
  has_rdoc: true
44
169
  homepage: http://github.com/kraxnet/dopis_online_client
45
170
  licenses: []
@@ -63,17 +188,26 @@ required_rubygems_version: !ruby/object:Gem::Requirement
63
188
  requirements:
64
189
  - - ">="
65
190
  - !ruby/object:Gem::Version
66
- hash: 3
191
+ hash: 23
67
192
  segments:
68
- - 0
69
- version: "0"
193
+ - 1
194
+ - 3
195
+ - 6
196
+ version: 1.3.6
70
197
  requirements: []
71
198
 
72
- rubyforge_project:
199
+ rubyforge_project: dopis_online_client
73
200
  rubygems_version: 1.6.2
74
201
  signing_key:
75
202
  specification_version: 3
76
203
  summary: Dopis Online Client Library
77
204
  test_files:
78
- - test/dopis_online_response_test.rb
205
+ - test/fixtures/failure.xml
206
+ - test/fixtures/letter.pdf
207
+ - test/fixtures/status.xml
208
+ - test/fixtures/success.xml
79
209
  - test/test_helper.rb
210
+ - test/unit/dopis_online_client_test.rb
211
+ - test/unit/request_test.rb
212
+ - test/unit/response_test.rb
213
+ - test/unit/status_request_test.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 0.1.0
@@ -1,38 +0,0 @@
1
- require 'test_helper'
2
-
3
- class DopisOnlineResponseTest < Test::Unit::TestCase
4
-
5
- should "parse success correctly" do
6
- response = load_response_from_file("success.xml")
7
-
8
- response.code.should == 200
9
- response.success?.should == true
10
-
11
- response.failure_code.should == 0
12
- response.failure_message.should == nil
13
-
14
- response.filename.should == "testing.pdf"
15
- response.pages_count.should == 1
16
- response.order_code.should == 20090608050001
17
- response.tracking_number.should == ""
18
- response.datumpodani.should == Date.parse("2009-06-08")
19
- response.price.should_not == nil
20
- response.color.should == false
21
- response.shipping_method.should == 67
22
- end
23
-
24
- should "parse failure correctly" do
25
- response = load_response_from_file("failure.xml")
26
-
27
- response.code.should == 200
28
- response.success?.should == false
29
- response.failure_code.should == 8
30
- response.failure_message.should_not == nil
31
- end
32
-
33
- def load_response_from_file(filename)
34
- body = File.read(File.join(File.dirname(__FILE__),'fixtures',filename))
35
- parsed_response = Crack::XML.parse(body)
36
- DopisOnlineClient::Response.new(parsed_response, body, 200)
37
- end
38
- end