freeagent_api 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,62 @@
1
+ require 'test_helper'
2
+
3
+ class ContactTest < Test::Unit::TestCase
4
+
5
+ fake_it_all
6
+
7
+ context "Contact class" do
8
+ should "has correct collection path" do
9
+ assert_equal '/contacts.xml', Contact.collection_path
10
+ end
11
+ should "has correct element path" do
12
+ assert_equal '/contacts/first.xml', Contact.element_path(:first)
13
+ assert_equal '/contacts/1.xml', Contact.element_path(1)
14
+ end
15
+ end
16
+
17
+ context "Contacts" do
18
+ setup do
19
+ @contacts = Contact.find :all
20
+ end
21
+ should "return an array" do
22
+ assert @contacts.is_a? Array
23
+ end
24
+ should "return Contacts" do
25
+ assert_equal 16, @contacts.size
26
+ assert @contacts.first.is_a? Contact
27
+ end
28
+ end
29
+
30
+ context "Contact" do
31
+ setup do
32
+ @contact = Contact.find 27309
33
+ end
34
+ should "return a Contact" do
35
+ assert @contact.is_a? Contact
36
+ end
37
+ should "update and save" do
38
+ @contact.last_name = 'Roberts'
39
+ assert @contact.save
40
+ end
41
+ should "be destroyed" do
42
+ assert @contact.destroy
43
+ end
44
+ end
45
+
46
+ #TODO - Add test for invalid resource
47
+ # Need support from fakeweb in order to achieve this
48
+
49
+ context "New Contact" do
50
+ setup do
51
+ params = {
52
+ :first_name => 'Fred',
53
+ :last_name => 'Bloggs'
54
+ }
55
+ @contact = Contact.new params
56
+ end
57
+ should "validate and save" do
58
+ assert @contact.save_with_validation
59
+ end
60
+ end
61
+
62
+ end
@@ -0,0 +1,66 @@
1
+ require 'test_helper'
2
+
3
+ class InvoiceItemTest < Test::Unit::TestCase
4
+
5
+ fake_it_all
6
+
7
+ context "InvoiceItem class" do
8
+ should "has correct collection path" do
9
+ assert_equal '/invoices/1000/invoice_items.xml', InvoiceItem.collection_path(:invoice_id => 1000)
10
+ end
11
+ should "has correct element path" do
12
+ assert_equal '/invoices/1000/invoice_items/first.xml', InvoiceItem.element_path(:first, :invoice_id => 1000)
13
+ assert_equal '/invoices/1000/invoice_items/1.xml', InvoiceItem.element_path(1, :invoice_id => 1000)
14
+ end
15
+ end
16
+
17
+ context "Invoice Items" do
18
+ setup do
19
+ @invoice_items = InvoiceItem.find :all, :params => {:invoice_id => 73867}
20
+ end
21
+ should "return an array" do
22
+ assert @invoice_items.is_a? Array
23
+ end
24
+ should "return Invoices" do
25
+ assert_equal 3, @invoice_items.size
26
+ assert @invoice_items.first.is_a? InvoiceItem
27
+ end
28
+ end
29
+
30
+ context "Invoice Item" do
31
+ setup do
32
+ @invoice_item = InvoiceItem.find 169399, :params => {:invoice_id => 73867}
33
+ end
34
+ should "return a Invoice Item" do
35
+ assert @invoice_item.is_a? InvoiceItem
36
+ end
37
+ should "update and save" do
38
+ @invoice_item.description = 'Create wireframe templates'
39
+ assert @invoice_item.save
40
+ end
41
+ should "be destroyed" do
42
+ assert @invoice_item.destroy
43
+ end
44
+ end
45
+
46
+ #TODO - Add test for invalid resource
47
+ # Need support from fakeweb in order to achieve this
48
+
49
+ context "New Invoice Item" do
50
+ setup do
51
+ params = {
52
+ :item_type => 'Hours',
53
+ :description => 'Create wireframe templates',
54
+ :quantity => '12',
55
+ :price => '50',
56
+ :sales_tax_rate => '15',
57
+ :invoice_id => '73867'
58
+ }
59
+ @invoice_item = InvoiceItem.new params
60
+ end
61
+ should "validate and save" do
62
+ assert @invoice_item.save_with_validation
63
+ end
64
+ end
65
+
66
+ end
@@ -0,0 +1,70 @@
1
+ require 'test_helper'
2
+
3
+ class InvoiceTest < Test::Unit::TestCase
4
+
5
+ fake_it_all
6
+
7
+ context "Invoice class" do
8
+ should "has correct collection path" do
9
+ assert_equal '/invoices.xml', Invoice.collection_path
10
+ end
11
+ should "has correct element path" do
12
+ assert_equal '/invoices/first.xml', Invoice.element_path(:first)
13
+ assert_equal '/invoices/1.xml', Invoice.element_path(1)
14
+ end
15
+ end
16
+
17
+ context "Invoices" do
18
+ setup do
19
+ @invoices = Invoice.find :all
20
+ end
21
+ should "return an array" do
22
+ assert @invoices.is_a? Array
23
+ end
24
+ should "return Invoices" do
25
+ assert_equal 7, @invoices.size
26
+ assert @invoices.first.is_a? Invoice
27
+ end
28
+ end
29
+
30
+ context "Invoice" do
31
+ setup do
32
+ @invoice = Invoice.find 73867
33
+ end
34
+ should "return a Invoice" do
35
+ assert @invoice.is_a? Invoice
36
+ end
37
+ should "update and save" do
38
+ @invoice.last_name = 'Roberts'
39
+ assert @invoice.save
40
+ end
41
+ should "be destroyed" do
42
+ assert @invoice.destroy
43
+ end
44
+ should "change status" do
45
+ assert @invoice.mark_as_draft
46
+ assert @invoice.mark_as_sent
47
+ assert @invoice.mark_as_cancelled
48
+ end
49
+ end
50
+
51
+ #TODO - Add test for invalid resource
52
+ # Need support from fakeweb in order to achieve this
53
+
54
+ context "New Invoice" do
55
+ setup do
56
+ params = {
57
+ :contact_id => '29899',
58
+ :project_id => '21445',
59
+ :dated_on => '2009-10-26T00:00:00Z',
60
+ :reference => 'INV100',
61
+ :status => 'Draft'
62
+ }
63
+ @invoice = Invoice.new params
64
+ end
65
+ should "validate and save" do
66
+ assert @invoice.save_with_validation
67
+ end
68
+ end
69
+
70
+ end
@@ -0,0 +1,106 @@
1
+ require 'test_helper'
2
+
3
+ class ProjectTest < Test::Unit::TestCase
4
+
5
+ fake_it_all
6
+
7
+ context "Project class" do
8
+ should "have correct collection path" do
9
+ assert_equal '/projects.xml', Project.collection_path
10
+ end
11
+ should "have correct element path" do
12
+ assert_equal '/projects/first.xml', Project.element_path(:first)
13
+ assert_equal '/projects/1.xml', Project.element_path(1)
14
+ end
15
+ end
16
+
17
+ context "Projects" do
18
+ setup do
19
+ @projects = Project.find :all
20
+ end
21
+ should "return an array" do
22
+ assert @projects.is_a? Array
23
+ end
24
+ should "return projects" do
25
+ assert_equal 5, @projects.size
26
+ assert @projects.first.is_a? Project
27
+ end
28
+ end
29
+
30
+ context "Project" do
31
+ setup do
32
+ @project = Project.find 17820
33
+ end
34
+ should "return a Project" do
35
+ assert @project.is_a? Project
36
+ end
37
+ should "update and save" do
38
+ @project.name = 'Rebranding project'
39
+ assert @project.save
40
+ end
41
+ should "be destroyed" do
42
+ assert @project.destroy
43
+ end
44
+ end
45
+
46
+ #TODO - Add test for invalid resource
47
+ # Need support from fakeweb in order to achieve this
48
+
49
+ context "New Project" do
50
+ setup do
51
+ params = {
52
+ :contact_id => 27309,
53
+ :name => 'Webdesign project',
54
+ :payment_terms_in_days => 30,
55
+ :billing_basis => 7.5,
56
+ :budget_units => 'Hours',
57
+ :status => 'Active'
58
+ }
59
+ @project = Project.new params
60
+ end
61
+ should "validate and save" do
62
+ assert @project.save_with_validation
63
+ end
64
+ end
65
+
66
+ context "Nested Invoices" do
67
+ setup do
68
+ @project = Project.find 17820
69
+ @invoices = @project.invoices
70
+ @invoice = @invoices.first
71
+ end
72
+ should "be Invoices" do
73
+ assert @invoices.is_a? Array
74
+ assert_equal 1, @invoices.size
75
+ assert @invoices.first.is_a? Invoice
76
+ end
77
+ should "be updateable" do
78
+ @invoice.comments = "This is a test comment"
79
+ assert @invoice.save
80
+ end
81
+ should "be deletable" do
82
+ assert @invoice.destroy
83
+ end
84
+ end
85
+
86
+ context "Nested Timeslips" do
87
+ setup do
88
+ @project = Project.find 17820
89
+ @timeslips = @project.timeslips
90
+ @timeslip = @timeslips.first
91
+ end
92
+ should "be Timeslips" do
93
+ assert @timeslips.is_a? Array
94
+ assert_equal 24, @timeslips.size
95
+ assert @timeslips.first.is_a? Timeslip
96
+ end
97
+ should "be updateable" do
98
+ @timeslip.hours = '1'
99
+ assert @timeslip.save
100
+ end
101
+ should "be deletable" do
102
+ assert @timeslip.destroy
103
+ end
104
+ end
105
+
106
+ end
@@ -0,0 +1,91 @@
1
+ HTTP/1.1 200 OK
2
+ Status: 200
3
+ Content-Type: application/xml; charset=utf-8
4
+
5
+ <?xml version="1.0" encoding="UTF-8"?>
6
+ <invoice-timeline-items type="array">
7
+ <invoice_timeline_item>
8
+ <reference>INV0024</reference>
9
+ <summary>Payment: INV0024: &#163;155.00 received</summary>
10
+ <description>Spectrum Healthcare</description>
11
+ <dated_on>2009-07%dT00:00Z</dated_on>
12
+ <amount>155.0</amount>
13
+ </invoice_timeline_item>
14
+ <invoice_timeline_item>
15
+ <reference>INV0025</reference>
16
+ <summary>Payment: INV0025: &#163;2,420.00 received</summary>
17
+ <description>The Good Folk</description>
18
+ <dated_on>2009-07%dT00:00Z</dated_on>
19
+ <amount>2420.0</amount>
20
+ </invoice_timeline_item>
21
+ <invoice_timeline_item>
22
+ <reference>INV0026</reference>
23
+ <summary>Payment: INV0026: &#163;1,000.00 received</summary>
24
+ <description>Spectrum Healthcare</description>
25
+ <dated_on>2009-08%dT00:00Z</dated_on>
26
+ <amount>1000.0</amount>
27
+ </invoice_timeline_item>
28
+ <invoice_timeline_item>
29
+ <reference>INV0027</reference>
30
+ <summary>Payment: INV0027: &#163;2,275.00 received</summary>
31
+ <description>Economic and Social Research Council</description>
32
+ <dated_on>2009-08%dT00:00Z</dated_on>
33
+ <amount>2275.0</amount>
34
+ </invoice_timeline_item>
35
+ <invoice_timeline_item>
36
+ <reference>INV0028</reference>
37
+ <summary>Payment: INV0028: &#163;80.00 received</summary>
38
+ <description>The Good Folk</description>
39
+ <dated_on>2009-08%dT00:00Z</dated_on>
40
+ <amount>80.0</amount>
41
+ </invoice_timeline_item>
42
+ <invoice_timeline_item>
43
+ <reference>INV0029</reference>
44
+ <summary>Payment: INV0029: &#163;1,012.50 received</summary>
45
+ <description>Spectrum Healthcare</description>
46
+ <dated_on>2009-09%dT00:00Z</dated_on>
47
+ <amount>1012.5</amount>
48
+ </invoice_timeline_item>
49
+ <invoice_timeline_item>
50
+ <reference>INV0031</reference>
51
+ <summary>Payment: INV0031: &#163;70.00 received</summary>
52
+ <description>Economic and Social Research Council</description>
53
+ <dated_on>2009-09%dT00:00Z</dated_on>
54
+ <amount>70.0</amount>
55
+ </invoice_timeline_item>
56
+ <invoice_timeline_item>
57
+ <reference>INV0032</reference>
58
+ <summary>Payment: INV0032: &#163;1,920.00 received</summary>
59
+ <description>icomplete</description>
60
+ <dated_on>2009-09%dT00:00Z</dated_on>
61
+ <amount>1920.0</amount>
62
+ </invoice_timeline_item>
63
+ <invoice_timeline_item>
64
+ <reference>INV0033</reference>
65
+ <summary>Payment: INV0033: &#163;3,000.00 received</summary>
66
+ <description>Inbox Digital: Shop Direct NDR Webapp</description>
67
+ <dated_on>2009-10%dT00:00Z</dated_on>
68
+ <amount>3000.0</amount>
69
+ </invoice_timeline_item>
70
+ <invoice_timeline_item>
71
+ <reference>INV0030</reference>
72
+ <summary>Due: INV0030: &#163;50.00</summary>
73
+ <description>Oxfordshire PTC</description>
74
+ <dated_on>2009-09%dT00:00Z</dated_on>
75
+ <amount>50.0</amount>
76
+ </invoice_timeline_item>
77
+ <invoice_timeline_item>
78
+ <reference>INV0034</reference>
79
+ <summary>Due: INV0034: &#163;670.00</summary>
80
+ <description>The Good Folk</description>
81
+ <dated_on>2009-10%dT00:00Z</dated_on>
82
+ <amount>670.0</amount>
83
+ </invoice_timeline_item>
84
+ <invoice_timeline_item>
85
+ <reference>INV0035</reference>
86
+ <summary>Due: INV0035: &#163;500.00</summary>
87
+ <description>ClubBuzz: ClubBuzz application design and development</description>
88
+ <dated_on>2009-10%dT00:00Z</dated_on>
89
+ <amount>500.0</amount>
90
+ </invoice_timeline_item>
91
+ </invoice-timeline-items>
@@ -0,0 +1,28 @@
1
+ HTTP/1.1 200 OK
2
+ Status: 200
3
+ Content-Type: application/xml; charset=utf-8
4
+
5
+ <?xml version="1.0" encoding="UTF-8"?>
6
+ <timeline-items type="array">
7
+ <timeline_item>
8
+ <description>Corporation Tax, year ending 05 Apr 07*</description>
9
+ <nature>Submission Due</nature>
10
+ <dated_on>Sat Apr 05 00:00:00 UTC 2008</dated_on>
11
+ <amount_due></amount_due>
12
+ <is_personal>false</is_personal>
13
+ </timeline_item>
14
+ <timeline_item>
15
+ <description>Corporation Tax, year ending 05 Apr 08*</description>
16
+ <nature>Payment Due</nature>
17
+ <dated_on>Tue Jan 06 00:00:00 UTC 2009</dated_on>
18
+ <amount_due>190.14</amount_due>
19
+ <is_personal>false</is_personal>
20
+ </timeline_item>
21
+ <timeline_item>
22
+ <description>Corporation Tax, year ending 05 Apr 08*</description>
23
+ <nature>Submission Due</nature>
24
+ <dated_on>Sun Apr 05 00:00:00 UTC 2009</dated_on>
25
+ <amount_due></amount_due>
26
+ <is_personal>false</is_personal>
27
+ </timeline_item>
28
+ </timeline-items>