amee 2.7.0 → 3.0.1

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.
Files changed (86) hide show
  1. data/{CHANGELOG → CHANGELOG.txt} +11 -0
  2. data/Gemfile.lock +37 -0
  3. data/LICENSE.txt +27 -0
  4. data/{README → README.txt} +6 -4
  5. data/Rakefile +84 -17
  6. data/VERSION +1 -1
  7. data/amee.gemspec +172 -0
  8. data/bin/ameesh +3 -0
  9. data/examples/create_profile.rb +3 -0
  10. data/examples/create_profile_item.rb +3 -0
  11. data/examples/list_profiles.rb +3 -0
  12. data/examples/view_data_category.rb +3 -0
  13. data/examples/view_data_item.rb +3 -0
  14. data/examples/view_profile_item.rb +3 -0
  15. data/init.rb +3 -0
  16. data/lib/amee/collection.rb +3 -0
  17. data/lib/amee/connection.rb +3 -0
  18. data/lib/amee/data_category.rb +3 -0
  19. data/lib/amee/data_item.rb +3 -0
  20. data/lib/amee/data_item_value.rb +3 -0
  21. data/lib/amee/data_item_value_history.rb +3 -0
  22. data/lib/amee/data_object.rb +3 -0
  23. data/lib/amee/drill_down.rb +3 -0
  24. data/lib/amee/exceptions.rb +3 -0
  25. data/lib/amee/item_definition.rb +3 -0
  26. data/lib/amee/item_value_definition.rb +3 -0
  27. data/lib/amee/logger.rb +3 -0
  28. data/lib/amee/object.rb +3 -0
  29. data/lib/amee/pager.rb +3 -0
  30. data/lib/amee/parse_helper.rb +3 -0
  31. data/lib/amee/profile.rb +3 -0
  32. data/lib/amee/profile_category.rb +3 -0
  33. data/lib/amee/profile_item.rb +3 -0
  34. data/lib/amee/profile_item_value.rb +3 -0
  35. data/lib/amee/profile_object.rb +3 -0
  36. data/lib/amee/rails.rb +3 -0
  37. data/lib/amee/shell.rb +3 -0
  38. data/lib/amee/user.rb +3 -0
  39. data/lib/amee/v3/collection.rb +61 -0
  40. data/lib/amee/v3/connection.rb +99 -0
  41. data/lib/amee/v3/item_definition.rb +73 -0
  42. data/lib/amee/v3/item_value_definition.rb +99 -0
  43. data/lib/amee/v3/item_value_definition_list.rb +53 -0
  44. data/lib/amee/v3/meta_helper.rb +28 -0
  45. data/lib/amee/v3/return_value_definition.rb +202 -0
  46. data/lib/amee/v3.rb +12 -0
  47. data/lib/amee.rb +4 -0
  48. data/rails/init.rb +3 -0
  49. data/spec/amee_spec.rb +3 -0
  50. data/spec/cache_spec.rb +3 -0
  51. data/spec/connection_spec.rb +3 -0
  52. data/spec/data_category_spec.rb +4 -1
  53. data/spec/data_item_spec.rb +3 -0
  54. data/spec/data_item_value_history_spec.rb +3 -0
  55. data/spec/data_item_value_spec.rb +3 -0
  56. data/spec/data_object_spec.rb +3 -0
  57. data/spec/drill_down_spec.rb +3 -0
  58. data/spec/fixtures/BD88D30D1214.xml +1 -0
  59. data/spec/fixtures/empty_return_value_definition_list.xml +6 -0
  60. data/spec/fixtures/itemdef.xml +20 -0
  61. data/spec/fixtures/itemdef_441BF4BEA15B.xml +14 -0
  62. data/spec/fixtures/itemdef_no_usages.xml +10 -0
  63. data/spec/fixtures/itemdef_one_usage.xml +14 -0
  64. data/spec/fixtures/ivdlist.xml +605 -0
  65. data/spec/fixtures/ivdlist_BD88D30D1214.xml +1 -0
  66. data/spec/fixtures/return_value_definition.xml +18 -0
  67. data/spec/fixtures/return_value_definition_list.xml +46 -0
  68. data/spec/item_definition_spec.rb +12 -9
  69. data/spec/item_value_definition_spec.rb +29 -19
  70. data/spec/logger_spec.rb +2 -2
  71. data/spec/object_spec.rb +3 -0
  72. data/spec/parse_helper_spec.rb +3 -0
  73. data/spec/profile_category_spec.rb +3 -0
  74. data/spec/profile_item_spec.rb +3 -0
  75. data/spec/profile_item_value_spec.rb +3 -0
  76. data/spec/profile_object_spec.rb +3 -0
  77. data/spec/profile_spec.rb +3 -0
  78. data/spec/rails_spec.rb +3 -0
  79. data/spec/spec_helper.rb +7 -0
  80. data/spec/user_spec.rb +3 -0
  81. data/spec/v3/connection_spec.rb +169 -0
  82. data/spec/v3/item_definition_spec.rb +328 -0
  83. data/spec/v3/item_value_definition_spec.rb +116 -0
  84. data/spec/v3/return_value_definition_spec.rb +90 -0
  85. metadata +38 -10
  86. data/COPYING +0 -19
