Skip to content

Commit

Permalink
Support full representation return on profile item update
Browse files Browse the repository at this point in the history
  • Loading branch information
georgepalmer committed Oct 11, 2011
1 parent 7e575c7 commit 1b1b89d
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 3 deletions.
1 change: 1 addition & 0 deletions lib/amee/profile_item.rb
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,7 @@ def self.update(connection, path, options = {})
if options[:duration] && connection.version >= 2
options[:duration] = "PT#{options[:duration] * 86400}S"
end
options.merge!(:representation => 'full') if (connection.version >= 2) && (get_item == true)
# Go
response = connection.put(path, options)
if get_item
Expand Down
14 changes: 11 additions & 3 deletions spec/profile_item_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -438,17 +438,25 @@
connection.should_receive(:version).and_return(2.0)
connection.should_receive(:get).with("/profiles/92C8DB30F46B/home/energy/quantity/6E9B1517D753", {}).and_return(flexmock(:body => '<?xml version="1.0" encoding="UTF-8"?><Resources><ProfileItemResource><ProfileItem created="2008-09-12 17:20:32.0" modified="2008-09-12 17:20:32.0" uid="6E9B1517D753"><Name>6E9B1517D753</Name><ItemValues><ItemValue uid="0A671BF3D593"><Path>kgPerMonth</Path><Name>kg Per Month</Name><Value>10</Value><ItemValueDefinition uid="51D072825D41"><Path>kgPerMonth</Path><Name>kg Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="36A771FC1D1A"><Name>kg</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="0E4CF565A5AB"><Path>kWhPerMonth</Path><Name>kWh Per Month</Name><Value>0</Value><ItemValueDefinition uid="4DF458FD0E4D"><Path>kWhPerMonth</Path><Name>kWh Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="26A5C97D3728"><Name>kWh</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="D58700708731"><Path>litresPerMonth</Path><Name>Litres Per Month</Name><Value>0</Value><ItemValueDefinition uid="C9B7E19269A5"><Path>litresPerMonth</Path><Name>Litres Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="06B8CFC5A521"><Name>litre</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="BD1267F2D001"><Path>kWhReadingCurrent</Path><Name>kWh reading current</Name><Value>0</Value><ItemValueDefinition uid="8A468E75C8E8"><Path>kWhReadingCurrent</Path><Name>kWh reading current</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="45433E48B39F"><Name>amount</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="B199A908A259"><Path>kWhReadingLast</Path><Name>kWh reading last</Name><Value>0</Value><ItemValueDefinition uid="2328DC7F23AE"><Path>kWhReadingLast</Path><Name>kWh reading last</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="45433E48B39F"><Name>amount</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue></ItemValues><Environment uid="5F5887BCF726"/><ItemDefinition uid="212C818D8F16"/><DataCategory uid="A92693A99BAD"><Name>Quantity</Name><Path>quantity</Path></DataCategory><AmountPerMonth>25.200</AmountPerMonth><ValidFrom>20080901</ValidFrom><End>false</End><DataItem uid="A70149AF0F26"/><Profile uid="92C8DB30F46B"/></ProfileItem><Path>/home/energy/quantity/6E9B1517D753</Path><Profile uid="92C8DB30F46B"/></ProfileItemResource></Resources>'))
connection.should_receive(:put).with("/profiles/92C8DB30F46B/home/energy/quantity/6E9B1517D753", {}).and_return(flexmock(:body => ''))
connection.should_receive(:get).with("/profiles/92C8DB30F46B/home/energy/quantity/6E9B1517D753", {}).and_return(flexmock(:body => '<?xml version="1.0" encoding="UTF-8"?><Resources><ProfileItemResource><ProfileItem created="2008-09-12 17:20:32.0" modified="2008-09-12 17:20:32.0" uid="6E9B1517D753"><Name>6E9B1517D753</Name><ItemValues><ItemValue uid="0A671BF3D593"><Path>kgPerMonth</Path><Name>kg Per Month</Name><Value>10</Value><ItemValueDefinition uid="51D072825D41"><Path>kgPerMonth</Path><Name>kg Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="36A771FC1D1A"><Name>kg</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="0E4CF565A5AB"><Path>kWhPerMonth</Path><Name>kWh Per Month</Name><Value>0</Value><ItemValueDefinition uid="4DF458FD0E4D"><Path>kWhPerMonth</Path><Name>kWh Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="26A5C97D3728"><Name>kWh</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="D58700708731"><Path>litresPerMonth</Path><Name>Litres Per Month</Name><Value>0</Value><ItemValueDefinition uid="C9B7E19269A5"><Path>litresPerMonth</Path><Name>Litres Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="06B8CFC5A521"><Name>litre</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="BD1267F2D001"><Path>kWhReadingCurrent</Path><Name>kWh reading current</Name><Value>0</Value><ItemValueDefinition uid="8A468E75C8E8"><Path>kWhReadingCurrent</Path><Name>kWh reading current</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="45433E48B39F"><Name>amount</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="B199A908A259"><Path>kWhReadingLast</Path><Name>kWh reading last</Name><Value>0</Value><ItemValueDefinition uid="2328DC7F23AE"><Path>kWhReadingLast</Path><Name>kWh reading last</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="45433E48B39F"><Name>amount</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue></ItemValues><Environment uid="5F5887BCF726"/><ItemDefinition uid="212C818D8F16"/><DataCategory uid="A92693A99BAD"><Name>Quantity</Name><Path>quantity</Path></DataCategory><AmountPerMonth>25.200</AmountPerMonth><ValidFrom>20080901</ValidFrom><End>false</End><DataItem uid="A70149AF0F26"/><Profile uid="92C8DB30F46B"/></ProfileItem><Path>/home/energy/quantity/6E9B1517D753</Path><Profile uid="92C8DB30F46B"/></ProfileItemResource></Resources>'))

