spec/v3/item_definition_spec.rb in amee-4.1.7 vs spec/v3/item_definition_spec.rb in amee-4.2.0

- old
+ new

@@ -17,39 +17,41 @@ describe AMEE::Admin::ItemDefinition, "with an authenticated v3 connection" do it "should parse XML correctly" do connection = flexmock "connection" - connection.should_receive(:v3_get).with("/#{AMEE_API_VERSION}/definitions/472D78F6584E;full", {}).and_return(fixture('itemdef.xml')) + connection.should_receive(:v3_get).with("/#{AMEE::Connection.api_version}/definitions/472D78F6584E;full", {}).and_return(fixture('itemdef.xml')) @data = AMEE::Admin::ItemDefinition.load(connection,"472D78F6584E") @data.uid.should == "472D78F6584E" @data.created.should == DateTime.new(2009,8,31,12,41,18) @data.modified.should == DateTime.new(2010,8,13,14,54,33) @data.name.should == "Power Stations And Stuff" @data.drill_downs.should == %w{state county metroArea city zipCode plantName powWowWow} @data.usages.should == ['usageOne', 'usageThree', 'usageOther'] + @data.algorithms['default'].should eql "D4E4779CA7AB" end - it "should parse XML correctly if there are no usages" do + it "should parse XML correctly if there are no usages or algorithms" do connection = flexmock "connection" - connection.should_receive(:v3_get).with("/#{AMEE_API_VERSION}/definitions/472D78F6584E;full", {}).and_return(fixture('itemdef_no_usages.xml')) + connection.should_receive(:v3_get).with("/#{AMEE::Connection.api_version}/definitions/472D78F6584E;full", {}).and_return(fixture('itemdef_no_usages.xml')) @data = AMEE::Admin::ItemDefinition.load(connection,"472D78F6584E") @data.usages.should == [] + @data.algorithms.should == {} end it "should parse XML correctly if there is just one usage" do connection = flexmock "connection" - connection.should_receive(:v3_get).with("/#{AMEE_API_VERSION}/definitions/472D78F6584E;full", {}).and_return(fixture('itemdef_one_usage.xml')) + connection.should_receive(:v3_get).with("/#{AMEE::Connection.api_version}/definitions/472D78F6584E;full", {}).and_return(fixture('itemdef_one_usage.xml')) @data = AMEE::Admin::ItemDefinition.load(connection,"472D78F6584E") @data.usages.should == ['usageOne'] end it "should be able to load an item value definition list" do connection = flexmock "connection" - connection.should_receive(:v3_get).with("/#{AMEE_API_VERSION}/definitions/472D78F6584E;full", {}).and_return(fixture('itemdef.xml')).once + connection.should_receive(:v3_get).with("/#{AMEE::Connection.api_version}/definitions/472D78F6584E;full", {}).and_return(fixture('itemdef.xml')).once connection.should_receive(:retries).and_return(0).once - connection.should_receive(:v3_get).with("/#{AMEE_API_VERSION}/definitions/472D78F6584E/values;full", {:resultStart => 0, :resultLimit => 10}).and_return(fixture('ivdlist.xml')).once + connection.should_receive(:v3_get).with("/#{AMEE::Connection.api_version}/definitions/472D78F6584E/values;full", {:resultStart => 0, :resultLimit => 10}).and_return(fixture('ivdlist.xml')).once @data = AMEE::Admin::ItemDefinition.load(connection,"472D78F6584E") @data.uid.should == "472D78F6584E" @list=@data.item_value_definition_list @list.length.should==29 @list.first.uid.should=='C531CA64DD72' @@ -75,23 +77,23 @@ end it "should fail gracefully with incorrect data" do connection = flexmock "connection" xml = '<?xml version="1.0" encoding="UTF-8"?><Resources>' - connection.should_receive(:v3_get).with("/#{AMEE_API_VERSION}/definitions/472D78F6584E;full", {}).and_return(xml) + connection.should_receive(:v3_get).with("/#{AMEE::Connection.api_version}/definitions/472D78F6584E;full", {}).and_return(xml) lambda{AMEE::Admin::ItemDefinition.load(connection, "472D78F6584E")}.should raise_error(AMEE::BadData) end it "should fail gracefully on other errors" do connection = flexmock "connection" - connection.should_receive(:v3_get).with("/#{AMEE_API_VERSION}/definitions/472D78F6584E;full", {}).and_raise("unidentified error") + connection.should_receive(:v3_get).with("/#{AMEE::Connection.api_version}/definitions/472D78F6584E;full", {}).and_raise("unidentified error") lambda{AMEE::Admin::ItemDefinition.load(connection, "472D78F6584E")}.should raise_error(AMEE::BadData) end it "should support updating" do connection = flexmock "connection" - connection.should_receive(:v3_get).with("/#{AMEE_API_VERSION}/definitions/472D78F6584E;full", {}).and_return('<?xml version="1.0" encoding="UTF-8" standalone="no"?><Representation><ItemDefinition created="2009-08-31T12:41:18Z" modified="2010-08-13T14:54:33Z" status="ACTIVE" uid="472D78F6584E"><Name>Power Stations And Stuff</Name><DrillDown>state,county,metroArea,city,zipCode,plantName,powWowWow</DrillDown><Usages><Usage present="true"><Name>usageOne</Name></Usage><Usage present="true"><Name>usageThree</Name></Usage><Usage present="false"><Name>usageOther</Name></Usage></Usages></ItemDefinition><Status>OK</Status><Version>#{AMEE_API_VERSION}.0</Version></Representation>').once - connection.should_receive(:v3_put).with("/#{AMEE_API_VERSION}/definitions/472D78F6584E", :usages => 'usageOther,usageThree,usageOne', :name => 'Power Stations And Stuff').once + connection.should_receive(:v3_get).with("/#{AMEE::Connection.api_version}/definitions/472D78F6584E;full", {}).and_return('<?xml version="1.0" encoding="UTF-8" standalone="no"?><Representation><ItemDefinition created="2009-08-31T12:41:18Z" modified="2010-08-13T14:54:33Z" status="ACTIVE" uid="472D78F6584E"><Name>Power Stations And Stuff</Name><DrillDown>state,county,metroArea,city,zipCode,plantName,powWowWow</DrillDown><Usages><Usage present="true"><Name>usageOne</Name></Usage><Usage present="true"><Name>usageThree</Name></Usage><Usage present="false"><Name>usageOther</Name></Usage></Usages></ItemDefinition><Status>OK</Status><Version>#{AMEE::Connection.api_version}.0</Version></Representation>').once + connection.should_receive(:v3_put).with("/#{AMEE::Connection.api_version}/definitions/472D78F6584E", :usages => 'usageOther,usageThree,usageOne', :name => 'Power Stations And Stuff').once @data = AMEE::Admin::ItemDefinition.load(connection,"472D78F6584E") @data.usages.should == ['usageOne', 'usageThree', 'usageOther'] @data.usages.reverse! @data.save! end \ No newline at end of file