@@ -133,5 +133,71 @@ public void ReturnCmd_Returns_MinusOne()
133133 var result = cmd . Exec ( ) ;
134134 Assert . AreEqual ( - 1 , result ) ;
135135 }
136+
137+ // ──────────────────────────────────────────────
138+ // CallIntermissionCommandCmd
139+ // ヘルプ: CallIntermissionCommand command
140+ // 本体に実装されたインターミッションコマンドの機能を呼び出す
141+ // ──────────────────────────────────────────────
142+
143+ [ TestMethod ]
144+ public void CallIntermissionCommandCmd_WrongArgCount_ReturnsError ( )
145+ {
146+ // 書式: CallIntermissionCommand command (引数1つ必須)
147+ var src = CreateSrc ( ) ;
148+ var cmd = CreateCmd ( src , "CallIntermissionCommand" ) ;
149+ var result = cmd . Exec ( ) ;
150+ Assert . AreEqual ( - 1 , result ) ;
151+ }
152+
153+ [ TestMethod ]
154+ public void CallIntermissionCommandCmd_TooManyArgs_ReturnsError ( )
155+ {
156+ // 引数が多すぎる場合もエラー
157+ var src = CreateSrc ( ) ;
158+ var cmd = CreateCmd ( src , "CallIntermissionCommand データセーブ 余分な引数" ) ;
159+ var result = cmd . Exec ( ) ;
160+ Assert . AreEqual ( - 1 , result ) ;
161+ }
162+
163+ [ TestMethod ]
164+ public void CallIntermissionCommandCmd_DataSave_CancelDialog_ReturnsNextId ( )
165+ {
166+ // ヘルプ: command = "データセーブ" → SelectSaveStream が null を返すとセーブをスキップして NextID
167+ var src = CreateSrc ( ) ;
168+ var mockGui = ( MockGUI ) src . GUI ;
169+ mockGui . SelectSaveStreamHandler = ( _ , __ ) => null ;
170+ var cmd = CreateCmd ( src , "CallIntermissionCommand データセーブ" ) ;
171+ var result = cmd . Exec ( ) ;
172+ Assert . AreEqual ( 1 , result ) ;
173+ }
174+
175+ // ──────────────────────────────────────────────
176+ // LoadCmd
177+ // ヘルプ: Load title — 指定タイトルのデータをロード
178+ // 既にロード済みの場合はロードをスキップ
179+ // ──────────────────────────────────────────────
180+
181+ [ TestMethod ]
182+ public void LoadCmd_AlreadyLoaded_ReturnsNextId ( )
183+ {
184+ // ヘルプ: 指定した title のデータが既にロード済みの場合はロードは行われない
185+ var src = CreateSrc ( ) ;
186+ src . Titles = new System . Collections . Generic . List < string > { "既存タイトル" } ;
187+ var cmd = CreateCmd ( src , "Load 既存タイトル" ) ;
188+ var result = cmd . Exec ( ) ;
189+ Assert . AreEqual ( 1 , result ) ;
190+ }
191+
192+ [ TestMethod ]
193+ public void LoadCmd_NoTitleArg_ReturnsNextId ( )
194+ {
195+ // Load のみ (タイトル省略) → ロード対象なしで NextID を返す
196+ var src = CreateSrc ( ) ;
197+ src . Titles = new System . Collections . Generic . List < string > ( ) ;
198+ var cmd = CreateCmd ( src , "Load" ) ;
199+ var result = cmd . Exec ( ) ;
200+ Assert . AreEqual ( 1 , result ) ;
201+ }
136202 }
137203}
0 commit comments