Commit f65bf74737a148e2decaf37aac5666fb5c2e7848

Authored by Joe Weakley
1 parent dc8aa5b6

Added and configured VCR

@@ -8,13 +8,24 @@ PATH @@ -8,13 +8,24 @@ PATH
8 GEM 8 GEM
9 remote: https://rubygems.org/ 9 remote: https://rubygems.org/
10 specs: 10 specs:
  11 + addressable (2.5.2)
  12 + public_suffix (>= 2.0.2, < 4.0)
11 ast (2.4.0) 13 ast (2.4.0)
12 coderay (1.1.2) 14 coderay (1.1.2)
  15 + crack (0.4.3)
  16 + safe_yaml (~> 1.0.0)
13 faraday (0.14.0) 17 faraday (0.14.0)
14 multipart-post (>= 1.2, < 3) 18 multipart-post (>= 1.2, < 3)
  19 + hashdiff (0.3.7)
15 method_source (0.9.0) 20 method_source (0.9.0)
16 mini_portile2 (2.3.0) 21 mini_portile2 (2.3.0)
  22 + minispec-metadata (2.0.0)
  23 + minitest
17 minitest (5.11.3) 24 minitest (5.11.3)
  25 + minitest-vcr (1.4.0)
  26 + minispec-metadata (~> 2.0)
  27 + minitest (>= 4.7.5)
  28 + vcr (>= 2.9)
18 multipart-post (2.0.0) 29 multipart-post (2.0.0)
19 nokogiri (1.8.2) 30 nokogiri (1.8.2)
20 mini_portile2 (~> 2.3.0) 31 mini_portile2 (~> 2.3.0)
@@ -25,6 +36,7 @@ GEM @@ -25,6 +36,7 @@ GEM
25 pry (0.11.3) 36 pry (0.11.3)
26 coderay (~> 1.1.0) 37 coderay (~> 1.1.0)
27 method_source (~> 0.9.0) 38 method_source (~> 0.9.0)
  39 + public_suffix (3.0.2)
28 rainbow (3.0.0) 40 rainbow (3.0.0)
29 rake (10.5.0) 41 rake (10.5.0)
30 rubocop (0.54.0) 42 rubocop (0.54.0)
@@ -35,7 +47,13 @@ GEM @@ -35,7 +47,13 @@ GEM
35 ruby-progressbar (~> 1.7) 47 ruby-progressbar (~> 1.7)
36 unicode-display_width (~> 1.0, >= 1.0.1) 48 unicode-display_width (~> 1.0, >= 1.0.1)
37 ruby-progressbar (1.9.0) 49 ruby-progressbar (1.9.0)
  50 + safe_yaml (1.0.4)
38 unicode-display_width (1.3.0) 51 unicode-display_width (1.3.0)
  52 + vcr (4.0.0)
  53 + webmock (3.3.0)
  54 + addressable (>= 2.3.6)
  55 + crack (>= 0.3.2)
  56 + hashdiff
39 57
40 PLATFORMS 58 PLATFORMS
41 ruby 59 ruby
@@ -43,10 +61,12 @@ PLATFORMS @@ -43,10 +61,12 @@ PLATFORMS
43 DEPENDENCIES 61 DEPENDENCIES
44 bundler (~> 1.16) 62 bundler (~> 1.16)
45 minitest (~> 5.0) 63 minitest (~> 5.0)
  64 + minitest-vcr (~> 1.4.0)
46 pry (~> 0.11) 65 pry (~> 0.11)
47 rake (~> 10.0) 66 rake (~> 10.0)
48 rubocop (~> 0.54.0) 67 rubocop (~> 0.54.0)
49 syspro-ruby! 68 syspro-ruby!
  69 + webmock (~> 3.3.0)
50 70
51 BUNDLED WITH 71 BUNDLED WITH
52 1.16.1 72 1.16.1
syspro-ruby.gemspec
@@ -38,4 +38,6 @@ Gem::Specification.new do |spec| @@ -38,4 +38,6 @@ Gem::Specification.new do |spec|
38 spec.add_development_dependency 'pry', '~> 0.11' 38 spec.add_development_dependency 'pry', '~> 0.11'
39 spec.add_development_dependency 'rake', '~> 10.0' 39 spec.add_development_dependency 'rake', '~> 10.0'
40 spec.add_development_dependency 'rubocop', '~> 0.54.0' 40 spec.add_development_dependency 'rubocop', '~> 0.54.0'
  41 + spec.add_development_dependency 'webmock', '~> 3.3.0'
  42 + spec.add_development_dependency 'minitest-vcr', '~> 1.4.0'
