spec/case_classifier_spec.rb
32 lines · ruby
Project files
# frozen_string_literal: true
require "case_classifier"
require "cartridge_case"
require "foreign_object"
RSpec.describe CaseClassifier do
it "separates the observed cleaning output into three exits" do
five_fifty_six = CartridgeCase.new(caliber: "5.56")
nine_millimeter = CartridgeCase.new(caliber: "9mm")
fifty_caliber = CartridgeCase.new(caliber: ".50 cal")
stripper_clip = ForeignObject.new(description: "stripper clip")
classification = described_class.new(expected_caliber: "5.56").classify(
[five_fifty_six, nine_millimeter, fifty_caliber, stripper_clip]
)
expect(classification.accepted).to eq([five_fifty_six])
expect(classification.wrong_context).to eq([nine_millimeter, fifty_caliber])
expect(classification.foreign).to eq([stripper_clip])
end
it "returns frozen exits without freezing the caller's batch" do
batch = [CartridgeCase.new(caliber: "5.56")]
classification = described_class.new(expected_caliber: "5.56").classify(batch)
expect([classification.accepted, classification.wrong_context,
classification.foreign]).to all(be_frozen)
expect(batch).not_to be_frozen
end
end
Read along in the manual: The Reloading Lab · Download the project (zip)