@@ -0,0 +1,46 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <Representation>
3
+ <ReturnValueDefinitions>
4
+ <ReturnValueDefinition uid="308BD9B0E78E">
5
+ <ItemDefinition uid="5648C049F599">
6
+ <Name>AMEEM Prexistent Test Itemdef</Name>
7
+ </ItemDefinition>
8
+ <ValueDefinition uid="45433E48B39F">
9
+ <Name>amount</Name>
10
+ <ValueType>DECIMAL</ValueType>
11
+ </ValueDefinition>
12
+ <Unit>kg</Unit>
13
+ <PerUnit>month</PerUnit>
14
+ <Type>CO2</Type>
15
+ <Default>false</Default>
16
+ </ReturnValueDefinition>
17
+ <ReturnValueDefinition uid="9D094FF46FD2">
18
+ <ItemDefinition uid="5648C049F599">
19
+ <Name>AMEEM Prexistent Test Itemdef</Name>
20
+ </ItemDefinition>
21
+ <ValueDefinition uid="45433E48B39F">
22
+ <Name>amount</Name>
23
+ <ValueType>DECIMAL</ValueType>
24
+ </ValueDefinition>
25
+ <Unit>kg</Unit>
26
+ <PerUnit>month</PerUnit>
27
+ <Type>CO2e</Type>
28
+ <Default>false</Default>
29
+ </ReturnValueDefinition>
30
+ <ReturnValueDefinition uid="C21026DD57C5">
31
+ <ItemDefinition uid="5648C049F599">
32
+ <Name>AMEEM Prexistent Test Itemdef</Name>
33
+ </ItemDefinition>
34
+ <ValueDefinition uid="45433E48B39F">
35
+ <Name>amount</Name>
36
+ <ValueType>DECIMAL</ValueType>
37
+ </ValueDefinition>
38
+ <Unit>kg</Unit>
39
+ <PerUnit>month</PerUnit>
40
+ <Type>CH4</Type>
41
+ <Default>false</Default>
42
+ </ReturnValueDefinition>
43
+ </ReturnValueDefinitions>
44
+ <Status>OK</Status>
45
+ <Version>3.1.0</Version>
46
+ </Representation>
@@ -1,3 +1,6 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
5
 
3
6
  describe AMEE::Admin::ItemDefinition do
@@ -32,11 +35,11 @@ describe AMEE::Admin::ItemDefinition, "with an authenticated connection" do
32
35
 
33
36
  it "should parse XML correctly" do
34
37
  connection = flexmock "connection"
35
- connection.should_receive(:get).with("/definitions/itemDefinitions/BD88D30D1214", {}).and_return(flexmock(:body => '<?xml version="1.0" encoding="UTF-8" standalone="no"?><Resources><ItemDefinitionResource><ItemDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="BD88D30D1214"><Name>Bus Generic</Name><DrillDown>type</DrillDown><Environment uid="5F5887BCF726"/></ItemDefinition></ItemDefinitionResource></Resources>'))
38
+ connection.should_receive(:v3_get).with("/3.3/definitions/BD88D30D1214;full", {}).and_return(fixture('BD88D30D1214.xml'))
36
39
  @data = AMEE::Admin::ItemDefinition.load(connection,"BD88D30D1214")
37
40
  @data.uid.should == "BD88D30D1214"
38
- @data.created.should == DateTime.new(2007,7,27,9,30,44)
39
- @data.modified.should == DateTime.new(2007,7,27,9,30,44)
41
+ @data.created.should == DateTime.new(2007,7,27,7,30,44)
42
+ @data.modified.should == DateTime.new(2011,2,16,8,40,06)
40
43
  @data.name.should == "Bus Generic"
41
44
  @data.drill_downs.should == ["type"]
42
45
  @data.full_path.should == '/definitions/itemDefinitions/BD88D30D1214'
@@ -44,11 +47,11 @@ describe AMEE::Admin::ItemDefinition, "with an authenticated connection" do
44
47
 
45
48
  it "should parse JSON correctly" do
46
49
  connection = flexmock "connection"
47
- connection.should_receive(:get).with("/definitions/itemDefinitions/BD88D30D1214", {}).and_return(flexmock(:body => '{"itemDefinition":{"uid":"BD88D30D1214","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","name":"Bus Generic","drillDown":"type","modified":"2007-07-27 09:30:44.0"}}'))
50
+ connection.should_receive(:v3_get).with("/3.3/definitions/BD88D30D1214;full", {}).and_return(fixture('BD88D30D1214.xml'))
48
51
  @data = AMEE::Admin::ItemDefinition.load(connection,"BD88D30D1214")
49
52
  @data.uid.should == "BD88D30D1214"
