1
0
planet_express_express/spec/planet_express_express_spec.rb
Tim Kächele e91e12c7ea Stop reading in all content
Process the shipments month by month instead
2024-12-11 20:13:35 +01:00

26 lines
853 B
Ruby

# frozen_string_literal: true
RSpec.describe PlanetExpressExpress do
it "calculates the shipment discounts and formats them properly" do
input_file = File.open(
File.expand_path("../fixtures/input.txt", __FILE__),
"r"
)
output = StringIO.new
PlanetExpressExpress::ShipmentReader.new(PlanetExpressExpress::PRICE_LIST).read_shipments(input_file) do |shipments|
PlanetExpressExpress::Rules.new(PlanetExpressExpress::PRICE_LIST).apply_rules(shipments)
PlanetExpressExpress::DiscountBudget.new(PlanetExpressExpress::DISCOUNT_LIMIT).limit_discounts(shipments)
PlanetExpressExpress::Formatter.new(output).format(shipments)
end
expected_output = File.read(
File.expand_path("../fixtures/output.txt", __FILE__)
)
output.rewind
expect(output.read).to match(expected_output)
end
end