41 end 43 end
test/cassettes/test_client_block_execution.yml 0 → 100644
  1 +---
  2 +http_interactions:
  3 +- request:
  4 + method: get
  5 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/getversion
  6 + body:
  7 + encoding: US-ASCII
  8 + string: ''
  9 + headers:
  10 + User-Agent:
  11 + - Syspro/7 RubyBindings/0.1.0
  12 + Content-Type:
  13 + - application/x-www-form-urlencoded
  14 + Accept-Encoding:
  15 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  16 + Accept:
  17 + - "*/*"
  18 + response:
  19 + status:
  20 + code: 200
  21 + message: OK
  22 + headers:
  23 + Content-Length:
  24 + - '7'
  25 + Content-Type:
  26 + - application/octet-stream
  27 + Server:
  28 + - Microsoft-HTTPAPI/2.0
  29 + Date:
  30 + - Fri, 06 Apr 2018 19:23:43 GMT
  31 + body:
  32 + encoding: UTF-8
  33 + string: 7.0.0.6
  34 + http_version:
  35 + recorded_at: Fri, 06 Apr 2018 19:23:42 GMT
  36 +recorded_with: VCR 4.0.0
test/cassettes/test_get_syspro_version.yml 0 → 100644
  1 +---
  2 +http_interactions:
  3 +- request:
  4 + method: get
  5 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/getversion
  6 + body:
  7 + encoding: US-ASCII
  8 + string: ''
  9 + headers:
  10 + User-Agent:
  11 + - Syspro/7 RubyBindings/0.1.0
  12 + Content-Type:
  13 + - application/x-www-form-urlencoded
  14 + Accept-Encoding:
  15 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  16 + Accept:
  17 + - "*/*"
  18 + response:
  19 + status:
  20 + code: 200
  21 + message: OK
  22 + headers:
  23 + Content-Length:
  24 + - '7'
  25 + Content-Type:
  26 + - application/octet-stream
  27 + Server:
  28 + - Microsoft-HTTPAPI/2.0
  29 + Date:
  30 + - Fri, 06 Apr 2018 19:23:43 GMT
  31 + body:
  32 + encoding: UTF-8
  33 + string: 7.0.0.6
  34 + http_version:
  35 + recorded_at: Fri, 06 Apr 2018 19:23:42 GMT
  36 +recorded_with: VCR 4.0.0
test/cassettes/test_logoff_error.yml 0 → 100644
  1 +---
  2 +http_interactions:
  3 +- request:
  4 + method: get
  5 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/logoff?UserId=1BB5B3050954BB459A5D034DB5CC386980
  6 + body:
  7 + encoding: US-ASCII
  8 + string: ''
  9 + headers:
  10 + User-Agent:
  11 + - Syspro/7 RubyBindings/0.1.0
  12 + Content-Type:
  13 + - application/x-www-form-urlencoded
  14 + Accept-Encoding:
  15 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  16 + Accept:
  17 + - "*/*"
  18 + response:
  19 + status:
  20 + code: 200
  21 + message: OK
  22 + headers:
  23 + Content-Length:
  24 + - '72'
  25 + Content-Type:
  26 + - application/octet-stream
  27 + Server:
  28 + - Microsoft-HTTPAPI/2.0
  29 + Date:
  30 + - Fri, 06 Apr 2018 19:22:53 GMT
  31 + body:
  32 + encoding: UTF-8
  33 + string: 'ERROR: Unable to read the SYSPRO base directory registry string BaseDir8'
  34 + http_version:
  35 + recorded_at: Fri, 06 Apr 2018 19:22:52 GMT
  36 +recorded_with: VCR 4.0.0
test/cassettes/test_logon.yml 0 → 100644
  1 +---
  2 +http_interactions:
  3 +- request:
  4 + method: get
  5 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/logon?CompanyId=L&CompanyPassword=&Operator=wland&OperatorPassword=piperita2016
  6 + body:
  7 + encoding: US-ASCII
  8 + string: ''
  9 + headers:
  10 + User-Agent:
  11 + - Syspro/7 RubyBindings/0.1.0
  12 + Content-Type:
  13 + - application/x-www-form-urlencoded
  14 + Accept-Encoding:
  15 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  16 + Accept:
  17 + - "*/*"
  18 + response:
  19 + status:
  20 + code: 200
  21 + message: OK
  22 + headers:
  23 + Content-Length:
  24 + - '36'
  25 + Content-Type:
  26 + - application/octet-stream
  27 + Server:
  28 + - Microsoft-HTTPAPI/2.0
  29 + Date:
  30 + - Fri, 06 Apr 2018 19:23:52 GMT
  31 + body:
  32 + encoding: UTF-8
  33 + string: 'EC3098D6E284FB44ADF10671B3F06FCA00 '
  34 + http_version:
  35 + recorded_at: Fri, 06 Apr 2018 19:23:51 GMT
  36 +recorded_with: VCR 4.0.0
