cadun 0.3.0 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/cadun/gateway.rb CHANGED
@@ -23,6 +23,7 @@ module Cadun
23
23
  elsif @options[:cadun_id]
24
24
  @options[:cadun_id]
25
25
  else
26
+ raise RuntimeError.new "not authorized" unless authorization.xpath("status").text == "AUTORIZADO"
26
27
  authorization.xpath("usuarioID").text
27
28
  end
28
29
 
@@ -34,6 +35,10 @@ module Cadun
34
35
  end
35
36
 
36
37
  def authorization_resource
38
+ [:glb_id, :ip, :service_id].each do |arg|
39
+ raise RuntimeError.new("#{arg} is missing") unless @options[arg]
40
+ end
41
+
37
42
  put "/ws/rest/autorizacao", "<usuarioAutorizado><glbId>#{@options[:glb_id]}</glbId><ip>#{@options[:ip]}</ip><servicoID>#{@options[:service_id]}</servicoID></usuarioAutorizado>"
38
43
  end
39
44
 
@@ -41,4 +46,4 @@ module Cadun
41
46
  connection.put(path, data, {'Content-Type' => 'text/xml'}).body
42
47
  end
43
48
  end
44
- end
49
+ end
data/lib/cadun/version.rb CHANGED
@@ -2,8 +2,8 @@ module Cadun
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 3
5
- TINY = 0
5
+ TINY = 3
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY] * '.'
8
8
  end
9
- end
9
+ end
data/script/console ADDED
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+
3
+ irb -r ./script/loader.rb
data/script/loader.rb ADDED
@@ -0,0 +1,3 @@
1
+ require File.expand_path("../../lib/cadun.rb", __FILE__)
2
+
3
+ Cadun::Config.load_file("#{File.dirname(__FILE__)}/../spec/support/fixtures/config.yml")
@@ -4,33 +4,70 @@ describe Cadun::Gateway do
4
4
  let(:connection) { mock }
5
5
  let(:response) { mock }
6
6
 
7
- before do
8
- load_config
9
- mock(subject).connection { connection }
10
- end
11
-
12
- subject { Cadun::Gateway.new(:glb_id => "GLB_ID", :ip => "127.0.0.1", :service_id => 2626) }
7
+ before { load_config }
13
8
 
14
9
  describe "#content" do
15
- before do
16
- mock(subject).authorization { mock(mock).xpath("usuarioID") { mock(mock).text { "1" } } }
17
- mock(response).body { "<?xml version='1.0' encoding='utf-8'?><pessoa><nome>Barack Obama</nome></pessoa>" }
18
- mock(connection).get("/cadunii/ws/resources/pessoa/1", { 'Content-Type' => 'text/xml' }) { response }
19
- end
10
+ let(:gateway) { Cadun::Gateway.new(:glb_id => "GLB_ID", :ip => "127.0.0.1", :service_id => 2626) }
20
11
 
21
- it "should parse the resource" do
22
- subject.content.xpath('nome').text.should == 'Barack Obama'
12
+ context "when status not AUTORIZADO" do
13
+ before do
14
+ mock(gateway).connection { connection }
15
+
16
+ mock(response).body { "<?xml version='1.0' encoding='utf-8'?><usuarioAutorizado><status>NAO_AUTORIZADO</status><usuarioID>1</usuarioID></usuarioAutorizado>" }
17
+ mock(connection).put("/ws/rest/autorizacao", "<usuarioAutorizado><glbId>GLB_ID</glbId><ip>127.0.0.1</ip><servicoID>2626</servicoID></usuarioAutorizado>", {'Content-Type' => 'text/xml'}) { response }
18
+ end
19
+
20
+ it { proc { gateway.content }.should raise_error(RuntimeError, "not authorized") }
21
+ end
22
+
23
+ context "when status AUTORIZADO" do
24
+ before do
25
+ mock(gateway).connection.twice { connection }
26
+
27
+ mock(response).body { "<?xml version='1.0' encoding='utf-8'?><usuarioAutorizado><status>AUTORIZADO</status><usuarioID>1</usuarioID></usuarioAutorizado>" }
28
+ mock(connection).put("/ws/rest/autorizacao", "<usuarioAutorizado><glbId>GLB_ID</glbId><ip>127.0.0.1</ip><servicoID>2626</servicoID></usuarioAutorizado>", {'Content-Type' => 'text/xml'}) { response }
29
+ mock(response).body { "<?xml version='1.0' encoding='utf-8'?><pessoa><nome>Barack Obama</nome></pessoa>" }
30
+ mock(connection).get("/cadunii/ws/resources/pessoa/1", {'Content-Type' => 'text/xml'}) { response }
31
+ end
32
+
33
+ it { proc { gateway.content }.should_not raise_error(RuntimeError, "not authorized") }
34
+
35
+ it "should parse the resource" do
36
+ gateway.content.xpath('nome').text.should == 'Barack Obama'
37
+ end
23
38
  end
24
39
  end
25
40
 