50
- @data.created.should == DateTime.new(2007,7,27,9,30,44)
51
- @data.modified.should == DateTime.new(2007,7,27,9,30,44)
53
+ @data.created.should == DateTime.new(2007,7,27,7,30,44)
54
+ @data.modified.should == DateTime.new(2011,2,16,8,40,06)
52
55
  @data.name.should == "Bus Generic"
53
56
  @data.drill_downs.should == ["type"]
54
57
  @data.full_path.should == '/definitions/itemDefinitions/BD88D30D1214'
@@ -56,14 +59,14 @@ describe AMEE::Admin::ItemDefinition, "with an authenticated connection" do
56
59
 
57
60
  it "should be able to load an item value definition list" do
58
61
  connection = flexmock "connection"
59
- connection.should_receive(:get).with("/definitions/itemDefinitions/BD88D30D1214", {}).and_return(flexmock(:body => '<?xml version="1.0" encoding="UTF-8" standalone="no"?><Resources><ItemDefinitionResource><ItemDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="BD88D30D1214"><Name>Bus Generic</Name><DrillDown>type</DrillDown><Environment uid="5F5887BCF726"/></ItemDefinition></ItemDefinitionResource></Resources>'))
62
+ connection.should_receive(:v3_get).with("/3.3/definitions/BD88D30D1214;full", {}).and_return(fixture('BD88D30D1214.xml'))
60
63
  connection.should_receive(:retries).and_return(0).once
61
- connection.should_receive(:get).with("/definitions/itemDefinitions/BD88D30D1214/itemValueDefinitions", {}).and_return(flexmock(:body => '<?xml version="1.0" encoding="UTF-8" standalone="no"?><Resources><ItemValueDefinitionsResource><Environment uid="5F5887BCF726"/><ItemDefinition uid="BD88D30D1214"/><ItemValueDefinitions><ItemValueDefinition uid="A8A212610A57"><Path>distancePerJourney</Path><Name>Distance per journey</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="D2AB505D2D91"><Path>type</Path><Name>Type</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>true</DrillDown></ItemValueDefinition><ItemValueDefinition uid="41EC337E5C79"><Path>numberOfJourneys</Path><Name>Number of journeys</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="9BAFC976044B"><Path>source</Path><Name>Source</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="9813267B616E"><Path>country</Path><Name>Country</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="263DE76AF8AA"><Path>kgCO2PerPassengerKmIE</Path><Name>kgCO2 Per Passenger Km IE</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="996AE5477B3F"><Name>kgCO2PerKm</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="F5550D71085F"><Path>kgCO2PerKmPassenger</Path><Name>kgCO2 Per Passenger Km</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="996AE5477B3F"><Name>kgCO2PerKm</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="FE166C7602BB"><Path>typicalJourneyDistance</Path><Name>Typical journey distance</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="2F76AB4E3C0F"><Path>journeyFrequency</Path><Name>Journey frequency</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="B0F02E544603"><Path>numberOfPassengers</Path><Name>Number of passengers</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="28D0B8C4F52A"><Path>useTypicalDistance</Path><Name>Use typical distance</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="6334117D28A0"><Path>distanceKmPerMonth</Path><Name>Distance Km Per Month</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="B691497F1CF2"><Name>kM</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><PerUnit>month</PerUnit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="98EA75911467"><Path>distancePerJourney</Path><Name>Distance per journey</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="584BEA802996"><Path>isReturn</Path><Name>Is return</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="6CBF739E12F0"><Path>distance</Path><Name>Distance</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><PerUnit>year</PerUnit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition></ItemValueDefinitions></ItemValueDefinitionsResource></Resources>')).once
64
+ connection.should_receive(:v3_get).with("/3.3/definitions/BD88D30D1214/values;full", {:resultStart=>0, :resultLimit=>10}).and_return(fixture('ivdlist_BD88D30D1214.xml')).once
62
65
  @data = AMEE::Admin::ItemDefinition.load(connection,"BD88D30D1214")
63
66
  @data.uid.should == "BD88D30D1214"
64
67
  @list=@data.item_value_definition_list
65
68
  @list.length.should==15
66
- @list.first.uid.should=='A8A212610A57'
69
+ @list.first.uid.should=='9813267B616E'
67
70
  end
68
71
 
69
72
  it "should fail gracefully with incorrect data" do
@@ -1,3 +1,6 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
5
 
3
6
  describe AMEE::Admin::ItemValueDefinition do
@@ -32,13 +35,13 @@ describe AMEE::Admin::ItemValueDefinitionList, "with an authenticated connection
32
35
  it "should parse XML correctly" do
33
36
  connection = flexmock "connection"
34
37
  connection.should_receive(:retries).and_return(0).once