test/cassettes/test_query_browse.yml 0 → 100644
  1 +---
  2 +http_interactions:
  3 +- request:
  4 + method: get
  5 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/logon?CompanyId=L&CompanyPassword=&Operator=wland&OperatorPassword=piperita2016
  6 + body:
  7 + encoding: US-ASCII
  8 + string: ''
  9 + headers:
  10 + User-Agent:
  11 + - Syspro/7 RubyBindings/0.1.0
  12 + Content-Type:
  13 + - application/x-www-form-urlencoded
  14 + Accept-Encoding:
  15 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  16 + Accept:
  17 + - "*/*"
  18 + response:
  19 + status:
  20 + code: 200
  21 + message: OK
  22 + headers:
  23 + Content-Length:
  24 + - '36'
  25 + Content-Type:
  26 + - application/octet-stream
  27 + Server:
  28 + - Microsoft-HTTPAPI/2.0
  29 + Date:
  30 + - Fri, 06 Apr 2018 19:23:03 GMT
  31 + body:
  32 + encoding: UTF-8
  33 + string: '64C41E1DEB73024CA660211DE643705700 '
  34 + http_version:
  35 + recorded_at: Fri, 06 Apr 2018 19:23:01 GMT
  36 +- request:
  37 + method: get
  38 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/Query/Browse?UserId=64C41E1DEB73024CA660211DE643705700%20%20&XmlIn=%3C?xml%20version=%221.0%22%20encoding=%22Windows-1252%22?%3E%0A%3CBrowse%20xmlns:xsd=%22http://www.w3.org/2001/XMLSchema-instance%22%20xsd:noNamespaceSchemaLocation=%22COMBRW.XSD%22%3E%0A%20%20%3CBrowseName%3EInvMaster%3C/BrowseName%3E%0A%20%20%3CStartAtKey/%3E%0A%20%20%3CStartCondition%3E%3C/StartCondition%3E%0A%20%20%3CReturnRows%3E5%3C/ReturnRows%3E%0A%20%20%0A%20%20%3CBrowseDetails%3E%0A%20%20%20%20%3CTableName%3EInvMaster%3C/TableName%3E%0A%20%20%20%20%3CTitle%3EStockCodes%3C/Title%3E%0A%20%20%20%20%0A%20%20%20%20%20%20%3CColumn%3E%0A%20%20%20%20%20%20%20%20%3CColumnName%3EStockCode%3C/ColumnName%3E%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%3C/Column%3E%0A%20%20%20%20%0A%20%20%3C/BrowseDetails%3E%0A%3C/Browse%3E%0A%0A
  39 + body:
  40 + encoding: US-ASCII
  41 + string: ''
  42 + headers:
  43 + User-Agent:
  44 + - Syspro/7 RubyBindings/0.1.0
  45 + Content-Type:
  46 + - application/x-www-form-urlencoded
  47 + Accept-Encoding:
  48 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  49 + Accept:
  50 + - "*/*"
  51 + response:
  52 + status:
  53 + code: 200
  54 + message: OK
  55 + headers:
  56 + Content-Length:
  57 + - '944'
  58 + Content-Type:
  59 + - application/octet-stream
  60 + Server:
  61 + - Microsoft-HTTPAPI/2.0
  62 + Date:
  63 + - Fri, 06 Apr 2018 19:23:07 GMT
  64 + body:
  65 + encoding: UTF-8
  66 + string: "<?xml version=\"1.0\" encoding=\"Windows-1252\"?>\n<InvMaster Language='05'
  67 + Language2='EN' CssStyle='' DecFormat='1' DateFormat='01' Role='01' Version='7.0.036'
  68 + OperatorPrimaryRole=' '>\n<Title>StockCodes</Title>\n<Row>\n<StockCode>\n<Value>02</Value>\n<DataType>AlphaNumeric</DataType>\n</StockCode>\n</Row>\n<Row>\n<StockCode>\n<Value>021</Value>\n<DataType>AlphaNumeric</DataType>\n</StockCode>\n</Row>\n<Row>\n<StockCode>\n<Value>0214011IFF</Value>\n<DataType>AlphaNumeric</DataType>\n</StockCode>\n</Row>\n<Row>\n<StockCode>\n<Value>022</Value>\n<DataType>AlphaNumeric</DataType>\n</StockCode>\n</Row>\n<Row>\n<StockCode>\n<Value>023</Value>\n<DataType>AlphaNumeric</DataType>\n</StockCode>\n</Row>\n<NextPrevKey>\n<PrevKey>02</PrevKey>\n<NextKey>023</NextKey>\n<Fwd>True</Fwd>\n<Back>False</Back>\n</NextPrevKey>\n<HeaderDetails>\n<Header>Stock
  69 + code</Header>\n<Key>StockCode</Key>\n<KeyDescription>Stock code</KeyDescription>\n<Table>InvMaster</Table>\n</HeaderDetails>\n</InvMaster>\n "
  70 + http_version:
  71 + recorded_at: Fri, 06 Apr 2018 19:23:06 GMT
  72 +recorded_with: VCR 4.0.0