item = AMEE::Profile::Item.get(connection, "/profiles/92C8DB30F46B/home/energy/quantity/6E9B1517D753")
item.update()
item.update(:get_item => false)
end

it "without having an existing item" do
connection = flexmock "connection"
connection.should_receive(:version).and_return(2.0)
connection.should_receive(:put).with("/profiles/92C8DB30F46B/home/energy/quantity/6E9B1517D753", {:representation => "full"}).and_return(flexmock(:body => '<?xml version="1.0" encoding="UTF-8"?><Resources><ProfileItemResource><ProfileItem created="2008-09-12 17:20:32.0" modified="2008-09-12 17:20:32.0" uid="6E9B1517D753"><Name>6E9B1517D753</Name><ItemValues><ItemValue uid="0A671BF3D593"><Path>kgPerMonth</Path><Name>kg Per Month</Name><Value>10</Value><ItemValueDefinition uid="51D072825D41"><Path>kgPerMonth</Path><Name>kg Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="36A771FC1D1A"><Name>kg</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="0E4CF565A5AB"><Path>kWhPerMonth</Path><Name>kWh Per Month</Name><Value>0</Value><ItemValueDefinition uid="4DF458FD0E4D"><Path>kWhPerMonth</Path><Name>kWh Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="26A5C97D3728"><Name>kWh</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="D58700708731"><Path>litresPerMonth</Path><Name>Litres Per Month</Name><Value>0</Value><ItemValueDefinition uid="C9B7E19269A5"><Path>litresPerMonth</Path><Name>Litres Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="06B8CFC5A521"><Name>litre</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="BD1267F2D001"><Path>kWhReadingCurrent</Path><Name>kWh reading current</Name><Value>0</Value><ItemValueDefinition uid="8A468E75C8E8"><Path>kWhReadingCurrent</Path><Name>kWh reading current</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="45433E48B39F"><Name>amount</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="B199A908A259"><Path>kWhReadingLast</Path><Name>kWh reading last</Name><Value>0</Value><ItemValueDefinition uid="2328DC7F23AE"><Path>kWhReadingLast</Path><Name>kWh reading last</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="45433E48B39F"><Name>amount</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue></ItemValues><Environment uid="5F5887BCF726"/><ItemDefinition uid="212C818D8F16"/><DataCategory uid="A92693A99BAD"><Name>Quantity</Name><Path>quantity</Path></DataCategory><AmountPerMonth>25.200</AmountPerMonth><ValidFrom>20080901</ValidFrom><End>false</End><DataItem uid="A70149AF0F26"/><Profile uid="92C8DB30F46B"/></ProfileItem><Path>/home/energy/quantity/6E9B1517D753</Path><Profile uid="92C8DB30F46B"/></ProfileItemResource></Resources>'))

