fishbowl 0.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|