test/cassettes/test_query_fetch.yml 0 → 100644
  1 +---
  2 +http_interactions:
  3 +- request:
  4 + method: get
  5 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/logon?CompanyId=L&CompanyPassword=&Operator=wland&OperatorPassword=piperita2016
  6 + body:
  7 + encoding: US-ASCII
  8 + string: ''
  9 + headers:
  10 + User-Agent:
  11 + - Syspro/7 RubyBindings/0.1.0
  12 + Content-Type:
  13 + - application/x-www-form-urlencoded
  14 + Accept-Encoding:
  15 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  16 + Accept:
  17 + - "*/*"
  18 + response:
  19 + status:
  20 + code: 200
  21 + message: OK
  22 + headers:
  23 + Content-Length:
  24 + - '36'
  25 + Content-Type:
  26 + - application/octet-stream
  27 + Server:
  28 + - Microsoft-HTTPAPI/2.0
  29 + Date:
  30 + - Fri, 06 Apr 2018 19:23:16 GMT
  31 + body:
  32 + encoding: UTF-8
  33 + string: '5B21680F424424498B7CE7CCDA98B41700 '
  34 + http_version:
  35 + recorded_at: Fri, 06 Apr 2018 19:23:15 GMT
  36 +- request:
  37 + method: get
  38 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/Query/Fetch?UserId=5B21680F424424498B7CE7CCDA98B41700%20%20&XmlIn=%3C?xml%20version=%221.0%22%20encoding=%22Windows-1252%22?%3E%0A%3CFetch%20xmlns:xsd=%22http://www.w3.org/2001/XMLSchema-instance%22%20xsd:noNamespaceSchemaLocation=%22COMFCH.XSD%22%3E%0A%20%20%3CTableName%3EInvMaster%3C/TableName%3E%0A%20%20%3CKey%3E02%3C/Key%3E%0A%20%20%0A%20%20%3CFullKeyProvided%3EY%3C/FullKeyProvided%3E%0A%20%20%3CDefaultType%3E%3C/DefaultType%3E%0A%20%20%3CEspressoFetch%3EN%3C/EspressoFetch%3E%0A%3C/Fetch%3E%0A%0A
  39 + body:
  40 + encoding: US-ASCII
  41 + string: ''
  42 + headers:
  43 + User-Agent:
  44 + - Syspro/7 RubyBindings/0.1.0
  45 + Content-Type:
  46 + - application/x-www-form-urlencoded
  47 + Accept-Encoding:
  48 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  49 + Accept:
  50 + - "*/*"
  51 + response:
  52 + status:
  53 + code: 200
  54 + message: OK
  55 + headers:
  56 + Content-Length:
  57 + - '3911'
  58 + Content-Type:
  59 + - application/octet-stream
  60 + Server:
  61 + - Microsoft-HTTPAPI/2.0
  62 + Date:
  63 + - Fri, 06 Apr 2018 19:23:26 GMT
  64 + body:
  65 + encoding: UTF-8
  66 + string: "<?xml version=\"1.0\" encoding=\"Windows-1252\"?>\n<InvMaster Language='05'
  67 + Language2='EN' CssStyle='' DecFormat='1' DateFormat='01' Role='01' Version='7.0.035'
  68 + OperatorPrimaryRole=' '>\n<StockCode>02</StockCode>\n<Description>STR</Description>\n<LongDesc>SPEARMINT
  69 + TERPENES</LongDesc>\n<AlternateKey1/>\n<AlternateKey2/>\n<EccUser/>\n<StockUom>LB</StockUom>\n<AlternateUom>KG</AlternateUom>\n<OtherUom>DR</OtherUom>\n<ConvFactAltUom>
  70 + \ 2.204620</ConvFactAltUom>\n<ConvMulDiv>M</ConvMulDiv>\n<ConvFactOthUom>
  71 + \ 400.000000</ConvFactOthUom>\n<MulDiv>M</MulDiv>\n<Mass> 1.000000</Mass>\n<Volume>
  72 + \ 0.000000</Volume>\n<Decimals>3</Decimals>\n<PriceCategory>A</PriceCategory>\n<PriceMethod>C</PriceMethod>\n<Supplier/>\n<CycleCount>
  73 + 0</CycleCount>\n<ProductClass>STRP</ProductClass>\n<TaxCode>A</TaxCode>\n<OtherTaxCode/>\n<ListPriceCode>A</ListPriceCode>\n<SerialMethod>N</SerialMethod>\n<InterfaceFlag>Y</InterfaceFlag>\n<KitType>N</KitType>\n<LowLevelCode>
  74 + 0</LowLevelCode>\n<Buyer/>\n<Planner/>\n<TraceableType>T</TraceableType>\n<MpsFlag>N</MpsFlag>\n<BulkIssueFlag>N</BulkIssueFlag>\n<AbcClass/>\n<LeadTime>
  75 + \ 0</LeadTime>\n<StockMovementReq>Y</StockMovementReq>\n<ClearingFlag>N</ClearingFlag>\n<SupercessionDate>0000-00-00</SupercessionDate>\n<AbcAnalysisReq>Y</AbcAnalysisReq>\n<AbcCostingReq>N</AbcCostingReq>\n<CostUom>LB</CostUom>\n<MinPricePct>
  76 + \ 0.00</MinPricePct>\n<LabourCost> 0.00000</LabourCost>\n<MaterialCost>
  77 + \ 0.00000</MaterialCost>\n<FixOverhead> 0.00000</FixOverhead>\n<VariableOverhead>
  78 + \ 0.00000</VariableOverhead>\n<PartCategory>B</PartCategory>\n<DrawOfficeNum/>\n<WarehouseToUse>H1</WarehouseToUse>\n<BuyingRule>A</BuyingRule>\n<SpecificGravity>
  79 + 0.0000</SpecificGravity>\n<ImplosionNum> 0</ImplosionNum>\n<Ebq> 400.000000</Ebq>\n<ComponentCount>
  80 + \ 0</ComponentCount>\n<FixTimePeriod> 1</FixTimePeriod>\n<PanSize> 0.000000</PanSize>\n<DockToStock>
  81 + \ 0</DockToStock>\n<OutputMassFlag>F</OutputMassFlag>\n<ShelfLife>
  82 + \ 0</ShelfLife>\n<Version/>\n<Release/>\n<DemandTimeFence> 0</DemandTimeFence>\n<MakeToOrderFlag>N</MakeToOrderFlag>\n<ManufLeadTime>
  83 + \ 0</ManufLeadTime>\n<GrossReqRule>I</GrossReqRule>\n<PercentageYield>100</PercentageYield>\n<AbcPreProd>
  84 + \ 0.00000</AbcPreProd>\n<AbcManufacturing> 0.00000</AbcManufacturing>\n<AbcSales>
  85 + \ 0.00000</AbcSales>\n<AbcCumPreProd> 0.00000</AbcCumPreProd>\n<AbcCumManuf>
  86 + \ 0.00000</AbcCumManuf>\n<WipCtlGlCode/>\n<ResourceCode/>\n<GstTaxCode>A</GstTaxCode>\n<PrcInclGst>N</PrcInclGst>\n<SerEntryAtSale/>\n<StpSelection/>\n<UserField1/>\n<UserField2>
  87 + \ 0.00000</UserField2>\n<UserField3/>\n<UserField4/>\n<UserField5/>\n<TariffCode/>\n<SupplementaryUnit>N</SupplementaryUnit>\n<EbqPan>E</EbqPan>\n<StdLandedCost>
  88 + \ 0.00000</StdLandedCost>\n<LctRequired>N</LctRequired>\n<StdLctRoute/>\n<IssMultLotsFlag>Y</IssMultLotsFlag>\n<InclInStrValid>Y</InclInStrValid>\n<StdLabCostsBill>
  89 + \ 0.00000</StdLabCostsBill>\n<PhantomIfComp/>\n<CountryOfOrigin/>\n<StockOnHold/>\n<StockOnHoldReason/>\n<EccFlag>N</EccFlag>\n<StockAndAltUm>N</StockAndAltUm>\n<AltUnitChar>0</AltUnitChar>\n<JobsOnHold/>\n<JobHoldAllocs/>\n<PurchOnHold/>\n<SalesOnHold/>\n<MaintOnHold/>\n<BatchBill>N</BatchBill>\n<BlanketPoExists/>\n<CallOffBpoExists/>\n<DistWarehouseToUse/>\n<JobClassification/>\n<SubContractCost>
  90 + \ 0.00000</SubContractCost>\n<DateStkAdded>2005-08-26</DateStkAdded>\n<InspectionFlag/>\n<SerialPrefix/>\n<SerialSuffix/>\n<ReturnableItem/>\n<ProductGroup/>\n<PriceType/>\n<Basis/>\n<ManualCostFlag/>\n<ManufactureUom>LB</ManufactureUom>\n<ConvFactMuM>
  91 + \ 1.000000</ConvFactMuM>\n<ManMulDiv>M</ManMulDiv>\n<LookAheadWin> 0</LookAheadWin>\n<LoadingFactor>
  92 + \ 0.000</LoadingFactor>\n<SupplUnitCode/>\n<StorageSecurity/>\n<StorageHazard/>\n<StorageCondition/>\n<ProductShelfLife>
  93 + \ 0</ProductShelfLife>\n<InternalShelfLife> 0</InternalShelfLife>\n<AltMethodFlag/>\n<AltSisoFlag/>\n<AltReductionFlag/>\n<WithTaxExpenseType/>\n</InvMaster>\n "
  94 + http_version:
  95 + recorded_at: Fri, 06 Apr 2018 19:23:24 GMT
  96 +recorded_with: VCR 4.0.0