35
- connection.should_receive(:get).with("/definitions/itemDefinitions/BD88D30D1214/itemValueDefinitions", {}).and_return(flexmock(:body => '<?xml version="1.0" encoding="UTF-8" standalone="no"?><Resources><ItemValueDefinitionsResource><Environment uid="5F5887BCF726"/><ItemDefinition uid="BD88D30D1214"/><ItemValueDefinitions><ItemValueDefinition uid="A8A212610A57"><Path>distancePerJourney</Path><Name>Distance per journey</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="D2AB505D2D91"><Path>type</Path><Name>Type</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>true</DrillDown></ItemValueDefinition><ItemValueDefinition uid="41EC337E5C79"><Path>numberOfJourneys</Path><Name>Number of journeys</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="9BAFC976044B"><Path>source</Path><Name>Source</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="9813267B616E"><Path>country</Path><Name>Country</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="263DE76AF8AA"><Path>kgCO2PerPassengerKmIE</Path><Name>kgCO2 Per Passenger Km IE</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="996AE5477B3F"><Name>kgCO2PerKm</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="F5550D71085F"><Path>kgCO2PerKmPassenger</Path><Name>kgCO2 Per Passenger Km</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="996AE5477B3F"><Name>kgCO2PerKm</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="FE166C7602BB"><Path>typicalJourneyDistance</Path><Name>Typical journey distance</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="2F76AB4E3C0F"><Path>journeyFrequency</Path><Name>Journey frequency</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="B0F02E544603"><Path>numberOfPassengers</Path><Name>Number of passengers</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="28D0B8C4F52A"><Path>useTypicalDistance</Path><Name>Use typical distance</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="6334117D28A0"><Path>distanceKmPerMonth</Path><Name>Distance Km Per Month</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="B691497F1CF2"><Name>kM</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><PerUnit>month</PerUnit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="98EA75911467"><Path>distancePerJourney</Path><Name>Distance per journey</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="584BEA802996"><Path>isReturn</Path><Name>Is return</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="6CBF739E12F0"><Path>distance</Path><Name>Distance</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><PerUnit>year</PerUnit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition></ItemValueDefinitions></ItemValueDefinitionsResource></Resources>'))
38
+ connection.should_receive(:v3_get).with("/3.3/definitions/BD88D30D1214/values;full", {:resultStart=>0, :resultLimit=>10}).and_return(fixture('ivdlist_BD88D30D1214.xml')).once
36
39
  @data = AMEE::Admin::ItemValueDefinitionList.new(connection,"BD88D30D1214")
37
40
  @data.length.should==15
38
- @data.first.uid.should=='A8A212610A57'
39
- @data.first.name.should == "Distance per journey"
40
- @data.first.path.should == "distancePerJourney"
41
- @data.first.unit.should == "km"
41
+ @data.first.uid.should=='9813267B616E'
42
+ @data.first.name.should == "Country"
43
+ @data.first.path.should == "country"
44
+ @data.first.unit.should == nil
42
45
  @data.first.perunit.should == nil
43
46
  @data.first.profile?.should == true
44
47
  @data.first.drill?.should == false
@@ -48,24 +51,31 @@ describe AMEE::Admin::ItemValueDefinitionList, "with an authenticated connection
48
51
  it "should apply block filter correctly" do
49
52
  connection = flexmock "connection"
50
53
  connection.should_receive(:retries).and_return(0).once
51
- connection.should_receive(:get).with("/definitions/itemDefinitions/BD88D30D1214/itemValueDefinitions", {}).and_return(flexmock(:body => '<?xml version="1.0" encoding="UTF-8" standalone="no"?><Resources><ItemValueDefinitionsResource><Environment uid="5F5887BCF726"/><ItemDefinition uid="BD88D30D1214"/><ItemValueDefinitions><ItemValueDefinition uid="A8A212610A57"><Path>distancePerJourney</Path><Name>Distance per journey</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="D2AB505D2D91"><Path>type</Path><Name>Type</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>true</DrillDown></ItemValueDefinition><ItemValueDefinition uid="41EC337E5C79"><Path>numberOfJourneys</Path><Name>Number of journeys</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="9BAFC976044B"><Path>source</Path><Name>Source</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="9813267B616E"><Path>country</Path><Name>Country</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="263DE76AF8AA"><Path>kgCO2PerPassengerKmIE</Path><Name>kgCO2 Per Passenger Km IE</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="996AE5477B3F"><Name>kgCO2PerKm</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="F5550D71085F"><Path>kgCO2PerKmPassenger</Path><Name>kgCO2 Per Passenger Km</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="996AE5477B3F"><Name>kgCO2PerKm</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="FE166C7602BB"><Path>typicalJourneyDistance</Path><Name>Typical journey distance</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>false</FromProfile><FromData>true</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="2F76AB4E3C0F"><Path>journeyFrequency</Path><Name>Journey frequency</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="B0F02E544603"><Path>numberOfPassengers</Path><Name>Number of passengers</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="28D0B8C4F52A"><Path>useTypicalDistance</Path><Name>Use typical distance</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="6334117D28A0"><Path>distanceKmPerMonth</Path><Name>Distance Km Per Month</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="B691497F1CF2"><Name>kM</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><PerUnit>month</PerUnit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="98EA75911467"><Path>distancePerJourney</Path><Name>Distance per journey</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="584BEA802996"><Path>isReturn</Path><Name>Is return</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="CCEB59CACE1B"><Name>text</Name><ValueType>TEXT</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition><ItemValueDefinition uid="6CBF739E12F0"><Path>distance</Path><Name>Distance</Name><ValueDefinition created="2007-07-27 09:30:44.0" modified="2007-07-27 09:30:44.0" uid="45433E48B39F"><Name>amount</Name><ValueType>DECIMAL</ValueType><Description/><Environment uid="5F5887BCF726"/></ValueDefinition><Unit>km</Unit><PerUnit>year</PerUnit><FromProfile>true</FromProfile><FromData>false</FromData><DrillDown>false</DrillDown></ItemValueDefinition></ItemValueDefinitions></ItemValueDefinitionsResource></Resources>'))
54
+ connection.should_receive(:v3_get).with("/3.3/definitions/BD88D30D1214/values;full", {:resultStart=>0, :resultLimit=>10}).and_return(fixture('ivdlist_BD88D30D1214.xml')).once
52
55
  @data = AMEE::Admin::ItemValueDefinitionList.new(connection,"BD88D30D1214") do |x|
