quaderno 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/README.md +1 -1
  2. data/VERSION +1 -1
  3. data/build_install.sh +2 -2
  4. data/lib/quaderno-ruby/behavior/crud.rb +7 -3
  5. data/lib/quaderno-ruby/document_item.rb +4 -0
  6. data/lib/quaderno-ruby/item.rb +6 -2
  7. data/lib/quaderno-ruby.rb +1 -1
  8. data/quaderno-1.0.0.gem +0 -0
  9. data/{quaderno-ruby.gemspec → quaderno.gemspec} +14 -6
  10. data/test/fixtures/quaderno_cassettes/all_contacts.yml +14 -12
  11. data/test/fixtures/quaderno_cassettes/all_estimates.yml +14 -10
  12. data/test/fixtures/quaderno_cassettes/all_expenses.yml +14 -10
  13. data/test/fixtures/quaderno_cassettes/all_invoices.yml +25 -10
  14. data/test/fixtures/quaderno_cassettes/all_items.yml +42 -0
  15. data/test/fixtures/quaderno_cassettes/deleted_contact.yml +75 -31
  16. data/test/fixtures/quaderno_cassettes/deleted_estimate.yml +74 -27
  17. data/test/fixtures/quaderno_cassettes/deleted_expense.yml +74 -27
  18. data/test/fixtures/quaderno_cassettes/deleted_invoice.yml +85 -28
  19. data/test/fixtures/quaderno_cassettes/deleted_item.yml +119 -0
  20. data/test/fixtures/quaderno_cassettes/delivered_estimate.yml +30 -29
  21. data/test/fixtures/quaderno_cassettes/delivered_invoice.yml +41 -29
  22. data/test/fixtures/quaderno_cassettes/found_contact.yml +22 -22
  23. data/test/fixtures/quaderno_cassettes/found_estimate.yml +24 -20
  24. data/test/fixtures/quaderno_cassettes/found_expense.yml +22 -20
  25. data/test/fixtures/quaderno_cassettes/found_invoice.yml +34 -20
  26. data/test/fixtures/quaderno_cassettes/found_item.yml +81 -0
  27. data/test/fixtures/quaderno_cassettes/new_contact.yml +10 -12
  28. data/test/fixtures/quaderno_cassettes/new_estimate.yml +63 -25
  29. data/test/fixtures/quaderno_cassettes/new_expense.yml +77 -35
  30. data/test/fixtures/quaderno_cassettes/new_invoice.yml +63 -25
  31. data/test/fixtures/quaderno_cassettes/new_item.yml +42 -0
  32. data/test/fixtures/quaderno_cassettes/paid_expense.yml +25 -23
  33. data/test/fixtures/quaderno_cassettes/paid_invoice.yml +36 -24
  34. data/test/fixtures/quaderno_cassettes/rate_limit.yml +6 -8
  35. data/test/fixtures/quaderno_cassettes/unpay_an_expense.yml +32 -30
  36. data/test/fixtures/quaderno_cassettes/unpay_an_invoice.yml +43 -30
  37. data/test/fixtures/quaderno_cassettes/updated_contact.yml +22 -22
  38. data/test/fixtures/quaderno_cassettes/updated_estimate.yml +100 -21
  39. data/test/fixtures/quaderno_cassettes/updated_expense.yml +99 -20
  40. data/test/fixtures/quaderno_cassettes/updated_invoice.yml +100 -21
  41. data/test/fixtures/quaderno_cassettes/updated_item.yml +81 -0
  42. data/test/unit/test_quaderno_contacts.rb +5 -4
  43. data/test/unit/test_quaderno_estimates.rb +37 -9
  44. data/test/unit/test_quaderno_expenses.rb +38 -14
  45. data/test/unit/test_quaderno_invoices.rb +40 -12
  46. data/test/unit/test_quaderno_items.rb +82 -0
  47. metadata +12 -4
