File tree Expand file tree Collapse file tree 2 files changed +42
-0
lines changed
lib/receiptisan/model/receipt_computer/digitalized_receipt/parser
spec/lib/receiptisan/model/receipt_computer/digitalized_receipt/parser Expand file tree Collapse file tree 2 files changed +42
-0
lines changed Original file line number Diff line number Diff line change @@ -26,6 +26,8 @@ def initialize(master_loader)
2626 # @return [void]
2727 def prepare ( shinryou_ym )
2828 version = Master ::Version . resolve_by_ym ( shinryou_ym )
29+ raise "対応するマスターバージョンが見つかりません: 診療年月=#{ shinryou_ym } " unless version
30+
2931 @loaded_masters [ version ] ||= @master_loader . load ( version )
3032 @current_master = @loaded_masters [ version ]
3133 end
Original file line number Diff line number Diff line change 1+ # frozen_string_literal: true
2+
3+ require 'month'
4+ require 'receiptisan'
5+
6+ RSpec . describe Receiptisan ::Model ::ReceiptComputer ::DigitalizedReceipt ::Parser ::MasterHandler do
7+ let ( :master_loader ) { instance_double ( Receiptisan ::Model ::ReceiptComputer ::Master ::Loader ) }
8+ let ( :handler ) { described_class . new ( master_loader ) }
9+
10+ describe '#prepare' do
11+ context '対応するバージョンが存在する診療年月の場合' do
12+ let ( :loaded_master ) { instance_double ( Receiptisan ::Model ::ReceiptComputer ::Master ) }
13+
14+ before do
15+ allow ( master_loader ) . to receive ( :load ) . and_return ( loaded_master )
16+ end
17+
18+ specify '例外を投げないこと' do
19+ expect { handler . prepare ( Month . new ( 2024 , 6 ) ) } . not_to raise_error
20+ end
21+
22+ specify '同一バージョンのマスタは再ロードしないこと' do
23+ handler . prepare ( Month . new ( 2024 , 6 ) )
24+ handler . prepare ( Month . new ( 2024 , 7 ) )
25+
26+ expect ( master_loader ) . to have_received ( :load ) . once
27+ end
28+ end
29+
30+ context '対応するバージョンが存在しない診療年月の場合' do
31+ specify '明確なエラーメッセージで例外を投げること' do
32+ expect { handler . prepare ( Month . new ( 2017 , 3 ) ) } . to raise_error ( RuntimeError , /対応するマスターバージョンが見つかりません/ )
33+ end
34+
35+ specify 'エラーメッセージに診療年月が含まれること' do
36+ expect { handler . prepare ( Month . new ( 2017 , 3 ) ) } . to raise_error ( RuntimeError , /2017/ )
37+ end
38+ end
39+ end
40+ end
You can’t perform that action at this time.
0 commit comments