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,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_account_list" 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.get_account_list
|
17
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns array of accounts" do
|
21
|
+
mock_the_response(expected_response)
|
22
|
+
response = Fishbowl::Requests.get_account_list
|
23
|
+
|
24
|
+
response.should be_an(Array)
|
25
|
+
response.first.should be_a(Fishbowl::Objects::Account)
|
26
|
+
end
|
27
|
+
|
28
|
+
def expected_request
|
29
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
30
|
+
xml.FbiXml {
|
31
|
+
xml.Ticket
|
32
|
+
xml.FbiMsgsRq {
|
33
|
+
xml.GetAccountListRq
|
34
|
+
}
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
request.to_xml
|
39
|
+
end
|
40
|
+
|
41
|
+
def expected_response
|
42
|
+
Nokogiri::XML::Builder.new do |xml|
|
43
|
+
xml.response {
|
44
|
+
xml.GetAccountListRs(statusCode: '1000', statusMessage: "Success!") {
|
45
|
+
#TODO Mock an array of Accounts
|
46
|
+
}
|
47
|
+
}
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_carrier_list" 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.get_carrier_list
|
17
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns array of carriers" do
|
21
|
+
mock_the_response(expected_response)
|
22
|
+
response = Fishbowl::Requests.get_carrier_list
|
23
|
+
|
24
|
+
response.should be_an(Array)
|
25
|
+
response.first.should be_a(Fishbowl::Objects::Carrier)
|
26
|
+
end
|
27
|
+
|
28
|
+
def expected_request
|
29
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
30
|
+
xml.FbiXml {
|
31
|
+
xml.Ticket
|
32
|
+
xml.FbiMsgsRq {
|
33
|
+
xml.CarrierListRq
|
34
|
+
}
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
request.to_xml
|
39
|
+
end
|
40
|
+
|
41
|
+
def expected_response
|
42
|
+
Nokogiri::XML::Builder.new do |xml|
|
43
|
+
xml.response {
|
44
|
+
xml.CarrierListRs(statusCode: '1000', statusMessage: "Success!") {
|
45
|
+
xml.Carrier { xml.Name "Will Call" }
|
46
|
+
xml.Carrier { xml.Name "UPS" }
|
47
|
+
xml.Carrier { xml.Name "FedEx" }
|
48
|
+
xml.Carrier { xml.Name "USPS" }
|
49
|
+
}
|
50
|
+
}
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_customer_list" 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.get_customer_list
|
17
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns an array of customers" do
|
21
|
+
mock_the_response(expected_response)
|
22
|
+
response = Fishbowl::Requests.get_customer_list
|
23
|
+
|
24
|
+
response.should be_an(Array)
|
25
|
+
response.first.should be_a(Fishbowl::Objects::Customer)
|
26
|
+
end
|
27
|
+
|
28
|
+
def expected_request
|
29
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
30
|
+
xml.FbiXml {
|
31
|
+
xml.Ticket
|
32
|
+
xml.FbiMsgsRq {
|
33
|
+
xml.CustomerListRq
|
34
|
+
}
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
request.to_xml
|
39
|
+
end
|
40
|
+
|
41
|
+
def expected_response
|
42
|
+
Nokogiri::XML::Builder.new do |xml|
|
43
|
+
xml.response {
|
44
|
+
xml.CustomerListRs(statusCode: '1000', statusMessage: "Success!") {
|
45
|
+
#TODO figure out what goes here!
|
46
|
+
}
|
47
|
+
}
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_customer_name_list" 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.get_customer_name_list
|
17
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns an array of customer names"
|
21
|
+
|
22
|
+
def expected_request
|
23
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
24
|
+
xml.FbiXml {
|
25
|
+
xml.Ticket
|
26
|
+
xml.FbiMsgsRq {
|
27
|
+
xml.CustomerNameListRq
|
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.CustomerNameListRs(statusCode: '1000', statusMessage: "Success!") {
|
39
|
+
#TODO figure out what goes here!
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_customer" 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.get_customer("Nancy Bluer")
|
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.CustomerGetRq {
|
26
|
+
xml.Name "Nancy Bluer"
|
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.CustomerGetRs(statusCode: '1000', statusMessage: "Success!") {
|
39
|
+
#TODO figure out what goes here!
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_export_list" 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.get_export_list
|
17
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns array of export options"
|
21
|
+
|
22
|
+
def expected_request
|
23
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
24
|
+
xml.FbiXml {
|
25
|
+
xml.Ticket
|
26
|
+
xml.FbiMsgsRq {
|
27
|
+
xml.ExportListRq
|
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.ExportListRs(statusCode: '1000', statusMessage: "Success!") {
|
39
|
+
#TODO figure out what goes here!
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_import_list" 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.get_import_list
|
17
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns array of import options"
|
21
|
+
|
22
|
+
def expected_request
|
23
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
24
|
+
xml.FbiXml {
|
25
|
+
xml.Ticket
|
26
|
+
xml.FbiMsgsRq {
|
27
|
+
xml.ImportListRq
|
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.ImportListRs(statusCode: '1000', statusMessage: "Success!") {
|
39
|
+
#TODO figure out what goes here!
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_inventory_quantity" 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
|
+
let(:valid_options) {
|
15
|
+
#TODO Identify valid options
|
16
|
+
}
|
17
|
+
|
18
|
+
it "requires valid options" do
|
19
|
+
lambda {
|
20
|
+
Fishbowl::Requests.get_inventory_quantity(valid_options)
|
21
|
+
}.should_not raise_error(ArgumentError)
|
22
|
+
|
23
|
+
valid_options.each do |excluded_key, excluded_value|
|
24
|
+
invalid_options = valid_options.keep_if {|k,v| k != excluded_key}
|
25
|
+
|
26
|
+
lambda {
|
27
|
+
Fishbowl::Requests.get_inventory_quantity(invalid_options)
|
28
|
+
}.should raise_error(ArgumentError)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
it "sends proper request" do
|
33
|
+
mock_the_response(expected_response)
|
34
|
+
Fishbowl::Requests.get_inventory_quantity(valid_options)
|
35
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
36
|
+
end
|
37
|
+
|
38
|
+
def expected_request(options = {})
|
39
|
+
options = valid_options.merge(options)
|
40
|
+
|
41
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
42
|
+
xml.FbiXml {
|
43
|
+
xml.Ticket
|
44
|
+
xml.FbiMsgsRq {
|
45
|
+
xml.InventoryQuantityRq {
|
46
|
+
#TODO Figure out what goes here!
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
50
|
+
end
|
51
|
+
|
52
|
+
request.to_xml
|
53
|
+
end
|
54
|
+
|
55
|
+
def expected_response
|
56
|
+
Nokogiri::XML::Builder.new do |xml|
|
57
|
+
xml.response {
|
58
|
+
xml.InventoryQuantityRs(statusCode: '1000', statusMessage: "Success!") {
|
59
|
+
#TODO figure out what goes here!
|
60
|
+
}
|
61
|
+
}
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_light_part_list" 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.get_light_part_list
|
17
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns array of parts" do
|
21
|
+
mock_the_response(expected_response)
|
22
|
+
response = Fishbowl::Requests.get_light_part_list
|
23
|
+
|
24
|
+
response.should be_an(Array)
|
25
|
+
#TODO What else does it return?
|
26
|
+
end
|
27
|
+
|
28
|
+
def expected_request
|
29
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
30
|
+
xml.FbiXml {
|
31
|
+
xml.Ticket
|
32
|
+
xml.FbiMsgsRq {
|
33
|
+
xml.LightPartListRq
|
34
|
+
}
|
35
|
+
}
|
36
|
+
end
|
37
|
+
|
38
|
+
request.to_xml
|
39
|
+
end
|
40
|
+
|
41
|
+
def expected_response
|
42
|
+
Nokogiri::XML::Builder.new do |xml|
|
43
|
+
xml.response {
|
44
|
+
xml.LightPartListRs(statusCode: '1000', statusMessage: "Success!") {
|
45
|
+
#TODO Mock an array of Accounts
|
46
|
+
}
|
47
|
+
}
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_location_group_list" 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.get_location_group_list
|
17
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns array of LocationGroups"
|
21
|
+
|
22
|
+
def expected_request
|
23
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
24
|
+
xml.FbiXml {
|
25
|
+
xml.Ticket
|
26
|
+
xml.FbiMsgsRq {
|
27
|
+
xml.LocationGroupRq
|
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.LocationGroupRs(statusCode: '1000', statusMessage: "Success!") {
|
39
|
+
#TODO figure out what goes here!
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_location_list" 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.get_location_list
|
17
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "returns an array of Locations"
|
21
|
+
|
22
|
+
def expected_request
|
23
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
24
|
+
xml.FbiXml {
|
25
|
+
xml.Ticket
|
26
|
+
xml.FbiMsgsRq {
|
27
|
+
xml.LocationListRq
|
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.LocationListRs(statusCode: '1000', statusMessage: "Success!") {
|
39
|
+
#TODO figure out what goes here!
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_next_number" 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.get_next_number("PO")
|
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.GetNextNumberRq {
|
26
|
+
xml.Type "PO"
|
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.GetNextNumberRs(statusCode: '1000', statusMessage: "Success!") {
|
39
|
+
#TODO figure out what goes here!
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_part_cost" 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.get_part_cost("B203")
|
17
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
def expected_request(options = {})
|
21
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
22
|
+
xml.FbiXml {
|
23
|
+
xml.Ticket
|
24
|
+
xml.FbiMsgsRq {
|
25
|
+
xml.PartCostRq {
|
26
|
+
xml.PartNum "B203"
|
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.PartCostRs(statusCode: '1000', statusMessage: "Success!") {
|
39
|
+
#TODO figure out what goes here!
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Fishbowl::Requests do
|
4
|
+
describe "#get_part_information" 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.get_part_information("B203")
|
17
|
+
connection.last_write.should be_equivalent_to(expected_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
def expected_request(options = {})
|
21
|
+
request = Nokogiri::XML::Builder.new do |xml|
|
22
|
+
xml.FbiXml {
|
23
|
+
xml.Ticket
|
24
|
+
xml.FbiMsgsRq {
|
25
|
+
xml.PartGetRq {
|
26
|
+
xml.PartNum "B203"
|
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.PartGetRs(statusCode: '1000', statusMessage: "Success!") {
|
39
|
+
#TODO figure out what goes here!
|
40
|
+
}
|
41
|
+
}
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|