@@ -0,0 +1,81 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://n8sDLUZ5z1d6dYXKixnx@localhost:3000/recrea/api/v1/items.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ authorization:
11
+ - Basic bjhzRExVWjV6MWQ2ZFlYS2l4bng6
12
+ response:
13
+ status:
14
+ code: 200
15
+ message: OK
16
+ headers:
17
+ x-ratelimit-limit:
18
+ - '1000'
19
+ x-ratelimit-remaining:
20
+ - '827'
21
+ content-type:
22
+ - application/json; charset=utf-8
23
+ x-ua-compatible:
24
+ - IE=Edge
25
+ etag:
26
+ - ! '"a55a5c75cee2f6b8eeca35cec8ed8fe8"'
27
+ cache-control:
28
+ - max-age=0, private, must-revalidate
29
+ x-request-id:
30
+ - f21eb3d72a6394732bef496afba7eb00
31
+ x-runtime:
32
+ - '0.141288'
33
+ connection:
34
+ - close
35
+ server:
36
+ - thin 1.5.0 codename Knife
37
+ body:
38
+ encoding: US-ASCII
39
+ string: ! '[{"id":4,"code":"00001","name":"Airdrone","unit_cost":"0.0","url":"http://localhost:3000/recrea/api/v1/items/4"},{"id":6,"code":"XXXXXXXX","name":"byAPI","unit_cost":"0.0","url":"http://localhost:3000/recrea/api/v1/items/6"},{"id":1,"code":"00001","name":"Test_OCP","unit_cost":"1.0","url":"http://localhost:3000/recrea/api/v1/items/1"},{"id":3,"code":"00001","name":"Test_OCP","unit_cost":"10.0","tax_1_name":"IVA","tax_1_rate":21.0,"tax_2_name":"IRPF","tax_2_rate":-9.0,"url":"http://localhost:3000/recrea/api/v1/items/3"},{"id":5,"code":"FF","name":"Test_OCP","unit_cost":"0.0","tax_1_name":"IVA","tax_1_rate":21.0,"tax_2_name":"IRPF","tax_2_rate":-21.0,"url":"http://localhost:3000/recrea/api/v1/items/5"},{"id":7,"code":"XXXXXXXX","name":"Test_OCP","unit_cost":"0.0","url":"http://localhost:3000/recrea/api/v1/items/7"},{"id":8,"code":"XXXXXXXX","name":"Test_OCP","unit_cost":"0.0","url":"http://localhost:3000/recrea/api/v1/items/8"},{"id":9,"code":"XXXXXXXX","name":"Test_OCP","unit_cost":"0.0","url":"http://localhost:3000/recrea/api/v1/items/9"},{"id":10,"code":"XXXXXXXX","name":"Test_OCP","unit_cost":"10.0","url":"http://localhost:3000/recrea/api/v1/items/10"},{"id":11,"code":"XXXXXXXX","name":"Test_OCP","unit_cost":"10.0","url":"http://localhost:3000/recrea/api/v1/items/11"},{"id":17,"code":"000000","name":"Test_Skynet","unit_cost":"21.0","url":"http://localhost:3000/recrea/api/v1/items/17"}]'
40
+ http_version: '1.1'
41
+ recorded_at: Tue, 14 May 2013 10:49:15 GMT
42
+ - request:
43
+ method: put
44
+ uri: http://n8sDLUZ5z1d6dYXKixnx@localhost:3000/recrea/api/v1/items/1.json
45
+ body:
46
+ encoding: US-ASCII
47
+ string: name=Test_OCP
48
+ headers:
49
+ authorization:
50
+ - Basic bjhzRExVWjV6MWQ2ZFlYS2l4bng6
51
+ response:
52
+ status:
53
+ code: 200
54
+ message: OK
55
+ headers:
56
+ x-ratelimit-limit:
57
+ - '1000'
58
+ x-ratelimit-remaining:
59
+ - '826'
60
+ content-type:
61
+ - application/json; charset=utf-8
62
+ x-ua-compatible:
63
+ - IE=Edge
64
+ etag:
65
+ - ! '"6df0b7ce66846edbad36a13a946d1e24"'
66
+ cache-control:
67
+ - max-age=0, private, must-revalidate
68
+ x-request-id:
69
+ - 0a28380e54a2b40858ca85cb7516856f
70
+ x-runtime:
71
+ - '0.090845'
72
+ connection:
73
+ - close
74
+ server:
75
+ - thin 1.5.0 codename Knife
76
+ body:
77
+ encoding: US-ASCII
78
+ string: ! '{"id":1,"code":"00001","name":"Test_OCP","unit_cost":"1.0","url":"http://localhost:3000/recrea/api/v1/items/1"}'
79
+ http_version: '1.1'
80
+ recorded_at: Tue, 14 May 2013 10:49:15 GMT
81
+ recorded_with: VCR 2.3.0
@@ -5,7 +5,7 @@ class TestQuadernoContact < Test::Unit::TestCase
5
5
 
