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.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +9 -4
- data/Gemfile +9 -2
- data/Guardfile +13 -0
- data/README.md +25 -5
- data/fishbowl.gemspec +5 -5
- data/lib/fishbowl/configuration.rb +9 -0
- data/lib/fishbowl/connection.rb +100 -0
- data/lib/fishbowl/errors.rb +18 -8
- data/lib/fishbowl/ext.rb +15 -0
- data/lib/fishbowl/objects/account.rb +8 -12
- data/lib/fishbowl/objects/address.rb +86 -0
- data/lib/fishbowl/objects/base_object.rb +42 -9
- data/lib/fishbowl/objects/carrier.rb +15 -0
- data/lib/fishbowl/objects/carton.rb +54 -0
- data/lib/fishbowl/objects/uom.rb +47 -0
- data/lib/fishbowl/objects/user.rb +15 -0
- data/lib/fishbowl/objects.rb +5 -0
- data/lib/fishbowl/requests/add_inventory.rb +34 -0
- data/lib/fishbowl/requests/add_sales_order_item.rb +42 -0
- data/lib/fishbowl/requests/adjust_inventory.rb +28 -0
- data/lib/fishbowl/requests/get_account_balance.rb +15 -0
- data/lib/fishbowl/requests/get_account_list.rb +13 -0
- data/lib/fishbowl/requests/get_carrier_list.rb +14 -0
- data/lib/fishbowl/requests/get_customer_list.rb +12 -0
- data/lib/fishbowl/requests/get_customer_name_list.rb +12 -0
- data/lib/fishbowl/requests/get_export_list.rb +12 -0
- data/lib/fishbowl/requests/get_import_list.rb +12 -0
- data/lib/fishbowl/requests/get_location_group_list.rb +12 -0
- data/lib/fishbowl/requests/get_location_list.rb +12 -0
- data/lib/fishbowl/requests/get_product.rb +18 -0
- data/lib/fishbowl/requests/get_product_price.rb +21 -0
- data/lib/fishbowl/requests/get_uom_list.rb +12 -0
- data/lib/fishbowl/requests/get_vendor_list.rb +12 -0
- data/lib/fishbowl/requests/get_vendor_name_list.rb +12 -0
- data/lib/fishbowl/requests/get_work_order_list.rb +12 -0
- data/lib/fishbowl/requests/inventory_quantity.rb +17 -0
- data/lib/fishbowl/requests/load_sales_order.rb +21 -0
- data/lib/fishbowl/requests/make_payment.rb +32 -0
- data/lib/fishbowl/requests/save_sales_order.rb +86 -0
- data/lib/fishbowl/requests/total_inventory.rb +18 -0
- data/lib/fishbowl/requests/void_sales_order.rb +18 -0
- data/lib/fishbowl/requests.rb +5 -0
- data/lib/fishbowl/version.rb +1 -1
- data/lib/fishbowl.rb +12 -95
- data/lib/status_codes.yml +183 -0
- data/spec/connection_spec.rb +99 -99
- data/spec/errors_spec.rb +11 -9
- data/spec/examples/account.xml +6 -0
- data/spec/examples/address.xml +30 -0
- data/spec/examples/carrier.xml +3 -0
- data/spec/examples/carton.xml +93 -0
- data/spec/examples/contact_information.xml +5 -0
- data/spec/examples/contacts.xml +7 -0
- data/spec/examples/credit_card.xml +10 -0
- data/spec/examples/customer.xml +54 -0
- data/spec/examples/location.xml +14 -0
- data/spec/examples/location_group.xml +5 -0
- data/spec/examples/location_group_string.xml +1 -0
- data/spec/examples/order_history.xml +8 -0
- data/spec/examples/part.xml +105 -0
- data/spec/examples/payment.xml +6 -0
- data/spec/examples/pick.xml +265 -0
- data/spec/examples/pick_item.xml +236 -0
- data/spec/examples/product.xml +159 -0
- data/spec/examples/purchase_order.xml +53 -0
- data/spec/examples/receipt.xml +146 -0
- data/spec/examples/report.xml +10 -0
- data/spec/examples/report_tree.xml +7 -0
- data/spec/examples/sales_order.xml +47 -0
- data/spec/examples/sales_order_item.xml +32 -0
- data/spec/examples/shipping.xml +127 -0
- data/spec/examples/tag.xml +28 -0
- data/spec/examples/tax_rate.xml +10 -0
- data/spec/examples/tracking.xml +14 -0
- data/spec/examples/tracking_item.xml +12 -0
- data/spec/examples/transfer_order.xml +257 -0
- data/spec/examples/transfer_order_item.xml +147 -0
- data/spec/examples/uom.xml +26 -0
- data/spec/examples/uom_conversion.xml +8 -0
- data/spec/examples/user.xml +8 -0
- data/spec/examples/vendor.xml +19 -0
- data/spec/examples/vendor_part_number.xml +3 -0
- data/spec/examples/work_order.xml +228 -0
- data/spec/examples/work_order_item.xml +172 -0
- data/spec/objects/account_spec.rb +33 -27
- data/spec/objects/address_information_spec.rb +18 -0
- data/spec/objects/address_spec.rb +36 -0
- data/spec/objects/base_object_spec.rb +67 -23
- data/spec/objects/carrier_spec.rb +15 -0
- data/spec/objects/carton_spec.rb +23 -0
- data/spec/objects/country_spec.rb +16 -0
- data/spec/objects/shipping_item_spec.rb +21 -0
- data/spec/objects/state_spec.rb +17 -0
- data/spec/objects/uom_conversion_spec.rb +20 -0
- data/spec/objects/uom_spec.rb +20 -0
- data/spec/objects/user_spec.rb +20 -0
- data/spec/requests/add_inventory_spec.rb +79 -0
- data/spec/requests/add_sales_order_item_spec.rb +85 -0
- data/spec/requests/adjust_inventory_spec.rb +62 -0
- data/spec/requests/calculate_sales_order_spec.rb +48 -0
- data/spec/requests/close_short_sales_order_spec.rb +45 -0
- data/spec/requests/cycle_count_spec.rb +49 -0
- data/spec/requests/delete_sales_order_spec.rb +45 -0
- data/spec/requests/export_spec.rb +45 -0
- data/spec/requests/get_account_balance_spec.rb +52 -0
- data/spec/requests/get_account_list_spec.rb +51 -0
- data/spec/requests/get_carrier_list_spec.rb +54 -0
- data/spec/requests/get_customer_list_spec.rb +51 -0
- data/spec/requests/get_customer_name_list_spec.rb +45 -0
- data/spec/requests/get_customer_spec.rb +45 -0
- data/spec/requests/get_export_list_spec.rb +45 -0
- data/spec/requests/get_import_list_spec.rb +45 -0
- data/spec/requests/get_inventory_quantity_spec.rb +65 -0
- data/spec/requests/get_light_part_list_spec.rb +51 -0
- data/spec/requests/get_location_group_list_spec.rb +45 -0
- data/spec/requests/get_location_list_spec.rb +45 -0
- data/spec/requests/get_next_number_spec.rb +45 -0
- data/spec/requests/get_part_cost_spec.rb +45 -0
- data/spec/requests/get_part_information_spec.rb +45 -0
- data/spec/requests/get_part_list_spec.rb +65 -0
- data/spec/requests/get_pick_spec.rb +45 -0
- data/spec/requests/get_product_information_spec.rb +46 -0
- data/spec/requests/get_purchase_order_list_spec.rb +45 -0
- data/spec/requests/get_receipt_spec.rb +49 -0
- data/spec/requests/get_receiving_list_spec.rb +49 -0
- data/spec/requests/get_sales_order_list_spec.rb +49 -0
- data/spec/requests/get_ship_list_spec.rb +49 -0
- data/spec/requests/get_ship_now_list_spec.rb +48 -0
- data/spec/requests/get_shipment_spec.rb +45 -0
- data/spec/requests/get_system_property_spec.rb +45 -0
- data/spec/requests/get_total_inventory_spec.rb +46 -0
- data/spec/requests/get_transfer_order_list_spec.rb +45 -0
- data/spec/requests/get_uom_list_spec.rb +45 -0
- data/spec/requests/get_user_property_spec.rb +45 -0
- data/spec/requests/get_vendor_list_spec.rb +45 -0
- data/spec/requests/get_vendor_name_list_spec.rb +45 -0
- data/spec/requests/get_vendor_spec.rb +48 -0
- data/spec/requests/get_work_order_list_spec.rb +45 -0
- data/spec/requests/get_work_order_spec.rb +45 -0
- data/spec/requests/import_spec.rb +49 -0
- data/spec/requests/issues_sales_order_spec.rb +45 -0
- data/spec/requests/load_sales_order_spec.rb +45 -0
- data/spec/requests/load_transfer_order_spec.rb +45 -0
- data/spec/requests/location_query_spec.rb +49 -0
- data/spec/requests/make_payment_spec.rb +50 -0
- data/spec/requests/move_spec.rb +49 -0
- data/spec/requests/part_query_spec.rb +46 -0
- data/spec/requests/pick_query_spec.rb +49 -0
- data/spec/requests/print_report_spec.rb +48 -0
- data/spec/requests/product_query_spec.rb +46 -0
- data/spec/requests/quick_ship_spec.rb +45 -0
- data/spec/requests/quickbooks_export_spec.rb +43 -0
- data/spec/requests/save_customer_spec.rb +48 -0
- data/spec/requests/save_discount_spec.rb +48 -0
- data/spec/requests/save_pick_spec.rb +48 -0
- data/spec/requests/save_purchase_order_spec.rb +48 -0
- data/spec/requests/save_receipt_spec.rb +48 -0
- data/spec/requests/save_report_spec.rb +49 -0
- data/spec/requests/save_sales_order_spec.rb +48 -0
- data/spec/requests/save_shipment_spec.rb +48 -0
- data/spec/requests/save_tax_rate_spec.rb +48 -0
- data/spec/requests/save_transfer_order_spec.rb +48 -0
- data/spec/requests/save_upc_spec.rb +48 -0
- data/spec/requests/save_vendor_spec.rb +48 -0
- data/spec/requests/save_work_order_spec.rb +48 -0
- data/spec/requests/set_default_part_location_spec.rb +48 -0
- data/spec/requests/set_system_property_spec.rb +48 -0
- data/spec/requests/set_user_property_spec.rb +48 -0
- data/spec/requests/ship_spec.rb +48 -0
- data/spec/requests/void_sales_order_spec.rb +43 -0
- data/spec/spec_helper.rb +48 -16
- data/spec/support/examples_loader.rb +5 -0
- data/spec/support/response_mocks.rb +27 -0
- metadata +304 -35
- 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 '
|
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
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
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,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
|