test/leap/test_report.rb in leap-0.4.4 vs test/leap/test_report.rb in leap-0.4.5

- old
+ new

@@ -1,24 +1,35 @@ require 'helper' +class Vagabond + include Characterizable + + characterize do + has :scruples + has :tenacity do + displays { |t| "ferocious" } + end + end +end + class Leap::ReportTest < Test::Unit::TestCase context 'to_xml' do should 'serialize to xml' do choc = Leap::Quorum.new('with chocolate chips', {}, Proc.new {}) mac = Leap::Quorum.new('with macadamia nuts', {}, Proc.new {}) - committee = Leap::Committee.new 'Senate Committee on Chocolate Cookies' + committee = Leap::Committee.new :scruples committee.instance_variable_set :@quorums, [choc, mac] - report = Leap::Report.new committee, choc => 'good' + report = Leap::Report.new Vagabond.new, committee, choc => 'good' output = '' report.to_xml(:target => output) - assert_equal(<<XML, output) + assert_equal(<<-XML, output) <?xml version=\"1.0\" encoding=\"UTF-8\"?> <report> <committee> - <name type="string">Senate Committee on Chocolate Cookies</name> + <name type="string">scruples</name> <quorums type="array"> <quorum> <name type="string">with chocolate chips</name> <requirements type="array"> </requirements> @@ -47,9 +58,77 @@ </appreciates> <complies type="array"> </complies> </quorum> </report> -XML + XML + end + should 'use a custom conclusion' do + choc = Leap::Quorum.new('with chocolate chips', {}, Proc.new {}) + mac = Leap::Quorum.new('with macadamia nuts', {}, Proc.new {}) + committee = Leap::Committee.new :tenacity + committee.instance_variable_set :@quorums, [choc, mac] + + report = Leap::Report.new Vagabond.new, committee, choc => 'tough' + + output = '' + report.to_xml :target => output + assert_equal(<<-XML, output) +<?xml version=\"1.0\" encoding=\"UTF-8\"?> +<report> + <committee> + <name type="string">tenacity</name> + <quorums type="array"> + <quorum> + <name type="string">with chocolate chips</name> + <requirements type="array"> + </requirements> + <appreciates type="array"> + </appreciates> + <complies type="array"> + </complies> + </quorum> + <quorum> + <name type="string">with macadamia nuts</name> + <requirements type="array"> + </requirements> + <appreciates type="array"> + </appreciates> + <complies type="array"> + </complies> + </quorum> + </quorums> + </committee> + <conclusion type="string">ferocious</conclusion> + <quorum> + <name type="string">with chocolate chips</name> + <requirements type="array"> + </requirements> + <appreciates type="array"> + </appreciates> + <complies type="array"> + </complies> + </quorum> +</report> + XML + end + end + + context 'formatted_conclusion' do + should 'return the regular conclusion if there is no custom format for the conclusion corresponding characteristic' do + choc = Leap::Quorum.new('with chocolate chips', {}, Proc.new {}) + committee = Leap::Committee.new :scruples + committee.instance_variable_set :@quorums, [choc] + + report = Leap::Report.new Vagabond.new, committee, choc => 'good' + assert_equal 'good', report.formatted_conclusion + end + should 'return the formatted conclusion if there is a custom format for the conclusion corresponding characteristic' do + choc = Leap::Quorum.new('with chocolate chips', {}, Proc.new {}) + committee = Leap::Committee.new :tenacity + committee.instance_variable_set :@quorums, [choc] + + report = Leap::Report.new Vagabond.new, committee, choc => 'good' + assert_equal 'ferocious', report.formatted_conclusion end end end