53
- x.uid == 'A8A212610A57' ? x.uid : nil
56
+ x.uid == 'A8A212610A57' ? x : nil
54
57
  end
55
- @data.length.should==1
56
- @data.first.should=='A8A212610A57'
58
+ #@data.length.should==1
59
+ @data.first.uid.should=='A8A212610A57'
60
+ @data.first.name.should == "Distance per journey"
61
+ @data.first.path.should == "distancePerJourney"
62
+ @data.first.unit.should == "km"
63
+ @data.first.perunit.should == nil
64
+ @data.first.profile?.should == true
65
+ @data.first.drill?.should == false
66
+ @data.first.data?.should == false
57
67
  end
58
68
 
59
69
  it "should parse JSON correctly" do
60
70
  connection = flexmock "connection"
61
71
  connection.should_receive(:retries).and_return(0).once
62
- connection.should_receive(:get).with("/definitions/itemDefinitions/BD88D30D1214/itemValueDefinitions", {}).and_return(flexmock(:body => '{"environment":{"uid":"5F5887BCF726"},"itemValueDefinitions":[{"uid":"A8A212610A57","unit":"km","name":"Distance per journey","fromData":false,"path":"distancePerJourney","fromProfile":true,"valueDefinition":{"uid":"45433E48B39F","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"amount","valueType":"DECIMAL","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"uid":"D2AB505D2D91","name":"Type","fromData":true,"path":"type","fromProfile":false,"valueDefinition":{"uid":"CCEB59CACE1B","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"text","valueType":"TEXT","modified":"2007-07-27 09:30:44.0"},"drillDown":true},{"uid":"41EC337E5C79","name":"Number of journeys","fromData":false,"path":"numberOfJourneys","fromProfile":true,"valueDefinition":{"uid":"45433E48B39F","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"amount","valueType":"DECIMAL","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"uid":"9BAFC976044B","name":"Source","fromData":true,"path":"source","fromProfile":false,"valueDefinition":{"uid":"CCEB59CACE1B","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"text","valueType":"TEXT","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"uid":"9813267B616E","name":"Country","fromData":false,"path":"country","fromProfile":true,"valueDefinition":{"uid":"CCEB59CACE1B","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"text","valueType":"TEXT","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"uid":"263DE76AF8AA","name":"kgCO2 Per Passenger Km IE","fromData":true,"path":"kgCO2PerPassengerKmIE","fromProfile":false,"valueDefinition":{"uid":"996AE5477B3F","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"kgCO2PerKm","valueType":"DECIMAL","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"uid":"F5550D71085F","name":"kgCO2 Per Passenger Km","fromData":true,"path":"kgCO2PerKmPassenger","fromProfile":false,"valueDefinition":{"uid":"996AE5477B3F","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"kgCO2PerKm","valueType":"DECIMAL","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"uid":"FE166C7602BB","name":"Typical journey distance","fromData":true,"path":"typicalJourneyDistance","fromProfile":false,"valueDefinition":{"uid":"45433E48B39F","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"amount","valueType":"DECIMAL","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"uid":"2F76AB4E3C0F","name":"Journey frequency","fromData":false,"path":"journeyFrequency","fromProfile":true,"valueDefinition":{"uid":"CCEB59CACE1B","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"text","valueType":"TEXT","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"uid":"B0F02E544603","name":"Number of passengers","fromData":false,"path":"numberOfPassengers","fromProfile":true,"valueDefinition":{"uid":"45433E48B39F","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"amount","valueType":"DECIMAL","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"uid":"28D0B8C4F52A","name":"Use typical distance","fromData":false,"path":"useTypicalDistance","fromProfile":true,"valueDefinition":{"uid":"CCEB59CACE1B","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"text","valueType":"TEXT","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"perUnit":"month","uid":"6334117D28A0","unit":"km","name":"Distance Km Per Month","fromData":false,"path":"distanceKmPerMonth","fromProfile":true,"valueDefinition":{"uid":"B691497F1CF2","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"kM","valueType":"DECIMAL","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"uid":"98EA75911467","unit":"km","name":"Distance per journey","fromData":false,"path":"distancePerJourney","fromProfile":true,"valueDefinition":{"uid":"45433E48B39F","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"amount","valueType":"DECIMAL","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"uid":"584BEA802996","name":"Is return","fromData":false,"path":"isReturn","fromProfile":true,"valueDefinition":{"uid":"CCEB59CACE1B","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"text","valueType":"TEXT","modified":"2007-07-27 09:30:44.0"},"drillDown":false},{"perUnit":"year","uid":"6CBF739E12F0","unit":"km","name":"Distance","fromData":false,"path":"distance","fromProfile":true,"valueDefinition":{"uid":"45433E48B39F","environment":{"uid":"5F5887BCF726"},"created":"2007-07-27 09:30:44.0","description":"","name":"amount","valueType":"DECIMAL","modified":"2007-07-27 09:30:44.0"},"drillDown":false}],"itemDefinition":{"uid":"BD88D30D1214"}}'))
72
+ connection.should_receive(:v3_get).with("/3.3/definitions/BD88D30D1214/values;full", {:resultStart=>0, :resultLimit=>10}).and_return(fixture('ivdlist_BD88D30D1214.xml')).once
63
73
  @data = AMEE::Admin::ItemValueDefinitionList.new(connection,"BD88D30D1214")
