chrome_data 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,13 @@
1
+ require_relative '../minitest_helper'
2
+
3
+ describe ChromeData::ModelYear do
4
+ describe '.all' do
5
+ it 'starts with next year' do
6
+ ChromeData::ModelYear.all.first.must_equal Time.now.year + 1
7
+ end
8
+
9
+ it 'ends with 1981' do
10
+ ChromeData::ModelYear.all.last.must_equal 1981
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,49 @@
1
+ require_relative '../minitest_helper'
2
+
3
+ describe ChromeData::Style do
4
+ it 'returns a proper request name' do
5
+ ChromeData::Style.request_name.must_equal 'getStyles'
6
+ end
7
+
8
+ describe '.find_all_by_model_id' do
9
+ before do
10
+ ChromeData.configure do |c|
11
+ c.account_number = '123456'
12
+ c.account_secret = '1111111111111111'
13
+ end
14
+ end
15
+
16
+ def find_styles
17
+ VCR.use_cassette('wsdl') do
18
+ VCR.use_cassette('2013/divisions/13/models/24997/styles') do
19
+ @models = ChromeData::Style.find_all_by_model_id(24997) # 2013 Ford Mustang
20
+ end
21
+ end
22
+ end
23
+
24
+ it 'returns array of Style objects' do
25
+ find_styles
26
+
27
+ @models.first.must_be_instance_of ChromeData::Style
28
+ @models.size.must_equal 11
29
+ end
30
+
31
+ it 'sets ID on Style objects' do
32
+ find_styles
33
+
34
+ @models.first.id.must_equal 349411
35
+ end
36
+
37
+ it 'sets name on Style objects' do
38
+ find_styles
39
+
40
+ @models.first.name.must_equal '2dr Conv GT'
41
+ end
42
+
43
+ it 'caches with proper key' do
44
+ ChromeData.expects(:cache).with('get_styles-model_id-24997')
45
+
46
+ find_styles
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,78 @@
1
+ require_relative '../minitest_helper'
2
+
3
+ describe ChromeData::Vehicle do
4
+ it 'returns a proper request name' do
5
+ ChromeData::Vehicle.request_name.must_equal 'describeVehicle'
6
+ end
7
+
8
+ describe '.find_by_vin' do
9
+ before do
10
+ ChromeData.configure do |c|
11
+ c.account_number = '123456'
12
+ c.account_secret = '1111111111111111'
13
+ end
14
+
15
+ VCR.use_cassette('wsdl') do
16
+ VCR.use_cassette('vehicles/WDDGF4HB1CR000000') do
17
+ @vehicle = ChromeData::Vehicle.find_by_vin('WDDGF4HB1CR000000')
18
+ end
19
+ end
20
+ end
21
+
22
+ it 'returns a Vehicle object' do
23
+ @vehicle.must_be_instance_of ChromeData::Vehicle
24
+ end
25
+
26
+ it 'sets model year on Vehicle' do
27
+ @vehicle.model_year.must_equal 2012
28
+ end
29
+
30
+ it 'sets division on Vehicle' do
31
+ @vehicle.division.must_equal 'Mercedes-Benz'
32
+ end
33
+
34
+ it 'sets model on Vehicle' do
35
+ @vehicle.model.must_equal 'C-Class'
36
+ end
37
+
38
+ describe 'styles' do
39
+ it 'sets id' do
40
+ @vehicle.styles[0].id.must_equal 337364
41
+ @vehicle.styles[1].id.must_equal 337365
42
+ end
43
+
44
+ it 'sets name' do
45
+ @vehicle.styles[0].name.must_equal '4dr Sdn C250 Sport RWD'
46
+ @vehicle.styles[1].name.must_equal '4dr Sdn C250 Luxury RWD'
47
+ end
48
+
49
+ it 'sets trim' do
50
+ @vehicle.styles[0].trim.must_equal 'C250 Sport'
51
+ @vehicle.styles[1].trim.must_equal 'C250 Luxury'
52
+ end
53
+
54
+ it 'sets name_without_trim' do
55
+ @vehicle.styles[0].name_without_trim.must_equal '4dr Sdn RWD'
56
+ @vehicle.styles[1].name_without_trim.must_equal '4dr Sdn RWD'
57
+ end
58
+
59
+ describe 'body_types' do
60
+ it 'sets name' do
61
+ @vehicle.styles[0].body_types[0].name.must_equal '4dr Car'
62
+ @vehicle.styles[1].body_types[0].name.must_equal '4dr Car'
63
+ end
64
+
65
+ it 'sets id' do
66
+ @vehicle.styles[0].body_types[0].id.must_equal 2
67
+ @vehicle.styles[1].body_types[0].id.must_equal 2
68
+ end
69
+ end
70
+ end
71
+
72
+ describe 'engines' do
73
+ it 'sets type' do
74
+ @vehicle.engines[0].type.must_equal '4 Cylinder Engine'
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,13 @@
1
+ require_relative 'minitest_helper'
2
+
3
+ describe ChromeData do
4
+ before { ChromeData.remove_class_variable :@@config if ChromeData.class_variable_defined? :@@config }
5
+
6
+ it 'yields configuration object to block' do
7
+ ChromeData.configure do |config|
8
+ config.foo = 'bar'
9
+ end
10
+
11
+ ChromeData.config.foo.must_equal 'bar'
12
+ end
13
+ end
@@ -0,0 +1,55 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://services.chromedata.com/Description/7a
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ! "<?xml version=\"1.0\"?>\n<soap:Envelope xmlns:dtns=\"urn:description7a.services.chrome.com\"
9
+ xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <soap:Header/>\n
10
+ \ <soap:Body>\n <dtns:StylesRequest modelId=\"24997\">\n <dtns:accountInfo
11
+ number=\"123456\" secret=\"1111111111111111\" country=\"US\" language=\"en\"/>\n
12
+ \ </dtns:StylesRequest>\n </soap:Body>\n</soap:Envelope>\n"
13
+ headers:
14
+ Content-Type:
15
+ - text/xml;charset=UTF-8
16
+ Content-Length:
17
+ - '369'
18
+ Soapaction:
19
+ - ''
20
+ Accept:
21
+ - ! '*/*'
22
+ User-Agent:
23
+ - Ruby
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ Date:
30
+ - Wed, 20 Mar 2013 02:06:50 GMT
31
+ Server:
32
+ - Apache
33
+ Content-Length:
34
+ - '733'
35
+ P3p:
36
+ - CP="NOI ADMa CUR DEVa OUR IND TAI BUS UNI"
37
+ Connection:
38
+ - close
39
+ Content-Type:
40
+ - text/xml;charset=utf-8
41
+ Chrome:
42
+ - '198'
43
+ body:
44
+ encoding: US-ASCII
45
+ string: <?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><Styles
46
+ xmlns="urn:description7a.services.chrome.com"><responseStatus responseCode="Successful"
47
+ description="Successful"/><style id="349411">2dr Conv GT</style><style id="349412">2dr
48
+ Conv GT Premium</style><style id="349413">2dr Conv Shelby GT500</style><style
49
+ id="349409">2dr Conv V6</style><style id="349410">2dr Conv V6 Premium</style><style
50
+ id="349407">2dr Cpe Boss 302</style><style id="349405">2dr Cpe GT</style><style
51
+ id="349406">2dr Cpe GT Premium</style><style id="349408">2dr Cpe Shelby GT500</style><style
52
+ id="349403">2dr Cpe V6</style><style id="349404">2dr Cpe V6 Premium</style></Styles></S:Body></S:Envelope>
53
+ http_version:
54
+ recorded_at: Wed, 20 Mar 2013 02:06:51 GMT
55
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,70 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://services.chromedata.com/Description/7a
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ! "<?xml version=\"1.0\"?>\n<soap:Envelope xmlns:dtns=\"urn:description7a.services.chrome.com\"
9
+ xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <soap:Header/>\n
10
+ \ <soap:Body>\n <dtns:ModelsRequest>\n <dtns:accountInfo number=\"123456\"
11
+ secret=\"1111111111111111\" country=\"US\" language=\"en\"/>\n <dtns:modelYear>2013</dtns:modelYear>\n
12
+ \ <dtns:divisionId>13</dtns:divisionId>\n </dtns:ModelsRequest>\n </soap:Body>\n</soap:Envelope>\n"
13
+ headers:
14
+ Content-Type:
15
+ - text/xml;charset=UTF-8
16
+ Content-Length:
17
+ - '441'
18
+ Soapaction:
19
+ - ''
20
+ Accept:
21
+ - ! '*/*'
22
+ User-Agent:
23
+ - Ruby
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ Date:
30
+ - Wed, 20 Mar 2013 01:43:28 GMT
31
+ Server:
32
+ - Apache
33
+ Content-Length:
34
+ - '1956'
35
+ P3p:
36
+ - CP="NOI ADMa CUR DEVa OUR IND TAI BUS UNI"
37
+ Connection:
38
+ - close
39
+ Content-Type:
40
+ - text/xml;charset=utf-8
41
+ Chrome:
42
+ - '198'
43
+ body:
44
+ encoding: US-ASCII
45
+ string: <?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><Models
46
+ xmlns="urn:description7a.services.chrome.com"><responseStatus responseCode="Successful"
47
+ description="Successful"/><model id="25459">C-Max Energi</model><model id="25455">C-Max
48
+ Hybrid</model><model id="25134">Econoline Cargo Van</model><model id="25567">Econoline
49
+ Commercial Chassis</model><model id="25568">Econoline Commercial Cutaway</model><model
50
+ id="25565">Econoline Wagon</model><model id="24937">Edge</model><model id="25055">Escape</model><model
51
+ id="25572">Expedition</model><model id="25573">Expedition EL</model><model
52
+ id="24934">Explorer</model><model id="25621">F-150</model><model id="25199">Fiesta</model><model
53
+ id="24973">Flex</model><model id="25451">Focus</model><model id="25458">Focus
54
+ Electric</model><model id="25457">Fusion</model><model id="25886">Fusion Energi</model><model
55
+ id="24997">Mustang</model><model id="21803">Sedan Police Interceptor</model><model
56
+ id="25801">Super Duty F-250 SRW</model><model id="25777">Super Duty F-350
57
+ DRW</model><model id="25802">Super Duty F-350 DRW</model><model id="25805">Super
58
+ Duty F-350 SRW</model><model id="25776">Super Duty F-350 SRW</model><model
59
+ id="25790">Super Duty F-450 DRW</model><model id="25778">Super Duty F-450
60
+ DRW</model><model id="25341">Super Duty F-53 Motorhome</model><model id="25779">Super
61
+ Duty F-550 DRW</model><model id="25342">Super Duty F-59 Stripped Chassis</model><model
62
+ id="25914">Super Duty F-650 Pro Loader</model><model id="25915">Super Duty
63
+ F-650 Pro Loader Gas</model><model id="25916">Super Duty F-650 Straight Frame</model><model
64
+ id="25917">Super Duty F-650 Straight Frame Gas</model><model id="25918">Super
65
+ Duty F-750 Straight Frame</model><model id="24933">Taurus</model><model id="25135">Transit
66
+ Connect</model><model id="25345">Transit Connect Wagon</model><model id="21811">Utility
67
+ Police Interceptor</model></Models></S:Body></S:Envelope>
68
+ http_version:
69
+ recorded_at: Wed, 20 Mar 2013 01:43:28 GMT
70
+ recorded_with: VCR 2.4.0
@@ -0,0 +1,63 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://services.chromedata.com/Description/7a
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ! "<?xml version=\"1.0\"?>\n<soap:Envelope xmlns:dtns=\"urn:description7a.services.chrome.com\"
9
+ xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n <soap:Header/>\n
10
+ \ <soap:Body>\n <dtns:DivisionsRequest modelYear=\"2013\">\n <dtns:accountInfo
11
+ number=\"123456\" secret=\"1111111111111111\" country=\"US\" language=\"en\"/>\n
12
+ \ </dtns:DivisionsRequest>\n </soap:Body>\n</soap:Envelope>\n"
13
+ headers:
14
+ Content-Type:
15
+ - text/xml;charset=UTF-8
16
+ Content-Length:
17
+ - '376'
18
+ Soapaction:
19
+ - ''
20
+ Accept:
21
+ - ! '*/*'
22
+ User-Agent:
23
+ - Ruby
24
+ response:
25
+ status:
26
+ code: 200
27
+ message: OK
28
+ headers:
29
+ Date:
30
+ - Tue, 19 Mar 2013 23:50:43 GMT
31
+ Server:
32
+ - Apache
33
+ Content-Length:
34
+ - '1595'
35
+ P3p:
36
+ - CP="NOI ADMa CUR DEVa OUR IND TAI BUS UNI"
37
+ Connection:
38
+ - close
39
+ Content-Type:
40
+ - text/xml;charset=utf-8
41
+ Chrome:
42
+ - '218'
43
+ body:
44
+ encoding: US-ASCII
45
+ string: <?xml version='1.0' encoding='UTF-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><Divisions
46
+ xmlns="urn:description7a.services.chrome.com"><responseStatus responseCode="Successful"
47
+ description="Successful"/><division id="1">Acura</division><division id="4">Audi</division><division
48
+ id="45">Bentley</division><division id="5">BMW</division><division id="6">Buick</division><division
49
+ id="7">Cadillac</division><division id="8">Chevrolet</division><division id="9">Chrysler</division><division
50
+ id="11">Dodge</division><division id="59">FIAT</division><division id="13">Ford</division><division
51
+ id="15">GMC</division><division id="16">Honda</division><division id="17">Hyundai</division><division
52
+ id="18">Infiniti</division><division id="19">Isuzu</division><division id="20">Jaguar</division><division
53
+ id="21">Jeep</division><division id="22">Kia</division><division id="23">Land
54
+ Rover</division><division id="24">Lexus</division><division id="25">Lincoln</division><division
55
+ id="26">Mazda</division><division id="27">Mercedes-Benz</division><division
56
+ id="2">MINI</division><division id="29">Mitsubishi</division><division id="30">Nissan</division><division
57
+ id="34">Porsche</division><division id="57">Ram</division><division id="49">Rolls-Royce</division><division
58
+ id="52">Scion</division><division id="42">Smart</division><division id="37">Subaru</division><division
59
+ id="38">Suzuki</division><division id="56">Tesla</division><division id="39">Toyota</division><division
60
+ id="40">Volkswagen</division><division id="41">Volvo</division></Divisions></S:Body></S:Envelope>
61
+ http_version:
62
+ recorded_at: Tue, 19 Mar 2013 23:50:43 GMT
63
+ recorded_with: VCR 2.4.0