test/cassettes/test_query_query.yml 0 → 100644
  1 +---
  2 +http_interactions:
  3 +- request:
  4 + method: get
  5 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/logon?CompanyId=L&CompanyPassword=&Operator=wland&OperatorPassword=piperita2016
  6 + body:
  7 + encoding: US-ASCII
  8 + string: ''
  9 + headers:
  10 + User-Agent:
  11 + - Syspro/7 RubyBindings/0.1.0
  12 + Content-Type:
  13 + - application/x-www-form-urlencoded
  14 + Accept-Encoding:
  15 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  16 + Accept:
  17 + - "*/*"
  18 + response:
  19 + status:
  20 + code: 200
  21 + message: OK
  22 + headers:
  23 + Content-Length:
  24 + - '36'
  25 + Content-Type:
  26 + - application/octet-stream
  27 + Server:
  28 + - Microsoft-HTTPAPI/2.0
  29 + Date:
  30 + - Fri, 06 Apr 2018 19:23:35 GMT
  31 + body:
  32 + encoding: UTF-8
  33 + string: '5810EEA000F1F04BA915BAF98CA700EE00 '
  34 + http_version:
  35 + recorded_at: Fri, 06 Apr 2018 19:23:33 GMT
  36 +- request:
  37 + method: get
  38 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/Query/Query?BusinessObject=COMFND&UserId=5810EEA000F1F04BA915BAF98CA700EE00%20%20&XmlIn=%3C?xml%20version=%221.0%22%20encoding=%22Windows-1252%22?%3E%0A%3CQuery%20xmlns:xsd=%22http://www.w3.org/2001/XMLSchema-instance%22%20xsd:noNamespaceSchemaLocation=%22COMFND.XSD%22%3E%0A%20%20%3CTableName%3EInvMaster%3C/TableName%3E%0A%20%20%3CReturnRows%3E5%3C/ReturnRows%3E%0A%20%20%3CColumns%3E%0A%20%20%20%20%0A%20%20%20%20%20%20%3CColumn%3EStockCode%3C/Column%3E%0A%20%20%20%20%0A%20%20%3C/Columns%3E%0A%20%20%0A%20%20%20%20%3CWhere%3E%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%3CExpression%3E%0A%20%20%20%20%20%20%20%20%20%20%3COpenBracket%3E(%3C/OpenBracket%3E%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%3CAndOr%3EAnd%3C/AndOr%3E%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%3CColumn%3EStockCode%3C/Column%3E%0A%20%20%20%20%20%20%20%20%20%20%3CCondition%3EEQ%3C/Condition%3E%0A%20%20%20%20%20%20%20%20%20%20%3CValue%3E02%3C/Value%3E%0A%20%20%20%20%20%20%20%20%20%20%3CCloseBracket%3E)%3C/CloseBracket%3E%0A%20%20%20%20%20%20%20%20%3C/Expression%3E%0A%20%20%20%20%20%20%0A%20%20%20%20%3C/Where%3E%0A%20%20%0A%20%20%3COrderBy%3E%0A%20%20%20%20%3CColumn%3EStockCode%3C/Column%3E%0A%20%20%3C/OrderBy%3E%0A%3C/Query%3E%0A
  39 + body:
  40 + encoding: US-ASCII
  41 + string: ''
  42 + headers:
  43 + User-Agent:
  44 + - Syspro/7 RubyBindings/0.1.0
  45 + Content-Type:
  46 + - application/x-www-form-urlencoded
  47 + Accept-Encoding:
  48 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  49 + Accept:
  50 + - "*/*"
  51 + response:
  52 + status:
  53 + code: 200
  54 + message: OK
  55 + headers:
  56 + Content-Length:
  57 + - '436'
  58 + Content-Type:
  59 + - application/octet-stream
  60 + Server:
  61 + - Microsoft-HTTPAPI/2.0
  62 + Date:
  63 + - Fri, 06 Apr 2018 19:23:43 GMT
  64 + body:
  65 + encoding: UTF-8
  66 + string: "<?xml version=\"1.0\" encoding=\"Windows-1252\"?>\n<InvMaster Language='05'
  67 + Language2='EN' CssStyle='' DecFormat='1' DateFormat='01' Role='01' Version='7.0.048'
  68 + OperatorPrimaryRole=' '>\n<HeaderDetails>\n<TableName>InvMaster</TableName>\n<Columns>\n<Column>StockCode</Column>\n</Columns>\n<OrderBy>\n<Column>StockCode</Column>\n</OrderBy>\n</HeaderDetails>\n<Row>\n<StockCode>02</StockCode>\n</Row>\n<RowsReturned>
  69 + \ 1</RowsReturned>\n</InvMaster>\n "
  70 + http_version:
  71 + recorded_at: Fri, 06 Apr 2018 19:23:41 GMT
  72 +recorded_with: VCR 4.0.0