AMEE::Profile::Item.update(connection, "/profiles/92C8DB30F46B/home/energy/quantity/6E9B1517D753")
end

it "without having an existing item and without getting the result back" do
connection = flexmock "connection"
connection.should_receive(:version).and_return(2.0)
connection.should_receive(:put).with("/profiles/92C8DB30F46B/home/energy/quantity/6E9B1517D753", {}).and_return(flexmock(:body => ''))
connection.should_receive(:get).with("/profiles/92C8DB30F46B/home/energy/quantity/6E9B1517D753", {}).and_return(flexmock(:body => '<?xml version="1.0" encoding="UTF-8"?><Resources><ProfileItemResource><ProfileItem created="2008-09-12 17:20:32.0" modified="2008-09-12 17:20:32.0" uid="6E9B1517D753"><Name>6E9B1517D753</Name><ItemValues><ItemValue uid="0A671BF3D593"><Path>kgPerMonth</Path><Name>kg Per Month</Name><Value>10</Value><ItemValueDefinition uid="51D072825D41"><Path>kgPerMonth</Path><Name>kg Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="36A771FC1D1A"><Name>kg</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="0E4CF565A5AB"><Path>kWhPerMonth</Path><Name>kWh Per Month</Name><Value>0</Value><ItemValueDefinition uid="4DF458FD0E4D"><Path>kWhPerMonth</Path><Name>kWh Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="26A5C97D3728"><Name>kWh</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="D58700708731"><Path>litresPerMonth</Path><Name>Litres Per Month</Name><Value>0</Value><ItemValueDefinition uid="C9B7E19269A5"><Path>litresPerMonth</Path><Name>Litres Per Month</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="06B8CFC5A521"><Name>litre</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="BD1267F2D001"><Path>kWhReadingCurrent</Path><Name>kWh reading current</Name><Value>0</Value><ItemValueDefinition uid="8A468E75C8E8"><Path>kWhReadingCurrent</Path><Name>kWh reading current</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="45433E48B39F"><Name>amount</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue><ItemValue uid="B199A908A259"><Path>kWhReadingLast</Path><Name>kWh reading last</Name><Value>0</Value><ItemValueDefinition uid="2328DC7F23AE"><Path>kWhReadingLast</Path><Name>kWh reading last</Name><FromProfile>true</FromProfile><FromData>false</FromData><ValueDefinition uid="45433E48B39F"><Name>amount</Name><ValueType>DOUBLE</ValueType></ValueDefinition></ItemValueDefinition></ItemValue></ItemValues><Environment uid="5F5887BCF726"/><ItemDefinition uid="212C818D8F16"/><DataCategory uid="A92693A99BAD"><Name>Quantity</Name><Path>quantity</Path></DataCategory><AmountPerMonth>25.200</AmountPerMonth><ValidFrom>20080901</ValidFrom><End>false</End><DataItem uid="A70149AF0F26"/><Profile uid="92C8DB30F46B"/></ProfileItem><Path>/home/energy/quantity/6E9B1517D753</Path><Profile uid="92C8DB30F46B"/></ProfileItemResource></Resources>'))
AMEE::Profile::Item.update(connection, "/profiles/92C8DB30F46B/home/energy/quantity/6E9B1517D753")
AMEE::Profile::Item.update(connection, "/profiles/92C8DB30F46B/home/energy/quantity/6E9B1517D753", :get_item => false)
end

end

0 comments on commit 1b1b89d

Please sign in to comment.