64
74
  @data.length.should==15
65
- @data.first.uid.should=='A8A212610A57'
66
- @data.first.name.should == "Distance per journey"
67
- @data.first.path.should == "distancePerJourney"
68
- @data.first.unit.should == "km"
75
+ @data.first.uid.should=='9813267B616E'
76
+ @data.first.name.should == "Country"
77
+ @data.first.path.should == "country"
78
+ @data.first.unit.should == nil
69
79
  @data.first.perunit.should == nil
70
80
  @data.first.profile?.should == true
71
81
  @data.first.drill?.should == false
@@ -76,8 +86,8 @@ describe AMEE::Admin::ItemValueDefinitionList, "with an authenticated connection
76
86
  connection = flexmock "connection"
77
87
  connection.should_receive(:retries).and_return(0).once
78
88
  xml = '<?xml version="1.0" encoding="UTF-8"?><Resources></Resources>'
79
- connection.should_receive(:get).with("/definitions/itemDefinitions/BD88D30D1214/itemValueDefinitions", {}).and_return(flexmock(:body => xml))
80
- connection.should_receive(:expire).with("/definitions/itemDefinitions/BD88D30D1214/itemValueDefinitions").once
89
+ connection.should_receive(:v3_get).with("/3.3/definitions/BD88D30D1214/values;full", {:resultStart=>0, :resultLimit=>10}).and_return(xml)
90
+ connection.should_receive(:expire).with("/3.3/definitions/BD88D30D1214/values;full").once
81
91
  lambda{AMEE::Admin::ItemValueDefinitionList.new(connection, "BD88D30D1214")}.should raise_error(AMEE::BadData)
82
92
  end
83
93
 
@@ -85,15 +95,15 @@ describe AMEE::Admin::ItemValueDefinitionList, "with an authenticated connection
85
95
  connection = flexmock "connection"
86
96
  connection.should_receive(:retries).and_return(0).once
87
97
  json = '{}'
88
- connection.should_receive(:get).with("/definitions/itemDefinitions/BD88D30D1214/itemValueDefinitions", {}).and_return(flexmock(:body => json))
89
- connection.should_receive(:expire).with("/definitions/itemDefinitions/BD88D30D1214/itemValueDefinitions").once
98
+ connection.should_receive(:v3_get).with("/3.3/definitions/BD88D30D1214/values;full", {:resultStart=>0, :resultLimit=>10}).and_return(json)
99
+ connection.should_receive(:expire).with("/3.3/definitions/BD88D30D1214/values;full").once
90
100
  lambda{AMEE::Admin::ItemValueDefinitionList.new(connection, "BD88D30D1214")}.should raise_error(AMEE::BadData)
91
101
  end
92
102
 
93
103
  it "should fail gracefully on other errors" do
94
104
  connection = flexmock "connection"
95
105
  connection.should_receive(:retries).and_return(0).once
96
- connection.should_receive(:get).with("/definitions/itemDefinitions/BD88D30D1214/itemValueDefinitions", {}).and_raise(Timeout::Error)
106
+ connection.should_receive(:v3_get).with("/3.3/definitions/BD88D30D1214/values;full", {:resultStart=>0, :resultLimit=>10}).and_raise(Timeout::Error)
97
107
  lambda{AMEE::Admin::ItemValueDefinitionList.new(connection, "BD88D30D1214")}.should raise_error(Timeout::Error)