test/cassettes/test_successful_logoff.yml 0 → 100644
  1 +---
  2 +http_interactions:
  3 +- request:
  4 + method: get
  5 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/logon?CompanyId=L&CompanyPassword=&Operator=wland&OperatorPassword=piperita2016
  6 + body:
  7 + encoding: US-ASCII
  8 + string: ''
  9 + headers:
  10 + User-Agent:
  11 + - Syspro/7 RubyBindings/0.1.0
  12 + Content-Type:
  13 + - application/x-www-form-urlencoded
  14 + Accept-Encoding:
  15 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  16 + Accept:
  17 + - "*/*"
  18 + response:
  19 + status:
  20 + code: 200
  21 + message: OK
  22 + headers:
  23 + Content-Length:
  24 + - '36'
  25 + Content-Type:
  26 + - application/octet-stream
  27 + Server:
  28 + - Microsoft-HTTPAPI/2.0
  29 + Date:
  30 + - Fri, 06 Apr 2018 19:22:53 GMT
  31 + body:
  32 + encoding: UTF-8
  33 + string: '989D81EB0B184A499E7AC2E28724EE9000 '
  34 + http_version:
  35 + recorded_at: Fri, 06 Apr 2018 19:22:52 GMT
  36 +- request:
  37 + method: get
  38 + uri: http://syspro.wildlandlabs.com:90/SYSPROWCFService/Rest/logoff?UserId=989D81EB0B184A499E7AC2E28724EE9000%20%20
  39 + body:
  40 + encoding: US-ASCII
  41 + string: ''
  42 + headers:
  43 + User-Agent:
  44 + - Syspro/7 RubyBindings/0.1.0
  45 + Content-Type:
  46 + - application/x-www-form-urlencoded
  47 + Accept-Encoding:
  48 + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
  49 + Accept:
  50 + - "*/*"
  51 + response:
  52 + status:
  53 + code: 200
  54 + message: OK
  55 + headers:
  56 + Content-Length:
  57 + - '1'
  58 + Content-Type:
  59 + - application/octet-stream
  60 + Server:
  61 + - Microsoft-HTTPAPI/2.0
  62 + Date:
  63 + - Fri, 06 Apr 2018 19:22:53 GMT
  64 + body:
  65 + encoding: UTF-8
  66 + string: '0'
  67 + http_version:
  68 + recorded_at: Fri, 06 Apr 2018 19:22:52 GMT
  69 +recorded_with: VCR 4.0.0
