fishbowl 0.0.1 → 1.0.2

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.
Files changed (177) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +9 -4
  4. data/Gemfile +9 -2
  5. data/Guardfile +13 -0
  6. data/README.md +25 -5
  7. data/fishbowl.gemspec +5 -5
  8. data/lib/fishbowl/configuration.rb +9 -0
  9. data/lib/fishbowl/connection.rb +100 -0
  10. data/lib/fishbowl/errors.rb +18 -8
  11. data/lib/fishbowl/ext.rb +15 -0
  12. data/lib/fishbowl/objects/account.rb +8 -12
  13. data/lib/fishbowl/objects/address.rb +86 -0
  14. data/lib/fishbowl/objects/base_object.rb +42 -9
  15. data/lib/fishbowl/objects/carrier.rb +15 -0
  16. data/lib/fishbowl/objects/carton.rb +54 -0
  17. data/lib/fishbowl/objects/uom.rb +47 -0
  18. data/lib/fishbowl/objects/user.rb +15 -0
  19. data/lib/fishbowl/objects.rb +5 -0
  20. data/lib/fishbowl/requests/add_inventory.rb +34 -0
  21. data/lib/fishbowl/requests/add_sales_order_item.rb +42 -0
  22. data/lib/fishbowl/requests/adjust_inventory.rb +28 -0
  23. data/lib/fishbowl/requests/get_account_balance.rb +15 -0
  24. data/lib/fishbowl/requests/get_account_list.rb +13 -0
  25. data/lib/fishbowl/requests/get_carrier_list.rb +14 -0
  26. data/lib/fishbowl/requests/get_customer_list.rb +12 -0
  27. data/lib/fishbowl/requests/get_customer_name_list.rb +12 -0
  28. data/lib/fishbowl/requests/get_export_list.rb +12 -0
  29. data/lib/fishbowl/requests/get_import_list.rb +12 -0
  30. data/lib/fishbowl/requests/get_location_group_list.rb +12 -0
  31. data/lib/fishbowl/requests/get_location_list.rb +12 -0
  32. data/lib/fishbowl/requests/get_product.rb +18 -0
  33. data/lib/fishbowl/requests/get_product_price.rb +21 -0
  34. data/lib/fishbowl/requests/get_uom_list.rb +12 -0
  35. data/lib/fishbowl/requests/get_vendor_list.rb +12 -0
  36. data/lib/fishbowl/requests/get_vendor_name_list.rb +12 -0
  37. data/lib/fishbowl/requests/get_work_order_list.rb +12 -0
  38. data/lib/fishbowl/requests/inventory_quantity.rb +17 -0
  39. data/lib/fishbowl/requests/load_sales_order.rb +21 -0
  40. data/lib/fishbowl/requests/make_payment.rb +32 -0
  41. data/lib/fishbowl/requests/save_sales_order.rb +86 -0
  42. data/lib/fishbowl/requests/total_inventory.rb +18 -0
  43. data/lib/fishbowl/requests/void_sales_order.rb +18 -0
  44. data/lib/fishbowl/requests.rb +5 -0
  45. data/lib/fishbowl/version.rb +1 -1
  46. data/lib/fishbowl.rb +12 -95
  47. data/lib/status_codes.yml +183 -0
  48. data/spec/connection_spec.rb +99 -99
  49. data/spec/errors_spec.rb +11 -9
  50. data/spec/examples/account.xml +6 -0
  51. data/spec/examples/address.xml +30 -0
  52. data/spec/examples/carrier.xml +3 -0
  53. data/spec/examples/carton.xml +93 -0
  54. data/spec/examples/contact_information.xml +5 -0
  55. data/spec/examples/contacts.xml +7 -0
  56. data/spec/examples/credit_card.xml +10 -0
  57. data/spec/examples/customer.xml +54 -0
  58. data/spec/examples/location.xml +14 -0
  59. data/spec/examples/location_group.xml +5 -0
  60. data/spec/examples/location_group_string.xml +1 -0
  61. data/spec/examples/order_history.xml +8 -0
  62. data/spec/examples/part.xml +105 -0
  63. data/spec/examples/payment.xml +6 -0
  64. data/spec/examples/pick.xml +265 -0
  65. data/spec/examples/pick_item.xml +236 -0
  66. data/spec/examples/product.xml +159 -0
  67. data/spec/examples/purchase_order.xml +53 -0
  68. data/spec/examples/receipt.xml +146 -0
  69. data/spec/examples/report.xml +10 -0
  70. data/spec/examples/report_tree.xml +7 -0
  71. data/spec/examples/sales_order.xml +47 -0
  72. data/spec/examples/sales_order_item.xml +32 -0
  73. data/spec/examples/shipping.xml +127 -0
  74. data/spec/examples/tag.xml +28 -0
  75. data/spec/examples/tax_rate.xml +10 -0
  76. data/spec/examples/tracking.xml +14 -0
  77. data/spec/examples/tracking_item.xml +12 -0
  78. data/spec/examples/transfer_order.xml +257 -0
  79. data/spec/examples/transfer_order_item.xml +147 -0
  80. data/spec/examples/uom.xml +26 -0
  81. data/spec/examples/uom_conversion.xml +8 -0
  82. data/spec/examples/user.xml +8 -0
  83. data/spec/examples/vendor.xml +19 -0
  84. data/spec/examples/vendor_part_number.xml +3 -0
  85. data/spec/examples/work_order.xml +228 -0
  86. data/spec/examples/work_order_item.xml +172 -0
  87. data/spec/objects/account_spec.rb +33 -27
  88. data/spec/objects/address_information_spec.rb +18 -0
  89. data/spec/objects/address_spec.rb +36 -0
  90. data/spec/objects/base_object_spec.rb +67 -23
  91. data/spec/objects/carrier_spec.rb +15 -0
  92. data/spec/objects/carton_spec.rb +23 -0
  93. data/spec/objects/country_spec.rb +16 -0
  94. data/spec/objects/shipping_item_spec.rb +21 -0
  95. data/spec/objects/state_spec.rb +17 -0
  96. data/spec/objects/uom_conversion_spec.rb +20 -0
  97. data/spec/objects/uom_spec.rb +20 -0
  98. data/spec/objects/user_spec.rb +20 -0
  99. data/spec/requests/add_inventory_spec.rb +79 -0
  100. data/spec/requests/add_sales_order_item_spec.rb +85 -0
  101. data/spec/requests/adjust_inventory_spec.rb +62 -0
  102. data/spec/requests/calculate_sales_order_spec.rb +48 -0
  103. data/spec/requests/close_short_sales_order_spec.rb +45 -0
  104. data/spec/requests/cycle_count_spec.rb +49 -0
  105. data/spec/requests/delete_sales_order_spec.rb +45 -0
  106. data/spec/requests/export_spec.rb +45 -0
  107. data/spec/requests/get_account_balance_spec.rb +52 -0
  108. data/spec/requests/get_account_list_spec.rb +51 -0
  109. data/spec/requests/get_carrier_list_spec.rb +54 -0
  110. data/spec/requests/get_customer_list_spec.rb +51 -0
  111. data/spec/requests/get_customer_name_list_spec.rb +45 -0
  112. data/spec/requests/get_customer_spec.rb +45 -0
  113. data/spec/requests/get_export_list_spec.rb +45 -0
  114. data/spec/requests/get_import_list_spec.rb +45 -0
  115. data/spec/requests/get_inventory_quantity_spec.rb +65 -0
  116. data/spec/requests/get_light_part_list_spec.rb +51 -0
  117. data/spec/requests/get_location_group_list_spec.rb +45 -0
  118. data/spec/requests/get_location_list_spec.rb +45 -0
  119. data/spec/requests/get_next_number_spec.rb +45 -0
  120. data/spec/requests/get_part_cost_spec.rb +45 -0
  121. data/spec/requests/get_part_information_spec.rb +45 -0
  122. data/spec/requests/get_part_list_spec.rb +65 -0
  123. data/spec/requests/get_pick_spec.rb +45 -0
  124. data/spec/requests/get_product_information_spec.rb +46 -0
  125. data/spec/requests/get_purchase_order_list_spec.rb +45 -0
  126. data/spec/requests/get_receipt_spec.rb +49 -0
  127. data/spec/requests/get_receiving_list_spec.rb +49 -0
  128. data/spec/requests/get_sales_order_list_spec.rb +49 -0
  129. data/spec/requests/get_ship_list_spec.rb +49 -0
  130. data/spec/requests/get_ship_now_list_spec.rb +48 -0
  131. data/spec/requests/get_shipment_spec.rb +45 -0
  132. data/spec/requests/get_system_property_spec.rb +45 -0
  133. data/spec/requests/get_total_inventory_spec.rb +46 -0
  134. data/spec/requests/get_transfer_order_list_spec.rb +45 -0
  135. data/spec/requests/get_uom_list_spec.rb +45 -0
  136. data/spec/requests/get_user_property_spec.rb +45 -0
  137. data/spec/requests/get_vendor_list_spec.rb +45 -0
  138. data/spec/requests/get_vendor_name_list_spec.rb +45 -0
  139. data/spec/requests/get_vendor_spec.rb +48 -0
  140. data/spec/requests/get_work_order_list_spec.rb +45 -0
  141. data/spec/requests/get_work_order_spec.rb +45 -0
  142. data/spec/requests/import_spec.rb +49 -0
  143. data/spec/requests/issues_sales_order_spec.rb +45 -0
  144. data/spec/requests/load_sales_order_spec.rb +45 -0
  145. data/spec/requests/load_transfer_order_spec.rb +45 -0
  146. data/spec/requests/location_query_spec.rb +49 -0
  147. data/spec/requests/make_payment_spec.rb +50 -0
  148. data/spec/requests/move_spec.rb +49 -0
  149. data/spec/requests/part_query_spec.rb +46 -0
  150. data/spec/requests/pick_query_spec.rb +49 -0
  151. data/spec/requests/print_report_spec.rb +48 -0
  152. data/spec/requests/product_query_spec.rb +46 -0
  153. data/spec/requests/quick_ship_spec.rb +45 -0
  154. data/spec/requests/quickbooks_export_spec.rb +43 -0
  155. data/spec/requests/save_customer_spec.rb +48 -0
  156. data/spec/requests/save_discount_spec.rb +48 -0
  157. data/spec/requests/save_pick_spec.rb +48 -0
  158. data/spec/requests/save_purchase_order_spec.rb +48 -0
  159. data/spec/requests/save_receipt_spec.rb +48 -0
  160. data/spec/requests/save_report_spec.rb +49 -0
  161. data/spec/requests/save_sales_order_spec.rb +48 -0
  162. data/spec/requests/save_shipment_spec.rb +48 -0
  163. data/spec/requests/save_tax_rate_spec.rb +48 -0
  164. data/spec/requests/save_transfer_order_spec.rb +48 -0
  165. data/spec/requests/save_upc_spec.rb +48 -0
  166. data/spec/requests/save_vendor_spec.rb +48 -0
  167. data/spec/requests/save_work_order_spec.rb +48 -0
  168. data/spec/requests/set_default_part_location_spec.rb +48 -0
  169. data/spec/requests/set_system_property_spec.rb +48 -0
  170. data/spec/requests/set_user_property_spec.rb +48 -0
  171. data/spec/requests/ship_spec.rb +48 -0
  172. data/spec/requests/void_sales_order_spec.rb +43 -0
  173. data/spec/spec_helper.rb +48 -16
  174. data/spec/support/examples_loader.rb +5 -0
  175. data/spec/support/response_mocks.rb +27 -0
  176. metadata +304 -35
  177. data/spec/support/fake_login.rb +0 -15
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fishbowl::Requests do
4
+ describe "#save_transfer_order" do
5
+ before :each do
6
+ mock_tcp_connection
7
+ mock_login_response
8
+ Fishbowl::Connection.connect(host: 'localhost')
9
+ Fishbowl::Connection.login(username: 'johndoe', password: 'secret')
10
+ end
11
+
12
+ let(:connection) { FakeTCPSocket.instance }
13
+ let(:mock_transfer_order) {
14
+ #TODO mock a TransferOrder
15
+ }
16
+
17
+ it "sends proper request" do
18
+ mock_the_response(expected_response)
19
+ Fishbowl::Requests.save_transfer_order(mock_transfer_order)
20
+ connection.last_write.should be_equivalent_to(expected_request)
21
+ end
22
+
23
+ def expected_request
24
+ request = Nokogiri::XML::Builder.new do |xml|
25
+ xml.FbiXml {
26
+ xml.Ticket
27
+ xml.FbiMsgsRq {
28
+ xml.TransferOrderSaveRq {
29
+ #TODO figure out what goes here!
30
+ }
31
+ }
32
+ }
33
+ end
34
+
35
+ request.to_xml
36
+ end
37
+
38
+ def expected_response
39
+ Nokogiri::XML::Builder.new do |xml|
40
+ xml.response {
41
+ xml.TransferOrderSaveRs(statusCode: '1000', statusMessage: "Success!") {
42
+ #TODO figure out what goes here!
43
+ }
44
+ }
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fishbowl::Requests do
4
+ describe "#save_upc" do
5
+ before :each do
6
+ mock_tcp_connection
7
+ mock_login_response
8
+ Fishbowl::Connection.connect(host: 'localhost')
9
+ Fishbowl::Connection.login(username: 'johndoe', password: 'secret')
10
+ end
11
+
12
+ let(:connection) { FakeTCPSocket.instance }
13
+ let(:valid_options) {
14
+ #TODO figure out valid options
15
+ }
16
+
17
+ it "sends proper request" do
18
+ mock_the_response(expected_response)
19
+ Fishbowl::Requests.save_upc(valid_options)
20
+ connection.last_write.should be_equivalent_to(expected_request)
21
+ end
22
+
23
+ def expected_request
24
+ request = Nokogiri::XML::Builder.new do |xml|
25
+ xml.FbiXml {
26
+ xml.Ticket
27
+ xml.FbiMsgsRq {
28
+ xml.SaveUPCRq {
29
+ #TODO figure out what goes here!
30
+ }
31
+ }
32
+ }
33
+ end
34
+
35
+ request.to_xml
36
+ end
37
+
38
+ def expected_response
39
+ Nokogiri::XML::Builder.new do |xml|
40
+ xml.response {
41
+ xml.SaveUPCRs(statusCode: '1000', statusMessage: "Success!") {
42
+ #TODO figure out what goes here!
43
+ }
44
+ }
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fishbowl::Requests do
4
+ describe "#save_transfer_order" do
5
+ before :each do
6
+ mock_tcp_connection
7
+ mock_login_response
8
+ Fishbowl::Connection.connect(host: 'localhost')
9
+ Fishbowl::Connection.login(username: 'johndoe', password: 'secret')
10
+ end
11
+
12
+ let(:connection) { FakeTCPSocket.instance }
13
+ let(:mock_vendor) {
14
+ #TODO mock a Vendor
15
+ }
16
+
17
+ it "sends proper request" do
18
+ mock_the_response(expected_response)
19
+ Fishbowl::Requests.save_vendor(mock_vendor)
20
+ connection.last_write.should be_equivalent_to(expected_request)
21
+ end
22
+
23
+ def expected_request
24
+ request = Nokogiri::XML::Builder.new do |xml|
25
+ xml.FbiXml {
26
+ xml.Ticket
27
+ xml.FbiMsgsRq {
28
+ xml.VendorSaveRq {
29
+ #TODO figure out what goes here!
30
+ }
31
+ }
32
+ }
33
+ end
34
+
35
+ request.to_xml
36
+ end
37
+
38
+ def expected_response
39
+ Nokogiri::XML::Builder.new do |xml|
40
+ xml.response {
41
+ xml.VendorSaveRs(statusCode: '1000', statusMessage: "Success!") {
42
+ #TODO figure out what goes here!
43
+ }
44
+ }
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fishbowl::Requests do
4
+ describe "#save_work_order" do
5
+ before :each do
6
+ mock_tcp_connection
7
+ mock_login_response
8
+ Fishbowl::Connection.connect(host: 'localhost')
9
+ Fishbowl::Connection.login(username: 'johndoe', password: 'secret')
10
+ end
11
+
12
+ let(:connection) { FakeTCPSocket.instance }
13
+ let(:mock_work_order) {
14
+ #TODO mock a WorkOrder
15
+ }
16
+
17
+ it "sends proper request" do
18
+ mock_the_response(expected_response)
19
+ Fishbowl::Requests.save_work_order(mock_work_order)
20
+ connection.last_write.should be_equivalent_to(expected_request)
21
+ end
22
+
23
+ def expected_request
24
+ request = Nokogiri::XML::Builder.new do |xml|
25
+ xml.FbiXml {
26
+ xml.Ticket
27
+ xml.FbiMsgsRq {
28
+ xml.SaveWorkOrderRq {
29
+ #TODO mock a WorkOrder object
30
+ }
31
+ }
32
+ }
33
+ end
34
+
35
+ request.to_xml
36
+ end
37
+
38
+ def expected_response
39
+ Nokogiri::XML::Builder.new do |xml|
40
+ xml.response {
41
+ xml.SaveWorkOrderRs(statusCode: '1000', statusMessage: "Success!") {
42
+ #TODO figure out what goes here!
43
+ }
44
+ }
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fishbowl::Requests do
4
+ describe "#set_default_part_location" do
5
+ before :each do
6
+ mock_tcp_connection
7
+ mock_login_response
8
+ Fishbowl::Connection.connect(host: 'localhost')
9
+ Fishbowl::Connection.login(username: 'johndoe', password: 'secret')
10
+ end
11
+
12
+ let(:connection) { FakeTCPSocket.instance }
13
+ let(:valid_options) {
14
+ #TODO figure out valid options
15
+ }
16
+
17
+ it "sends proper request" do
18
+ mock_the_response(expected_response)
19
+ Fishbowl::Requests.set_default_part_location(valid_options)
20
+ connection.last_write.should be_equivalent_to(expected_request)
21
+ end
22
+
23
+ def expected_request
24
+ request = Nokogiri::XML::Builder.new do |xml|
25
+ xml.FbiXml {
26
+ xml.Ticket
27
+ xml.FbiMsgsRq {
28
+ xml.SetDefPartLocRq {
29
+ #TODO figure out what goes here!
30
+ }
31
+ }
32
+ }
33
+ end
34
+
35
+ request.to_xml
36
+ end
37
+
38
+ def expected_response
39
+ Nokogiri::XML::Builder.new do |xml|
40
+ xml.response {
41
+ xml.SetDefPartLocRs(statusCode: '1000', statusMessage: "Success!") {
42
+ #TODO figure out what goes here!
43
+ }
44
+ }
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fishbowl::Requests do
4
+ describe "#set_system_property" do
5
+ before :each do
6
+ mock_tcp_connection
7
+ mock_login_response
8
+ Fishbowl::Connection.connect(host: 'localhost')
9
+ Fishbowl::Connection.login(username: 'johndoe', password: 'secret')
10
+ end
11
+
12
+ let(:connection) { FakeTCPSocket.instance }
13
+ let(:valid_options) {
14
+ #TODO figure out valid options
15
+ }
16
+
17
+ it "sends proper request" do
18
+ mock_the_response(expected_response)
19
+ Fishbowl::Requests.set_system_property(valid_options)
20
+ connection.last_write.should be_equivalent_to(expected_request)
21
+ end
22
+
23
+ def expected_request
24
+ request = Nokogiri::XML::Builder.new do |xml|
25
+ xml.FbiXml {
26
+ xml.Ticket
27
+ xml.FbiMsgsRq {
28
+ xml.SetSystemPropertyRq {
29
+ #TODO figure out what goes here!
30
+ }
31
+ }
32
+ }
33
+ end
34
+
35
+ request.to_xml
36
+ end
37
+
38
+ def expected_response
39
+ Nokogiri::XML::Builder.new do |xml|
40
+ xml.response {
41
+ xml.SetSystemPropertyRs(statusCode: '1000', statusMessage: "Success!") {
42
+ #TODO figure out what goes here!
43
+ }
44
+ }
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fishbowl::Requests do
4
+ describe "#set_user_property" do
5
+ before :each do
6
+ mock_tcp_connection
7
+ mock_login_response
8
+ Fishbowl::Connection.connect(host: 'localhost')
9
+ Fishbowl::Connection.login(username: 'johndoe', password: 'secret')
10
+ end
11
+
12
+ let(:connection) { FakeTCPSocket.instance }
13
+ let(:valid_options) {
14
+ #TODO figure out valid options
15
+ }
16
+
17
+ it "sends proper request" do
18
+ mock_the_response(expected_response)
19
+ Fishbowl::Requests.set_user_property(valid_options)
20
+ connection.last_write.should be_equivalent_to(expected_request)
21
+ end
22
+
23
+ def expected_request
24
+ request = Nokogiri::XML::Builder.new do |xml|
25
+ xml.FbiXml {
26
+ xml.Ticket
27
+ xml.FbiMsgsRq {
28
+ xml.SetUserPropertyRq {
29
+ #TODO figure out what goes here!
30
+ }
31
+ }
32
+ }
33
+ end
34
+
35
+ request.to_xml
36
+ end
37
+
38
+ def expected_response
39
+ Nokogiri::XML::Builder.new do |xml|
40
+ xml.response {
41
+ xml.SetUserPropertyRs(statusCode: '1000', statusMessage: "Success!") {
42
+ #TODO figure out what goes here!
43
+ }
44
+ }
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fishbowl::Requests do
4
+ describe "#ship" do
5
+ before :each do
6
+ mock_tcp_connection
7
+ mock_login_response
8
+ Fishbowl::Connection.connect(host: 'localhost')
9
+ Fishbowl::Connection.login(username: 'johndoe', password: 'secret')
10
+ end
11
+
12
+ let(:connection) { FakeTCPSocket.instance }
13
+ let(:valid_options) {
14
+ #TODO figure out valid options
15
+ }
16
+
17
+ it "sends proper request" do
18
+ mock_the_response(expected_response)
19
+ Fishbowl::Requests.ship(valid_options)
20
+ connection.last_write.should be_equivalent_to(expected_request)
21
+ end
22
+
23
+ def expected_request
24
+ request = Nokogiri::XML::Builder.new do |xml|
25
+ xml.FbiXml {
26
+ xml.Ticket
27
+ xml.FbiMsgsRq {
28
+ xml.ShipRq {
29
+ #TODO figure out what goes here!
30
+ }
31
+ }
32
+ }
33
+ end
34
+
35
+ request.to_xml
36
+ end
37
+
38
+ def expected_response
39
+ Nokogiri::XML::Builder.new do |xml|
40
+ xml.response {
41
+ xml.ShipRs(statusCode: '1000', statusMessage: "Success!") {
42
+ #TODO figure out what goes here!
43
+ }
44
+ }
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ describe Fishbowl::Requests do
4
+ describe "#void_sales_order" do
5
+ before :each do
6
+ mock_tcp_connection
7
+ mock_login_response
8
+ Fishbowl::Connection.connect(host: 'localhost')
9
+ Fishbowl::Connection.login(username: 'johndoe', password: 'secret')
10
+ end
11
+
12
+ let(:connection) { FakeTCPSocket.instance }
13
+
14
+ it "sends proper request" do
15
+ mock_the_response(expected_response)
16
+ Fishbowl::Requests.void_sales_order(50069)
17
+ connection.last_write.should be_equivalent_to(expected_request)
18
+ end
19
+
20
+ def expected_request
21
+ request = Nokogiri::XML::Builder.new do |xml|
22
+ xml.FbiXml {
23
+ xml.Ticket
24
+ xml.FbiMsgsRq {
25
+ xml.VoidSORq {
26
+ xml.SONumber "50069"
27
+ }
28
+ }
29
+ }
30
+ end
31
+
32
+ request.to_xml
33
+ end
34
+
35
+ def expected_response
36
+ Nokogiri::XML::Builder.new do |xml|
37
+ xml.response {
38
+ xml.VoidSORs(statusCode: '1000', statusMessage: "Success!")
39
+ }
40
+ end
41
+ end
42
+ end
43
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,18 +1,50 @@
1
1
  require 'rubygems'