98
108
  end
99
109
  end
data/spec/logger_spec.rb CHANGED
@@ -1,5 +1,5 @@
1
- # To change this template, choose Tools | Templates
2
- # and open the template in the editor.
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
3
 
4
4
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
5
5
 
data/spec/object_spec.rb CHANGED
@@ -1,3 +1,6 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
5
 
3
6
  describe AMEE::Object do
@@ -1,3 +1,6 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
5
 
3
6
  test_set = {
@@ -1,3 +1,6 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
5
 
3
6
  describe AMEE::Profile::Category do
@@ -1,3 +1,6 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
5
 
3
6
  describe AMEE::Profile::Item do
@@ -1,3 +1,6 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
5
 
3
6
  describe AMEE::Profile::ItemValue do
@@ -1,3 +1,6 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
5
 
3
6
  describe AMEE::Profile::Object do
data/spec/profile_spec.rb CHANGED
@@ -1,3 +1,6 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
5
 
3
6
  describe AMEE::Profile::Profile do
data/spec/rails_spec.rb CHANGED
@@ -1,3 +1,6 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
5
  require 'amee/rails'
3
6
  require 'active_record'
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,10 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require 'rubygems'
2
5
  require 'spec'
3
6
  require 'rspec_spinner'
7
+ require 'activesupport'
4
8
 
5
9
  $:.unshift(File.dirname(__FILE__) + '/../lib')
6
10
  require 'amee'
@@ -54,3 +58,6 @@ end
54
58
  def fixture(filename)
55
59
  File.read File.dirname(__FILE__)+'/fixtures/'+filename
56
60
  end
61
+
62
+ XMLPreamble='<?xml version="1.0" encoding="UTF-8"?>'
63
+
data/spec/user_spec.rb CHANGED
@@ -1,3 +1,6 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
1
4
  require File.dirname(__FILE__) + '/spec_helper.rb'
2
5
 
3
6
  describe AMEE::Admin::User do
@@ -0,0 +1,169 @@
1
+ # Copyright (C) 2008-2011 AMEE UK Ltd. - http://www.amee.com
2
+ # Released as Open Source Software under the BSD 3-Clause license. See LICENSE.txt for details.
3
+
4
+ require File.dirname(__FILE__) + '/../spec_helper.rb'
5
+
6
+ describe AMEE::Connection do
7
+
8
+ before :each do
9
+ @c = AMEE::Connection.new('server.example.com', 'username', 'password', :ssl => false)
10
+ end
11
+
12
+ it "should have a connection to meta server" do
13
+ flexmock(Net::HTTP).new_instances.should_receive(:start => nil)
14
+ @c.v3_connection.should_not be_nil
15
+ end
16
+
17
+ it "should login and know the path to the server" do
18
+ flexmock(Net::HTTP::Get).new_instances do |mock|
19
+ mock.should_receive(:basic_auth).with('username','password').once
20
+ end
21
+ flexmock(Net::HTTP).should_receive(:new).with('platform-api-server.example.com', 80).once.and_return {
22
+ mock=flexmock
23
+ mock.should_receive(:start => nil)
24
+ mock.should_receive(:started? => true)
25
+ mock.should_receive(:request).and_return(flexmock(:code => '200', :body => "OK"))
26
+ mock.should_receive(:finish => nil)
27
+ mock
28
+ }
29
+ @c.v3_get("/#{AMEE_API_VERSION}/categories/SomeCategory").should == "OK"
30
+ end
31
+
32
+ it "should be able to get from meta server" do
33
+ flexmock(Net::HTTP).new_instances do |mock|
34
+ mock.should_receive(:start => nil)
35
+ mock.should_receive(:request).and_return(flexmock(:code => '200', :body => "OK"))
36
+ mock.should_receive(:finish => nil)
37
+ end
38
+ @c.v3_get("/#{AMEE_API_VERSION}/categories/SomeCategory").should == "OK"
39
+ end
40
+
41
+ it "should be able to handle failed gets from meta server" do
42
+ flexmock(Net::HTTP).new_instances do |mock|
43
+ mock.should_receive(:start => nil)
44
+ mock.should_receive(:request).and_return(flexmock(:code => '404'))
45
+ mock.should_receive(:finish => nil)
46
+ end
47
+ lambda {
48
+ @c.v3_get("/#{AMEE_API_VERSION}/categories/SomeCategory").should == nil
49
+ }.should raise_error(AMEE::NotFound, "The URL was not found on the server.\nRequest: GET /#{AMEE_API_VERSION}/categories/SomeCategory")
50
+ end
51
+
52
+ it "should be able to post to meta server" do
53
+ flexmock(Net::HTTP).new_instances do |mock|
54
+ mock.should_receive(:start => nil)
55
+ mock.should_receive(:request).and_return(flexmock(:code => '200', :body => "OK"))
56
+ mock.should_receive(:finish => nil)
57
+ end
58
+ @c.v3_put("/#{AMEE_API_VERSION}/categories/SomeCategory", {:arg => "test"}).should == "OK"
59
+ end
60
+
61
+ it "should be able to handle failed gets from meta server" do
62
+ flexmock(Net::HTTP).new_instances do |mock|
63
+ mock.should_receive(:start => nil)
64
+ mock.should_receive(:request).and_return(flexmock(:code => '404'))
65
+ mock.should_receive(:finish => nil)
66
+ end
67
+ lambda {
68
+ @c.v3_put("/#{AMEE_API_VERSION}/categories/SomeCategory", {:arg => "test"}).should == "OK"
69
+ }.should raise_error
70
+ end
71
+
72
+ it "should generate correct hostname for platform-dev.amee.com" do
73
+ c = AMEE::Connection.new('platform-dev.amee.com', 'username', 'password')
74
+ c.send(:v3_hostname).should eql 'platform-api-dev.amee.com'
75
+ end
76
+
77
+ it "should generate correct hostname for platform-science.amee.com" do
78
+ c = AMEE::Connection.new('platform-science.amee.com', 'username', 'password')
79
+ c.send(:v3_hostname).should eql 'platform-api-science.amee.com'
80
+ end
81
+
82
+ it "should generate correct hostname for stage.amee.com" do
83
+ c = AMEE::Connection.new('stage.amee.com', 'username', 'password')
84
+ c.send(:v3_hostname).should eql 'platform-api-stage.amee.com'
85
+ end
86
+
87
+ it "should generate correct hostname for live.amee.com" do
88
+ c = AMEE::Connection.new('live.amee.com', 'username', 'password')
89
+ c.send(:v3_hostname).should eql 'platform-api-live.amee.com'
90
+ end
91
+
92
+ it "should not change modern hostnames" do
93
+ c = AMEE::Connection.new('platform-api-test.amee.com', 'username', 'password')
94
+ c.send(:v3_hostname).should eql 'platform-api-test.amee.com'
95
+ end
96
+
97
+ end
98
+
99
+ describe AMEE::Connection, "with retry enabled" do
100
+
101
+ before :each do
102
+ @c = AMEE::Connection.new('server.example.com', 'username', 'password', :ssl => false, :retries => 2)
103
+ end
104
+
105
+ [
106
+ Timeout::Error,
107
+ Errno::EINVAL,
108
+ Errno::ECONNRESET,
109
+ EOFError,
110
+ Net::HTTPBadResponse,
111
+ Net::HTTPHeaderSyntaxError,
112
+ Net::ProtocolError
113
+ ].each do |e|
114
+
115
+ it "should retry after #{e.name} the correct number of times" do
116
+ flexmock(Net::HTTP).new_instances do |mock|
117
+ mock.should_receive(:start => nil)
118
+ mock.should_receive(:request).and_raise(e.new).twice
119
+ mock.should_receive(:request).and_return(flexmock(:code => '200', :body => '{}')).once
120
+ mock.should_receive(:finish => nil)
121
+ end
122
+ lambda {
123
+ @c.v3_get("/#{AMEE_API_VERSION}/categories/SomeCategory")
124
+ }.should_not raise_error
125
+ end
126
+
127
+ it "should retry #{e.name} the correct number of times and raise error on failure" do
128
+ flexmock(Net::HTTP).new_instances do |mock|
129
+ mock.should_receive(:start => nil)
130
+ mock.should_receive(:request).and_raise(e.new).times(3)
131
+ mock.should_receive(:finish => nil)
132
+ end
133
+ lambda {
134
+ @c.v3_get("/#{AMEE_API_VERSION}/categories/SomeCategory")
135
+ }.should raise_error(e)
136
+ end
137
+ end
138
+
139
+ [
140
+ '502',
141
+ '503',
142
+ '504'
143
+ ].each do |e|
144
+
145
+ it "should retry after #{e} the correct number of times" do
146
+ flexmock(Net::HTTP).new_instances do |mock|
147
+ mock.should_receive(:start => nil)
148
+ mock.should_receive(:request).and_return(flexmock(:code => e, :body => '{}')).twice
149
+ mock.should_receive(:request).and_return(flexmock(:code => '200', :body => '{}')).once
150
+ mock.should_receive(:finish => nil)
151
+ end
152
+ lambda {
153
+ @c.v3_get("/#{AMEE_API_VERSION}/categories/SomeCategory")
154
+ }.should_not raise_error
155
+ end
156
+
157
+ it "should retry #{e} the correct number of times and raise error on failure" do
158
+ flexmock(Net::HTTP).new_instances do |mock|
159
+ mock.should_receive(:start => nil)
160
+ mock.should_receive(:request).and_return(flexmock(:code => e, :body => '{}')).times(3)
161
+ mock.should_receive(:finish => nil)
162
+ end
163
+ lambda {
164
+ @c.v3_get("/#{AMEE_API_VERSION}/categories/SomeCategory")
165
+ }.should raise_error(AMEE::ConnectionFailed)
166
+ end
167
+ end
168
+
169
+ end