test/client_test.rb
@@ -4,6 +4,8 @@ require &#39;test_helper&#39; @@ -4,6 +4,8 @@ require &#39;test_helper&#39;
4 4
5 class SysproClientTest < Minitest::Test 5 class SysproClientTest < Minitest::Test
6 extend Minitest::Spec::DSL 6 extend Minitest::Spec::DSL
  7 + before { VCR.insert_cassette name }
  8 + after { VCR.eject_cassette }
7 9
8 let(:client) { ::Syspro::SysproClient.new } 10 let(:client) { ::Syspro::SysproClient.new }
9 11
test/logoff_test.rb
@@ -4,6 +4,8 @@ require &#39;test_helper&#39; @@ -4,6 +4,8 @@ require &#39;test_helper&#39;
4 4
5 class LogoffTest < Minitest::Test 5 class LogoffTest < Minitest::Test
6 extend Minitest::Spec::DSL 6 extend Minitest::Spec::DSL
  7 + before { VCR.insert_cassette name }
  8 + after { VCR.eject_cassette }
7 9
8 let(:username) { 'wland' } 10 let(:username) { 'wland' }
9 let(:password) { 'piperita2016' } 11 let(:password) { 'piperita2016' }
test/logon_test.rb
@@ -4,6 +4,8 @@ require &#39;test_helper&#39; @@ -4,6 +4,8 @@ require &#39;test_helper&#39;
4 4
5 class LogonTest < Minitest::Test 5 class LogonTest < Minitest::Test
6 extend Minitest::Spec::DSL 6 extend Minitest::Spec::DSL
  7 + before { VCR.insert_cassette name }
  8 + after { VCR.eject_cassette }