6
6
  setup do
7
7
  Quaderno::Base.configure do |config|
8
- config.auth_token = 'xiZvifX5hwsxAiymYPk2'
8
+ config.auth_token = 'n8sDLUZ5z1d6dYXKixnx'
9
9
  config.subdomain = 'recrea'
10
10
  end
11
11
  end
@@ -13,7 +13,7 @@ class TestQuadernoContact < Test::Unit::TestCase
13
13
  should "get exception if pass wrong arguments" do
14
14
  assert_raise ArgumentError do
15
15
  VCR.use_cassette('all contacts') do
16
- Quaderno::Contact.all 1
16
+ Quaderno::Contact.all 1, 2, 3
17
17
  end
18
18
  end
19
19
  assert_raise ArgumentError do
@@ -67,11 +67,12 @@ class TestQuadernoContact < Test::Unit::TestCase
67
67
 
68
68
  should "delete a contact" do
69
69
  VCR.use_cassette('deleted contact') do
70
+ new_contact = Quaderno::Contact.create(kind: 'company', first_name: 'Z, Mazinger Z', email: 'koji@kabuto.ftw')
70
71
  contacts_before = Quaderno::Contact.all
71
- contact_id = contacts_before[10].id
72
+ contact_id = contacts_before.last.id
72
73
  Quaderno::Contact.delete contact_id
73
74
  contacts_after = Quaderno::Contact.all
74
- assert_not_equal contacts_after[10].id, contact_id
75
+ assert_not_equal contacts_after.last.id, contact_id
75
76
  end
76
77
  end
77
78
 
@@ -5,7 +5,7 @@ class TestQuadernoEstimate < Test::Unit::TestCase
5
5
 
6
6
  setup do
7
7
  Quaderno::Base.configure do |config|
8
- config.auth_token = 'xiZvifX5hwsxAiymYPk2'
8
+ config.auth_token = 'n8sDLUZ5z1d6dYXKixnx'
9
9
  config.subdomain = 'recrea'
10
10
  end
11
11
  end
@@ -13,7 +13,7 @@ class TestQuadernoEstimate < Test::Unit::TestCase
13
13
  should 'get exception if pass wrong arguments' do
14
14
  assert_raise ArgumentError do
15
15
  VCR.use_cassette('all estimates') do
16
- Quaderno::Estimate.all 1
16
+ Quaderno::Estimate.all 1, 2, 3
17
17
  end
18
18
  end
19
19
  assert_raise ArgumentError do
@@ -47,9 +47,10 @@ class TestQuadernoEstimate < Test::Unit::TestCase
47
47
  VCR.use_cassette('new estimate') do
48
48
  contacts = Quaderno::Contact.all
