MOE3: 同等戦力の維持ユニットへの攻撃
spec/models/main_phase_spec.rb
マニュアルの Diagram11、French F Gol-Tyn
、French F Wes S F Gol-Tyn
、Italian F Tyn-Holds
、Italian F Rom S F Tyn-Holds
を実装する。
繰り返しになるが、MOE3 の地名は jDip 準拠なので "Gol" は "Lyo" となる。
それと、現行の MOE2 もそうだが、支援命令は対象が移動かそれ以外かのみを区別する都合により、上の例であれば F Rom S F Tyn-Holds
は実際の画面では F Rom S F Tyn
と表示される予定。
では、テストを書こう。
describe MainPhase do describe "#resolve_orders" do let(:phase) { MainPhase.create } let(:resolved_orders) { phase.resolve_orders } #(略) shared_context "Diagram11 同等戦力の維持ユニットへの攻撃", diagram: 11 do let(:fleet_lyo) { FactoryGirl.create(:fleet, :f, :lyo, phase: phase) } let(:fleet_wes) { FactoryGirl.create(:fleet, :f, :wes, phase: phase) } let(:fleet_tyn) { FactoryGirl.create(:fleet, :i, :tyn, phase: phase) } let(:fleet_rom) { FactoryGirl.create(:fleet, :i, :rom, phase: phase) } let(:prov_tyn) { fleet_tyn.province } let!(:move_lyo_tyn) { FactoryGirl.create(:move_order, unit: fleet_lyo, destination: prov_tyn) } let!(:supp_wes_lyo) { FactoryGirl.create(:support_order, unit: fleet_wes, target: move_lyo_tyn) } let!(:hold_tyn) { FactoryGirl.create(:hold_order, unit: fleet_tyn) } let!(:supp_rom_tyn) { FactoryGirl.create(:support_order, unit: fleet_rom, target: hold_tyn) } end context "Diagram11", diagram: 11 do subject { resolved_orders } example { expect(subject.find(move_lyo_tyn).status).to eq OrderStatus::FAILURE} example { expect(subject.find(supp_wes_lyo).status).to eq OrderStatus::SATISFIED } example { expect(subject.find(hold_tyn).status).to eq OrderStatus::SUCCESS} example { expect(subject.find(supp_rom_tyn).status).to eq OrderStatus::SATISFIED } end end end
問題なく成功。