Skip to content

Commit b16e788

Browse files
authored
Merge pull request #863 from 7474/unit-tests/move-and-intermission-cmd-2026-03-15-5d22b2aae200f09b
[unit-tests] ユニットテスト補完: MoveCmd / CallIntermissionCommandCmd / LoadCmd
2 parents f60b495 + d1fe1fb commit b16e788

File tree

2 files changed

+101
-0
lines changed

2 files changed

+101
-0
lines changed

SRC.Sharp/SRCCoreTests/CmdDatas/StageAdditionalCmdTests.cs

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

SRC.Sharp/SRCCoreTests/CmdDatas/UnitCmdMoreTests.cs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,5 +538,40 @@ public void ClearObjCmd_WrongArgCount_ReturnsError()
538538
var result = cmd.Exec();
539539
Assert.AreEqual(-1, result);
540540
}
541+
542+
// ──────────────────────────────────────────────
543+
// MoveCmd
544+
// ヘルプ: Move [unit] x y [option] — ユニットを指定座標に移動
545+
// ──────────────────────────────────────────────
546+
547+
[TestMethod]
548+
public void MoveCmd_InvalidUnitName_ReturnsError()
549+
{
550+
// ヘルプ: unit に存在しないパイロット名を指定するとエラー
551+
var src = CreateSrc();
552+
var cmd = CreateCmd(src, "Move 存在しないパイロット 5 3");
553+
var result = cmd.Exec();
554+
Assert.AreEqual(-1, result);
555+
}
556+
557+
[TestMethod]
558+
public void MoveCmd_NoSelectedUnit_NumericArgs_ReturnsError()
559+
{
560+
// ヘルプ: unit 省略時は選択ユニットを使用; 選択ユニットなしはエラー
561+
var src = CreateSrc();
562+
// SelectedUnitForEvent は null (デフォルト)
563+
var cmd = CreateCmd(src, "Move 5 3");
564+
var result = cmd.Exec();
565+
Assert.AreEqual(-1, result);
566+
}
567+
568+
[TestMethod]
569+
public void MoveCmd_IsInstanceOfMoveCmd()
570+
{
571+
// Move コマンドが正しくパースされることを確認
572+
var src = CreateSrc();
573+
var cmd = CreateCmd(src, "Move ユニット 5 3");
574+
Assert.IsInstanceOfType(cmd, typeof(MoveCmd));
575+
}
541576
}
542577
}

0 commit comments

Comments
 (0)