require File.dirname(__FILE__) + '/test_helper'
require File.dirname(__FILE__) + '/../lib/compactor'
class ScrapedRowTest < Test::Unit::TestCase
def test_should_be_nil_on_reload_if_no_more_table_rows_present
Compactor::Amazon::ScrapedRow.any_instance.stubs(:table_rows).returns([])
assert_nil Compactor::Amazon::ScrapedRow.new("node", "mechanize").reload
end
def test_should_fail_if_flagged_to_validate_and_xml_totals_do_not_match
Compactor::Amazon::ScrapedRow.any_instance.stubs(:download_report).returns([:xml,""])
Compactor::Amazon::XmlParser.any_instance.stubs(:valid?).returns(false)
row = Compactor::Amazon::ScrapedRow.new("node", "mechanize")
assert_raises Compactor::Amazon::ReportTotalsMismatch do
row.download_report! true
end
end
def test_should_not_fail_if_flagged_to_validate_and_xml_totals_do_not_match_and_not_xml
Compactor::Amazon::ScrapedRow.any_instance.stubs(:download_report).returns([:tsv,"tsv"])
Compactor::Amazon::XmlParser.any_instance.stubs(:valid?).returns(false)
row = Compactor::Amazon::ScrapedRow.new("node", "mechanize")
assert_nothing_raised do
row.download_report! true
end
end
def test_should_not_fail_if_flagged_to_validate_and_xml_totals_match
Compactor::Amazon::ScrapedRow.any_instance.stubs(:download_report).returns([:xml,""])
Compactor::Amazon::XmlParser.any_instance.stubs(:valid?).returns(true)
row = Compactor::Amazon::ScrapedRow.new("node", "mechanize")
assert_nothing_raised do
row.download_report! true
end
end
def test_should_not_fail_if_not_flagged_to_validate_and_xml_totals_do_not_match
Compactor::Amazon::ScrapedRow.any_instance.stubs(:download_report).returns([:xml,""])
Compactor::Amazon::XmlParser.any_instance.stubs(:valid?).returns(false)
row = Compactor::Amazon::ScrapedRow.new("node", "mechanize")
assert_nothing_raised do
row.download_report!
end
end
def test_should_not_fail_if_not_flagged_to_validate_and_xml_totals_not_match
Compactor::Amazon::ScrapedRow.any_instance.stubs(:download_report).returns([:xml,""])
Compactor::Amazon::XmlParser.any_instance.stubs(:valid?).returns(true)
row = Compactor::Amazon::ScrapedRow.new("node", "mechanize")
assert_nothing_raised do
row.download_report!
end
end
def test_should_know_if_the_expected_total_matches_the_calculated_total
report_data = <<-XML
10
5
5
XML
parser = Compactor::Amazon::XmlParser.new(report_data)
assert parser.valid?
end
def test_should_know_if_the_expected_total_does_not_match_the_calculated_total
report_data = <<-XML
10
5
4
XML
parser = Compactor::Amazon::XmlParser.new(report_data)
assert !parser.valid?
end
end