7 9
8 let(:username) { 'wland' } 10 let(:username) { 'wland' }
9 let(:password) { 'piperita2016' } 11 let(:password) { 'piperita2016' }
test/query_test.rb
@@ -3,9 +3,19 @@ @@ -3,9 +3,19 @@
3 require 'test_helper' 3 require 'test_helper'
4 4
5 class QueryTest < Minitest::Test 5 class QueryTest < Minitest::Test
6 - def test_query_browse # rubocop:disable Metrics/MethodLength  
7 - user_id = Syspro::Logon.logon('wland', 'piperita2016', 'L', '') 6 + extend Minitest::Spec::DSL
  7 + before { VCR.insert_cassette name }
  8 + after { VCR.eject_cassette }
  9 +
  10 + let(:username) { 'wland' }
  11 + let(:password) { 'piperita2016' }
  12 + let(:company) { 'L' }
  13 + let(:company_password) { '' }
  14 + let(:user_id) do
  15 + Syspro::Logon.logon(username, password, company, company_password)
  16 + end
8 17
  18 + def test_query_browse # rubocop:disable Metrics/MethodLength
9 combrw = Syspro::BusinessObjects::ComBrw.new 19 combrw = Syspro::BusinessObjects::ComBrw.new
10 combrw.browse_name = 'InvMaster' 20 combrw.browse_name = 'InvMaster'
11 combrw.start_condition = '' 21 combrw.start_condition = ''
@@ -23,8 +33,6 @@ class QueryTest &lt; Minitest::Test @@ -23,8 +33,6 @@ class QueryTest &lt; Minitest::Test
23 end 33 end
24 34
25 def test_query_query # rubocop:disable Metrics/MethodLength 35 def test_query_query # rubocop:disable Metrics/MethodLength
26 - user_id = Syspro::Logon.logon('wland', 'piperita2016', 'L', '')  
27 -  
28 comfnd = Syspro::BusinessObjects::ComFnd.new 36 comfnd = Syspro::BusinessObjects::ComFnd.new
29 comfnd.table_name = 'InvMaster' 37 comfnd.table_name = 'InvMaster'
30 comfnd.return_rows = 5 38 comfnd.return_rows = 5
@@ -49,8 +57,6 @@ class QueryTest &lt; Minitest::Test @@ -49,8 +57,6 @@ class QueryTest &lt; Minitest::Test
49 end 57 end
50 58
51 def test_query_fetch 59 def test_query_fetch
52 - user_id = Syspro::Logon.logon('wland', 'piperita2016', 'L', '')  
53 -  
54 comfch = Syspro::BusinessObjects::ComFch.new 60 comfch = Syspro::BusinessObjects::ComFch.new
55 comfch.table_name = 'InvMaster' 61 comfch.table_name = 'InvMaster'
56 comfch.key = '02' 62 comfch.key = '02'
test/test_helper.rb
@@ -5,3 +5,14 @@ require &#39;syspro&#39; @@ -5,3 +5,14 @@ require &#39;syspro&#39;
5 5
6 require 'pry' 6 require 'pry'
7 require 'minitest/autorun' 7 require 'minitest/autorun'
  8 +require 'minitest-vcr'
  9 +require 'webmock'
  10 +
  11 +VCR.configure do |c|
  12 + c.cassette_library_dir = 'test/cassettes'
  13 + c.hook_into :webmock
  14 + # TODO: change passwords and move them to ENV
  15 + # c.filter_sensitive_data() { ENV[] }
  16 +end
  17 +
  18 +MinitestVcr::Spec.configure!