2
- require 'bundler/setup'
3
-
4
- require 'simplecov'
5
- SimpleCov.start do
6
- add_filter "/spec/"
7
- end
8
-
9
- require 'equivalent-xml/rspec_matchers'
10
-
2
+ require 'rspec'
11
3
  require 'fishbowl'
12
-
13
- require 'support/fake_socket'
14
- require 'support/fake_login'
15
-
16
- RSpec.configure do |config|
17
- # some (optional) config here
18
- end
4
+ require 'pry'
5
+ #
6
+ # if ENV['CI'] != 'true'
7
+ # require 'spork'
8
+ #
9
+ # Spork.prefork do
10
+ # unless ENV['DRB']
11
+ # require 'simplecov'
12
+ # SimpleCov.start do
13
+ # add_filter "/spec/"
14
+ # end
15
+ # end
16
+ #
17
+ # require 'fishbowl'
18
+ #
19
+ # require 'equivalent-xml/rspec_matchers'
20
+ #
21
+ # require 'support/examples_loader'
22
+ # require 'support/fake_socket'
23
+ # require 'support/response_mocks'
24
+ #
25
+ # RSpec.configure do |config|
26
+ # # some (optional) config here
27
+ # end
28
+ # end
29
+ #
30
+ # Spork.each_run do
31
+ # if ENV['DRB']
32
+ # require 'simplecov'
33
+ # SimpleCov.start do
34
+ # add_filter "/spec/"
35
+ # end
36
+ # end
37
+ # end
38
+ # else
39
+ # require 'fishbowl'
40
+ #
41
+ # require 'equivalent-xml/rspec_matchers'
42
+ #
43
+ # require 'support/examples_loader'
44
+ # require 'support/fake_socket'
45
+ # require 'support/response_mocks'
46
+ #
47
+ # RSpec.configure do |config|
48
+ # # some (optional) config here
49
+ # end
50
+ # end
@@ -0,0 +1,5 @@
1
+ def example_file(filename)
2
+ example_path = File.expand_path('../../examples', __FILE__)
3
+ example_file = File.join(example_path, filename)
4
+ File.open(example_file)
5
+ end
@@ -0,0 +1,27 @@
1
+ require 'support/fake_socket'
2
+
3
+ def mock_response(response = 'SampleRs')
4
+ Nokogiri::XML::Builder.new do |xml|
5
+ xml.FbiXml {
6
+ xml.Ticket
7
+
8
+ xml.FbiMsgsRs(statusCode: '1000', statusMessage: "Success!") {
9
+ if response.respond_to?(:to_xml)
10
+ xml << response.doc.xpath("response/*").to_xml
11
+ else
12
+ xml.send(response, {statusCode: '1000', statusMessage: "Success!"})
13
+ end
14
+ }
15
+ }
16
+ end
17
+ end
18
+
19
+ def mock_the_response(response = 'SampleRs')
20
+ fake_response = mock_response(response)
21
+ FakeTCPSocket.instance.set_canned(fake_response.to_xml)
22
+ end
23
+
24
+ def mock_login_response
25
+ fake_response = mock_response('LoginRs')
26
+ FakeTCPSocket.instance.set_canned(fake_response.to_xml)
27
+ end