26
41
  describe "#authorization" do
27
- before do
28
- mock(response).body { "<?xml version='1.0' encoding='utf-8'?><pessoa><usuarioID>1</id></usuarioID>" }
29
- mock(connection).put("/ws/rest/autorizacao", "<usuarioAutorizado><glbId>GLB_ID</glbId><ip>127.0.0.1</ip><servicoID>2626</servicoID></usuarioAutorizado>", {'Content-Type' => 'text/xml'}) { response }
42
+ context "when all information is given" do
43
+ let(:gateway) { Cadun::Gateway.new(:glb_id => "GLB_ID", :ip => "127.0.0.1", :service_id => 2626) }
44
+
45
+ before do
46
+ mock(gateway).connection { connection }
47
+
48
+ mock(response).body { "<?xml version='1.0' encoding='utf-8'?><pessoa><usuarioID>1</id></usuarioID>" }
49
+ mock(connection).put("/ws/rest/autorizacao", "<usuarioAutorizado><glbId>GLB_ID</glbId><ip>127.0.0.1</ip><servicoID>2626</servicoID></usuarioAutorizado>", {'Content-Type' => 'text/xml'}) { response }
50
+ end
51
+
52
+ it "should parse the authorization request" do
53
+ gateway.authorization.xpath('usuarioID').text.should == '1'
54
+ end
55
+
56
+ end
57
+
58
+ context "when glb_id is not given" do
59
+ let(:gateway) { Cadun::Gateway.new }
60
+ it { proc { gateway.authorization }.should raise_error(RuntimeError, "glb_id is missing") }
61
+ end
62
+
63
+ context "when ip is not given" do
64
+ let(:gateway) { Cadun::Gateway.new(:glb_id => "1") }
65
+ it { proc { gateway.authorization }.should raise_error(RuntimeError, "ip is missing") }
30
66
  end
31
67
 
32
- it "should parse the authorization request" do
33
- subject.authorization.xpath('usuarioID').text.should == '1'
68
+ context "when service_id is not given" do
69
+ let(:gateway) { Cadun::Gateway.new(:glb_id => "1", :ip => "1") }
70
+ it { proc { gateway.authorization }.should raise_error(RuntimeError, "service_id is missing") }
34
71
  end
35
72
  end
36
- end
73
+ end
@@ -23,39 +23,22 @@ describe Cadun::User do
23
23
  end
24
24
 
25
25
  verify_method "id", "21737810"
26
-
27
26
  verify_method "name", "Fabricio Rodrigo Lopes"
28
-
29
27
  verify_method "birthday", Date.new(1983, 02, 22)
30
-
31
28
  verify_method "phone", "21 22881060"
32
-
33
29
  verify_method "mobile", "21 99999999"
34
-
35
30
  verify_method "email", "fab1@spam.la"
36
-
37
31
  verify_method "gender", "MASCULINO"
38
-
39
32
  verify_method "city", "Rio de Janeiro"
40
-
41
33
  verify_method "state", "RJ"
42
-
43
34
  verify_method "status", "ATIVO"
44
-
45
35
  verify_method "address", "Rua Uruguai, 59"
46
-
47
36
  verify_method "neighborhood", "Andaraí"
48
-
49
37
  verify_method "cpf", "09532034765"
50
-
51
38
  verify_method "login", "fabricio_fab1"
52
-
53
39
  verify_method "country", "Brasil"
54
-
55
40
  verify_method "user_type", "NAO_ASSINANTE"
56
-
57
41
  verify_method "cadun_id", "21737810"
58
-
59
42
  verify_method "complement", "807"
60
43
  end
61
44
 
@@ -85,20 +68,17 @@ describe Cadun::User do
85
68
  describe ".find_by_email" do
86
69
  context "given an email without domain" do
87
70
  subject { Cadun::User.find_by_email("silvano") }
88
-
89
71
  verify_method "id", "24510533"
90
72
  end
91
73
 
92
74
  context "given an email with domain" do
93
75
  subject { Cadun::User.find_by_email("silvano@corp.globo.com") }
94
-
95
76
  verify_method "id", "24510533"
96
77
  end
97
78
  end
98
79
 
99
80
  describe ".find_by_id" do
100
81
  subject { Cadun::User.find_by_id("10001000") }
101
-
102
82
  verify_method "id", "10001000"
103
83
  end
104
84
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: cadun
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.3.0
5
+ version: 0.3.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Bruno
@@ -12,7 +12,7 @@ autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
14
 
15
- date: 2011-05-30 00:00:00 Z
15
+ date: 2011-06-08 00:00:00 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: nokogiri
@@ -89,6 +89,8 @@ files:
89
89
  - lib/cadun/gateway.rb
90
90
  - lib/cadun/user.rb
91
91
  - lib/cadun/version.rb
92
+ - script/console
93
+ - script/loader.rb
92
94
  - spec/cadun/config_spec.rb
93
95
  - spec/cadun/gateway_spec.rb
94
96
  - spec/cadun/user_spec.rb