49
49
  estimate = Quaderno::Estimate.create(contact_id: contacts.first.id ,
50
+ number: 'test number 42',
50
51
  contact_name: contacts.first.full_name,
51
52
  currency: 'EUR',
52
- items: [
53
+ items_attributes: [
53
54
  {
54
55
  description: 'Aircraft',
55
56
  quantity: '1.0',
@@ -61,25 +62,52 @@ class TestQuadernoEstimate < Test::Unit::TestCase
61
62
  assert_kind_of Quaderno::Estimate, estimate
62
63
  assert_equal contacts.first.id, estimate.contact.id
63
64
  assert_equal 'Aircraft', estimate.items.first.description
65
+ Quaderno::Estimate.delete(estimate.id)
64
66
  end
65
67
  end
66
68
 
67
69
  should 'update an estimate' do
68
70
  VCR.use_cassette('updated estimate') do
69
- estimates = Quaderno::Estimate.all
70
- estimate = Quaderno::Estimate.update(estimates.first.id, payment_details: 'Show me the moneeeeeeeyy!!!!')
71
+ contacts = Quaderno::Contact.all
72
+ estimate = Quaderno::Estimate.create(contact_id: contacts.first.id,
73
+ number: 'test number 4400',
74
+ contact_name: contacts.first.full_name,
75
+ currency: 'EUR',
76
+ items_attributes: [
77
+ {
78
+ description: 'Aircraft',
79
+ quantity: '1.0',
80
+ unit_price: '0.0'
81
+ }
82
+ ],
83
+ tags: 'tnt', payment_details: '',
84
+ notes: '')
85
+ estimate = Quaderno::Estimate.update(estimate.id, payment_details: 'Show me the moneeeeeeeyy!!!!')
71
86
  assert_kind_of Quaderno::Estimate, estimate
72
87
  assert_equal 'Show me the moneeeeeeeyy!!!!', estimate.payment_details
88
+ Quaderno::Estimate.delete(estimate.id)
73
89
  end
74
90
  end
75
91
 
76
92
  should 'delete an estimate' do
77
93
  VCR.use_cassette('deleted estimate') do
94
+ contacts = Quaderno::Contact.all
95
+ estimate = Quaderno::Estimate.create(contact_id: contacts.first.id,
96
+ number: 'test number 4400',
97
+ contact_name: contacts.first.full_name,
98
+ currency: 'EUR',
99
+ items_attributes: [
100
+ {
101
+ description: 'Aircraft',
102
+ quantity: '1.0',
103
+ unit_price: '0.0'
104
+ }
105
+ ],
106
+ tags: 'tnt', payment_details: '',
107
+ notes: '')
108
+ Quaderno::Estimate.delete estimate.id
78
109
  estimates = Quaderno::Estimate.all
79
- estimate_id = estimates.first.id
80
- Quaderno::Estimate.delete estimate_id
81
- estimates = Quaderno::Estimate.all
82
- assert_not_equal estimates.first.id, estimate_id
110
+ assert_not_equal estimates.first.id, estimate.id
83
111
  end
84
112
  end
85
113
 
@@ -5,7 +5,7 @@ class TestQuadernoExpense < Test::Unit::TestCase
5
5
 
6
6
  setup do
7
7
  Quaderno::Base.configure do |config|
8
- config.auth_token = 'xiZvifX5hwsxAiymYPk2'
8
+ config.auth_token = 'n8sDLUZ5z1d6dYXKixnx'
9
9
  config.subdomain = 'recrea'
10
10
  end
11
11
  end
@@ -13,7 +13,7 @@ class TestQuadernoExpense < Test::Unit::TestCase
13
13
  should 'get exception if pass wrong arguments' do
14
14
  assert_raise ArgumentError do
15
15
  VCR.use_cassette('all expenses') do
16
- Quaderno::Expense.all 1
16
+ Quaderno::Expense.all 1, 2, 3
17
17
  end
18
18
  end
19
19
  assert_raise ArgumentError do
@@ -47,11 +47,10 @@ class TestQuadernoExpense < Test::Unit::TestCase
47
47
  VCR.use_cassette('new expense') do
48
48
  expenses = Quaderno::Expense.all
49
49
  contacts = Quaderno::Contact.all
50
- expense = Quaderno::Expense.create(number: "#{ expenses.length + 1 }",
51
- contact_id: contacts.first.id ,
50
+ expense = Quaderno::Expense.create(contact_id: contacts.first.id ,
52
51
  contact_name: contacts.first.full_name,
53
52
  currency: 'EUR',
54
- items: [
53
+ items_attributes: [
55
54
  {
56
55
  description: 'Aircraft',
57
56
  quantity: '1.0',
@@ -63,35 +62,60 @@ class TestQuadernoExpense < Test::Unit::TestCase
63
62
  assert_kind_of Quaderno::Expense, expense
64
63
  assert_equal contacts.first.id, expense.contact.id
65
64
  assert_equal 'Aircraft', expense.items.first.description
65
+ Quaderno::Expense.delete(expense.id)
66
66
  end
67
67
  end
68
68
 
69
69
  should 'update an expense' do
70
70
  VCR.use_cassette('updated expense') do
71
- expenses = Quaderno::Expense.all
72
- expense = Quaderno::Expense.update(expenses[2].id, currency: 'USD')
71
+ contacts = Quaderno::Contact.all
72
+ expense = Quaderno::Expense.create(contact_id: contacts.first.id ,
73
+ contact_name: contacts.first.full_name,
74
+ currency: 'EUR',
75
+ items_attributes: [
76
+ {
77
+ description: 'Aircraft',
78
+ quantity: '1.0',
79
+ unit_price: '0.0'
80
+ }
81
+ ],
82
+ tags: 'tnt', payment_details: '',
83
+ notes: '')
84
+ expense = Quaderno::Expense.update(expense.id, currency: 'USD')
73
85
  assert_kind_of Quaderno::Expense, expense
74
86
  assert_equal 'USD', expense.currency
87
+ Quaderno::Expense.delete(expense.id)
75
88
  end
76
89
  end
77
90
 
78
91
  should 'delete an expense' do
79
92
  VCR.use_cassette('deleted expense') do
93
+ contacts = Quaderno::Contact.all
94
+ expense = Quaderno::Expense.create(contact_id: contacts.first.id ,
95
+ contact_name: contacts.first.full_name,
96
+ currency: 'EUR',
97
+ items_attributes: [
98
+ {
99
+ description: 'Aircraft',
100
+ quantity: '1.0',
101
+ unit_price: '0.0'
102
+ }
103
+ ],
104
+ tags: 'tnt', payment_details: '',
105
+ notes: '')
106
+ Quaderno::Expense.delete expense.id
80
107
  expenses = Quaderno::Expense.all
81
- expense_id = expenses.first.id
82
- Quaderno::Expense.delete expense_id
83
- expenses = Quaderno::Expense.all
84
- assert_not_equal expenses.first.id, expense_id
108
+ assert_not_equal expenses.first.id, expense.id
85
109
  end
86
110
  end
87
111
 
88
112
  should 'add a payment' do
89
113
  VCR.use_cassette('paid expense') do
90
114
  expenses = Quaderno::Expense.all
91
- payment = expenses.first.add_payment(payment_method: "cash", number: "100000000")
115
+ payment = expenses.first.add_payment(payment_method: "cash", amount: "10000")
92
116
  assert_kind_of Quaderno::Payment, payment
93
117
  assert_equal "cash", payment.payment_method
94
- assert_equal "100,000,000.00", payment.amount[1..-1]
118
+ assert_equal "10,000.00", payment.amount[1..-1]
95
119
  assert_equal expenses.first.payments.last.id, payment.id
96
120
  end
97
121
  end
@@ -99,7 +123,7 @@ class TestQuadernoExpense < Test::Unit::TestCase
99
123
  should 'remove a payment' do
100
124
  VCR.use_cassette('unpay an expense') do
101
125
  expenses = Quaderno::Expense.all
102
- expenses.first.add_payment(payment_method: "cash", number: "100000000")
126
+ expenses.first.add_payment(payment_method: "cash", amount: "10000")
103
127
  payment = expenses.first.payments.last
104
128
  array_length = expenses.first.payments.length
105
129
  expenses.first.remove_payment(payment.id) unless payment.nil?
@@ -5,7 +5,7 @@ class TestQuadernoInvoice < Test::Unit::TestCase
5
5
 
6
6
  setup do
7
7
  Quaderno::Base.configure do |config|
8
- config.auth_token = 'xiZvifX5hwsxAiymYPk2'
8
+ config.auth_token = 'n8sDLUZ5z1d6dYXKixnx'
9
9
  config.subdomain = 'recrea'
10
10
  end
11
11
  end
@@ -13,7 +13,7 @@ class TestQuadernoInvoice < Test::Unit::TestCase
13
13
  should 'get exception if pass wrong arguments' do
14
14
  assert_raise ArgumentError do
15
15
  VCR.use_cassette('all invoices') do
16
- Quaderno::Invoice.all 1
16
+ Quaderno::Invoice.all 1, 2, 3
17
17
  end
18
18
  end
19
19
  assert_raise ArgumentError do
@@ -49,37 +49,65 @@ class TestQuadernoInvoice < Test::Unit::TestCase
49
49
  invoice = Quaderno::Invoice.create(contact_id: contacts[0].id ,
50
50
  contact_name: contacts[0].full_name,
51
51
  currency: 'EUR',
52
- items: [
52
+ items_attributes: [
53
53
  {
54
54
  description: 'Aircraft',
55
55
  quantity: '1.0',
56
56
  unit_price: '0.0'
57
57
  }
58
58
  ],
59
- tags: 'tnt', payment_details: '',
59
+ tags: 'tnt',
60
+ payment_details: '',
60
61
  notes: '')
61
62
  assert_kind_of Quaderno::Invoice, invoice
62
63
  assert_equal contacts[0].id, invoice.contact.id
63
64
  assert_equal 'Aircraft', invoice.items[0].description
65
+ Quaderno::Invoice.delete(invoice.id)
64
66
  end
65
67
  end
66
68
 
67
69
  should 'update an invoice' do
68
70
  VCR.use_cassette('updated invoice') do
69
- invoices = Quaderno::Invoice.all
70
- invoice = Quaderno::Invoice.update(invoices.first.id, payment_details: 'Show me the moneeeeeeeyy!!!!')
71
+ contacts = Quaderno::Contact.all
72
+ invoice = Quaderno::Invoice.create(contact_id: contacts[0].id ,
73
+ contact_name: contacts[0].full_name,
74
+ currency: 'EUR',
75
+ items_attributes: [
76
+ {
77
+ description: 'Aircraft',
78
+ quantity: '1.0',
79
+ unit_price: '0.0'
80
+ }
81
+ ],
82
+ tags: 'tnt',
83
+ payment_details: '',
84
+ notes: '')
85
+ invoice = Quaderno::Invoice.update(invoice.id, payment_details: 'Show me the moneeeeeeeyy!!!!')
71
86
  assert_kind_of Quaderno::Invoice, invoice
72
87
  assert_equal 'Show me the moneeeeeeeyy!!!!', invoice.payment_details
88
+ Quaderno::Invoice.delete(invoice.id)
73
89
  end
74
90
  end
75
91
 
76
92
  should 'delete an invoice' do
77
93
  VCR.use_cassette('deleted invoice') do
94
+ contacts = Quaderno::Contact.all
95
+ invoice = Quaderno::Invoice.create(contact_id: contacts[0].id ,
96
+ contact_name: contacts[0].full_name,
97
+ currency: 'EUR',
98
+ items_attributes: [
99
+ {
100
+ description: 'Aircraft',
101
+ quantity: '1.0',
102
+ unit_price: '0.0'
103
+ }
104
+ ],
105
+ tags: 'tnt',
106
+ payment_details: '',
107
+ notes: '')
108
+ Quaderno::Invoice.delete invoice.id
78
109
  invoices = Quaderno::Invoice.all
79
- invoice_id = invoices.first.id
80
- Quaderno::Invoice.delete invoice_id
81
- invoices = Quaderno::Invoice.all
82
- assert_not_equal invoices.first.id, invoice_id
110
+ assert_not_equal invoices.first.id, invoice.id
83
111
  end
84
112
  end
85
113
 
@@ -99,7 +127,7 @@ class TestQuadernoInvoice < Test::Unit::TestCase
99
127
  should 'add a payment' do
100
128
  VCR.use_cassette('paid invoice') do
101
129
  invoices = Quaderno::Invoice.all
102
- payment = invoices.first.add_payment(payment_method: "cash", number: "100000000")
130
+ payment = invoices.first.add_payment(payment_method: "cash", amount: "100000000")
103
131
  assert_kind_of Quaderno::Payment, payment
104
132
  assert_equal "cash", payment.payment_method
105
133
  assert_equal "100,000,000.00", payment.amount[1..-1]
@@ -110,7 +138,7 @@ class TestQuadernoInvoice < Test::Unit::TestCase
110
138
  should 'remove a payment' do
111
139
  VCR.use_cassette('unpay an invoice') do
112
140
  invoices = Quaderno::Invoice.all
113
- invoices.first.add_payment(payment_method: "cash", number: "100000000")
141
+ invoices.first.add_payment(payment_method: "cash", amount: "100000000")
114
142
  payment = invoices.first.payments.last
115
143
  array_length = invoices.first.payments.length
116
144
  invoices.first.remove_payment(payment.id) unless payment.nil?
@@ -0,0 +1,82 @@
1
+ require 'helper'
2
+
3
+ class TestQuadernoItem < Test::Unit::TestCase
4
+ context "A user with an authenticate token with items" do
5
+
6
+ setup do
7
+ Quaderno::Base.configure do |config|
8
+ config.auth_token = 'n8sDLUZ5z1d6dYXKixnx'
9
+ config.subdomain = 'recrea'
10
+ end
11
+ end
12
+
13
+ should "get exception if pass wrong arguments" do
14
+ assert_raise ArgumentError do
15
+ VCR.use_cassette('all items') do
16
+ Quaderno::Item.all 1, 2, 3
17
+ end
18
+ end
19
+ assert_raise ArgumentError do
20
+ VCR.use_cassette('found item') do
21
+ Quaderno::Item.find
22
+ end
23
+ end
24
+ end
25
+
26
+ should "get all items (populated db)" do
27
+ VCR.use_cassette('all items') do
28
+ items = Quaderno::Item.all
29
+ assert_not_nil items
30
+ assert_kind_of Array, items
31
+ items.each do |item|
32
+ assert_kind_of Quaderno::Item, item
33
+ end
34
+ end
35
+ end
36
+
37
+ should "find an item" do
38
+ VCR.use_cassette('found item') do
39
+ items = Quaderno::Item.all
40
+ item = Quaderno::Item.find items[2].id
41
+ assert_kind_of Quaderno::Item, item
42
+ assert_equal items[2].id, item.id
43
+ end
44
+ end
45
+
46
+ should "create an item" do
47
+ VCR.use_cassette('new item') do
48
+ item = Quaderno::Item.create(code: '000000', name: 'Test_Skynet', unit_cost: 21.00)
49
+ assert_kind_of Quaderno::Item, item
50
+ assert_equal '000000', item.code
51
+ assert_equal 'Test_Skynet', item.name
52
+ end
53
+ end
54
+
55
+ should "update an item" do
56
+ VCR.use_cassette('updated item') do
57
+ items = Quaderno::Item.all
58
+ item = Quaderno::Item.update(items[2].id, name: 'Test_OCP')
59
+ assert_kind_of Quaderno::Item, item
60
+ assert_equal 'Test_OCP', item.name
61
+ end
62
+ end
63
+
64
+ should "delete a item" do
65
+ VCR.use_cassette('deleted item') do
66
+ items_before = Quaderno::Item.all
67
+ item_id = items_before.last.id
68
+ Quaderno::Item.delete item_id
69
+ items_after = Quaderno::Item.all
70
+ assert_not_equal items_after.last.id, item_id
71
+ end
72
+ end
73
+
74
+ should "know the rate limit" do
75
+ VCR.use_cassette('rate limit') do
76
+ rate_limit_info = Quaderno::Base.rate_limit_info
77
+ assert_equal 1000, rate_limit_info[:limit]
78
+ assert_operator rate_limit_info[:remaining], :< ,1000
79
+ end
80
+ end
81
+ end
82
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quaderno
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-10 00:00:00.000000000 Z
12
+ date: 2013-05-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -161,31 +161,37 @@ files:
161
161
  - lib/quaderno-ruby/behavior/deliver.rb
162
162
  - lib/quaderno-ruby/behavior/payment.rb
163
163
  - lib/quaderno-ruby/contact.rb
164
+ - lib/quaderno-ruby/document_item.rb
164
165
  - lib/quaderno-ruby/estimate.rb
165
166
  - lib/quaderno-ruby/exceptions/exceptions.rb
166
167
  - lib/quaderno-ruby/expense.rb
167
168
  - lib/quaderno-ruby/invoice.rb
168
169
  - lib/quaderno-ruby/item.rb
169
170
  - lib/quaderno-ruby/payment.rb
170
- - quaderno-ruby.gemspec
171
+ - quaderno-1.0.0.gem
172
+ - quaderno.gemspec
171
173
  - test/fixtures/quaderno_cassettes/all_contacts.yml
172
174
  - test/fixtures/quaderno_cassettes/all_estimates.yml
173
175
  - test/fixtures/quaderno_cassettes/all_expenses.yml
174
176
  - test/fixtures/quaderno_cassettes/all_invoices.yml
177
+ - test/fixtures/quaderno_cassettes/all_items.yml
175
178
  - test/fixtures/quaderno_cassettes/deleted_contact.yml
176
179
  - test/fixtures/quaderno_cassettes/deleted_estimate.yml
177
180
  - test/fixtures/quaderno_cassettes/deleted_expense.yml
178
181
  - test/fixtures/quaderno_cassettes/deleted_invoice.yml
182
+ - test/fixtures/quaderno_cassettes/deleted_item.yml
179
183
  - test/fixtures/quaderno_cassettes/delivered_estimate.yml
180
184
  - test/fixtures/quaderno_cassettes/delivered_invoice.yml
181
185
  - test/fixtures/quaderno_cassettes/found_contact.yml
182
186
  - test/fixtures/quaderno_cassettes/found_estimate.yml
183
187
  - test/fixtures/quaderno_cassettes/found_expense.yml
184
188
  - test/fixtures/quaderno_cassettes/found_invoice.yml
189
+ - test/fixtures/quaderno_cassettes/found_item.yml
185
190
  - test/fixtures/quaderno_cassettes/new_contact.yml
186
191
  - test/fixtures/quaderno_cassettes/new_estimate.yml
187
192
  - test/fixtures/quaderno_cassettes/new_expense.yml
188
193
  - test/fixtures/quaderno_cassettes/new_invoice.yml
194
+ - test/fixtures/quaderno_cassettes/new_item.yml
189
195
  - test/fixtures/quaderno_cassettes/paid_expense.yml
190
196
  - test/fixtures/quaderno_cassettes/paid_invoice.yml
191
197
  - test/fixtures/quaderno_cassettes/rate_limit.yml
@@ -195,12 +201,14 @@ files:
195
201
  - test/fixtures/quaderno_cassettes/updated_estimate.yml
196
202
  - test/fixtures/quaderno_cassettes/updated_expense.yml
197
203
  - test/fixtures/quaderno_cassettes/updated_invoice.yml
204
+ - test/fixtures/quaderno_cassettes/updated_item.yml
198
205
  - test/helper.rb
199
206
  - test/test_quaderno-ruby.rb
200
207
  - test/unit/test_quaderno_contacts.rb
201
208
  - test/unit/test_quaderno_estimates.rb
202
209
  - test/unit/test_quaderno_expenses.rb
203
210
  - test/unit/test_quaderno_invoices.rb
211
+ - test/unit/test_quaderno_items.rb
204
212
  homepage: http://github.com/recrea/quaderno-ruby
205
213
  licenses:
206
214
  - MIT
@@ -216,7 +224,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
216
224
  version: '0'
217
225
  segments:
218
226
  - 0
219
- hash: 2884457760108531416
227
+ hash: 1399084077957568219
220
228
  required_rubygems_version: !ruby/object:Gem::Requirement
221
229
  none: false
222
230
  requirements: