using System.Collections.Generic;\r
using System.Linq;\r
using ExpressionToCodeLib;\r
+using KancolleSniffer.Model;\r
+using KancolleSniffer.Util;\r
using Microsoft.VisualStudio.TestTools.UnitTesting;\r
\r
namespace KancolleSniffer.Test\r
}\r
\r
[TestMethod]\r
- public void AdjestCountNowArray()\r
+ public void AdjustCountNowArray()\r
{\r
var count = new QuestCount\r
{\r
}\r
\r
[TestMethod]\r
- public void ResetQuest()\r
+ public void ResetQuestCount()\r
{\r
var queue = new Queue<DateTime>(new[]\r
{\r
PAssert.That(() => status.QuestCountList.Length == 0); // クォータリーが消える\r
}\r
\r
+ [TestMethod]\r
+ public void ResetQuestList()\r
+ {\r
+ var queue = new Queue<DateTime>(new[]\r
+ {\r
+ new DateTime(2017, 11, 1, 5, 0, 0), new DateTime(2017, 11, 6, 5, 0, 0),\r
+ new DateTime(2017, 12, 1, 5, 0, 0)\r
+ });\r
+ var questInfo = new QuestInfo(null, null, () => queue.Dequeue());\r
+ var status = new Status\r
+ {\r
+ QuestList = new[]\r
+ {\r
+ new QuestStatus{Id = 201, Category = 2}, new QuestStatus{Id = 213, Category = 2},\r
+ new QuestStatus{Id = 265, Category = 2}, new QuestStatus{Id = 822, Category = 8}\r
+ },\r
+ QuestLastReset = new DateTime(2017, 10, 31, 5, 0, 0)\r
+ };\r
+ questInfo.LoadState(status);\r
+ questInfo.InspectQuestList(CreateQuestList(new int[0]));\r
+ questInfo.SaveState(status);\r
+ PAssert.That(() => status.QuestList.Select(q => q.Id).SequenceEqual(new []{213, 822})); // デイリーとマンスリーが消える\r
+ questInfo.InspectQuestList(CreateQuestList(new int[0]));\r
+ questInfo.SaveState(status);\r
+ PAssert.That(() => status.QuestList.Select(q => q.Id).SequenceEqual(new []{822})); // ウィークリーが消える\r
+ questInfo.InspectQuestList(CreateQuestList(new int[0]));\r
+ questInfo.SaveState(status);\r
+ PAssert.That(() => status.QuestList.Length == 0); // クォータリーが消える\r
+ }\r
+\r
private JsonObject Js(object obj) => JsonObject.CreateJsonObject(obj);\r
\r
private object CreateQuestList(int[] ids) => Js(new\r
PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "駆逐軽巡以外");\r
}\r
\r
+ private ShipStatus ShipStatus(int shipType, int shipClass, int specId) =>\r
+ new ShipStatus {NowHp = 1, Spec = new ShipSpec {Id = specId, ShipType = shipType, ShipClass = shipClass}};\r
+\r
/// <summary>\r
/// 257: 「水上打撃部隊」南方へ!\r
/// </summary>\r
var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
questInfo.InspectQuestList(CreateQuestList(new[] {259}));\r
\r
- battleInfo.InjectResultStatus(new[]\r
+ var org = new[]\r
{\r
- ShipStatus(3, 183), ShipStatus(9, 276), ShipStatus(10, 411),\r
- ShipStatus(10, 412), ShipStatus(5, 193), ShipStatus(5, 194)\r
- }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+ ShipStatus(3, 52, 321), ShipStatus(9, 19, 276), ShipStatus(10, 26, 411),\r
+ ShipStatus(10, 26, 412), ShipStatus(5, 29, 193), ShipStatus(5, 29, 194)\r
+ };\r
+ battleInfo.InjectResultStatus(\r
+ org.ToArray(), new ShipStatus[0],\r
+ new ShipStatus[0], new ShipStatus[0]);\r
questInfo.InspectMapNext(Js(new\r
{\r
api_maparea_id = 5,\r
PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡轟沈");\r
battleInfo.Result.Friend.Main[0].NowHp = 1;\r
\r
- battleInfo.Result.Friend.Main[4].Spec = new ShipSpec {Id = 136, ShipType = 9};\r
+ battleInfo.Result.Friend.Main[4] = ShipStatus(9, 37, 136);\r
questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "戦艦4隻");\r
- battleInfo.Result.Friend.Main[4].Spec = new ShipSpec {Id = 193, ShipType = 5};\r
+ battleInfo.Result.Friend.Main[4] = org[4];\r
\r
- battleInfo.Result.Friend.Main[0].Spec = new ShipSpec {Id = 58, ShipType = 4};\r
+ battleInfo.Result.Friend.Main[0] = ShipStatus(4, 4, 58);\r
questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
PAssert.That(() => questInfo.Quests[0].Count.Now == 0, "軽巡なし");\r
+ battleInfo.Result.Friend.Main[0] = org[0];\r
+\r
+ battleInfo.Result.Friend.Main[2] = ShipStatus(10, 2, 553);\r
+ questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
+ PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "伊勢改二");\r
}\r
\r
/// <summary>\r
PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "轟沈あり");\r
battleInfo.Result.Friend.Main[1].NowHp = 1;\r
\r
+ battleInfo.Result.Friend.Main[3].Spec.ShipType = 3;\r
battleInfo.Result.Friend.Main[4].Spec.ShipType = 16;\r
questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[0].Count.Now == 1, "水母2隻");\r
+ PAssert.That(() => questInfo.Quests[0].Count.Now == 2, "軽巡3隻水母2隻");\r
}\r
\r
/// <summary>\r
}\r
\r
/// <summary>\r
+ /// 888: 新編成「三川艦隊」、鉄底海峡に突入せよ!\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void BattleResult_888()\r
+ {\r
+ var battleInfo = new BattleInfo(null, null);\r
+ var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {888}));\r
+ var count = questInfo.Quests[0].Count;\r
+\r
+ battleInfo.InjectResultStatus(new[]\r
+ {\r
+ ShipStatus(5, 427), ShipStatus(5, 264), ShipStatus(5, 142),\r
+ ShipStatus(5, 417), ShipStatus(2, 144), ShipStatus(2, 195)\r
+ }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+ questInfo.InspectMapNext(Js(new\r
+ {\r
+ api_maparea_id = 5,\r
+ api_mapinfo_no = 1,\r
+ api_event_id = 4\r
+ }));\r
+ questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
+ questInfo.InspectMapNext(Js(new\r
+ {\r
+ api_maparea_id = 5,\r
+ api_mapinfo_no = 1,\r
+ api_event_id = 5\r
+ }));\r
+ questInfo.InspectBattleResult(Js(new {api_win_rank = "A"}));\r
+ PAssert.That(() => count.NowArray[0] == 0);\r
+ questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
+ PAssert.That(() => count.NowArray[0] == 1);\r
+\r
+ battleInfo.Result.Friend.Main[0].NowHp = 0;\r
+ questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
+ PAssert.That(() => count.NowArray[0] == 1, "轟沈あり");\r
+ battleInfo.Result.Friend.Main[0].NowHp = 1;\r
+\r
+ battleInfo.Result.Friend.Main[0].Spec.Id = 319;\r
+ questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
+ PAssert.That(() => count.NowArray[0] == 1, "三川艦隊3隻");\r
+ battleInfo.Result.Friend.Main[0].Spec.Id = 427;\r
+\r
+ questInfo.InspectMapNext(Js(new\r
+ {\r
+ api_maparea_id = 5,\r
+ api_mapinfo_no = 3,\r
+ api_event_id = 5,\r
+ }));\r
+ questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 0}));\r
+\r
+ questInfo.InspectMapNext(Js(new\r
+ {\r
+ api_maparea_id = 5,\r
+ api_mapinfo_no = 4,\r
+ api_event_id = 5,\r
+ }));\r
+ questInfo.InspectBattleResult(Js(new {api_win_rank = "S"}));\r
+ PAssert.That(() => count.NowArray.SequenceEqual(new[] {1, 1, 1}));\r
+ }\r
+\r
+\r
+ /// <summary>\r
/// 302: 大規模演習\r
/// 303: 「演習」で練度向上!\r
/// 304: 「演習」で他提督を圧倒せよ!\r
/// 318: 給糧艦「伊良湖」の支援\r
/// </summary>\r
[TestMethod]\r
- public void PracticeResult_303_304_302_311_318()\r
+ public void PracticeResult_303_304_302_311_315()\r
{\r
var battleInfo = new BattleInfo(null, null);\r
var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
- questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311, 318}));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {302, 303, 304, 311, 315,}));\r
\r
battleInfo.InjectResultStatus(new[]\r
{\r
.SequenceEqual(new[]\r
{\r
new {Id = 302, Now = 1}, new {Id = 303, Now = 2}, new {Id = 304, Now = 1},\r
- new {Id = 311, Now = 1}, new {Id = 318, Now = 0}\r
+ new {Id = 311, Now = 1}, new {Id = 315, Now = 1}\r
}));\r
- // 318\r
+ }\r
+\r
+ [TestMethod]\r
+ public void PracticeResult_318()\r
+ {\r
+ var battleInfo = new BattleInfo(null, null);\r
+ var questInfo = new QuestInfo(null, battleInfo, () => new DateTime(2015, 1, 1));\r
+ questInfo.InspectQuestList(CreateQuestList(new[] {318}));\r
+ var q318 = questInfo.Quests[0];\r
+\r
+ battleInfo.InjectResultStatus(new[]\r
+ {\r
+ ShipStatus(2, 543), ShipStatus(3, 488)\r
+ }, new ShipStatus[0], new ShipStatus[0], new ShipStatus[0]);\r
+\r
+ questInfo.InspectPracticeResult(Js(new {api_win_rank = "B"}));\r
+ PAssert.That(() => q318.Count.Now == 0, "軽巡1隻");\r
battleInfo.Result.Friend.Main[0] = ShipStatus(3, 200);\r
- questInfo.InspectPracticeResult(Js(new {api_win_rank = "A"}));\r
- PAssert.That(() => questInfo.Quests[4].Count.Now == 1);\r
- questInfo.Quests[4].Count.Now = 3;\r
+ questInfo.StartPractice("api%5Fdeck%5Fid=2");\r
+ questInfo.InspectPracticeResult(Js(new {api_win_rank = "B"}));\r
+ PAssert.That(() => q318.Count.Now == 0, "第2艦隊");\r
+ questInfo.StartPractice("api%5Fdeck%5Fid=1"); // 第一艦隊\r
+ questInfo.InspectPracticeResult(Js(new {api_win_rank = "C"}));\r
+ PAssert.That(() => q318.Count.Now == 0, "敗北");\r
+ questInfo.InspectPracticeResult(Js(new {api_win_rank = "B"}));\r
+ PAssert.That(() => q318.Count.Now == 1);\r
+\r
+ q318.Count.Now = 2;\r
questInfo.InspectQuestList(CreateQuestList(new[] {318}));\r
- PAssert.That(() => questInfo.Quests[4].Count.Now == 3, "進捗調節しない");\r
+ PAssert.That(() => q318.Count.Now == 2, "進捗調節しない");\r
}\r
\r
/// <summary>\r
/// 504: 艦隊酒保祭り!\r
/// </summary>\r
[TestMethod]\r
- public void Powerup_503_504()\r
+ public void PowerUp_503_504()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
questInfo.InspectQuestList(CreateQuestList(new[] {503, 504}));\r
[TestMethod]\r
public void DestroyItem_613_638_643_645_663_673_674_675_676_677_678()\r
{\r
- var itemInfo = new ItemInfo();\r
+ var itemInfo = new ItemInfo(new ItemMaster(), new ItemInventory());\r
var questInfo = new QuestInfo(itemInfo, null, () => new DateTime(2015, 1, 1)) {AcceptMax = 12};\r
\r
itemInfo.InjectItemSpec(new[]\r
/// 703: 「近代化改修」を進め、戦備を整えよ!\r
/// </summary>\r
[TestMethod]\r
- public void Powerup_702_703()\r
+ public void PowerUp_702_703()\r
{\r
var questInfo = new QuestInfo(null, null, () => new DateTime(2015, 1, 1));\r
questInfo.InspectQuestList(CreateQuestList(new[] {702, 703}));\r
- questInfo.InspectPowerup(Js(new {api_powerup_flag = 1}));\r
+ questInfo.InspectPowerUp(Js(new {api_powerup_flag = 1}));\r
PAssert.That(() =>\r
questInfo.Quests.Select(q => new {q.Id, q.Count.Now})\r
.SequenceEqual(new[] {new {Id = 702, Now = 1}, new {Id = 703, Now = 1}}));\r
new QuestCount {Id = 854, NowArray = new[] {2, 1, 1, 1}},\r
new QuestCount {Id = 426, NowArray = new[] {1, 1, 1, 1}},\r
new QuestCount {Id = 428, NowArray = new[] {1, 1, 1}},\r
- new QuestCount {Id = 873, NowArray = new[] {1, 1, 1}}\r
+ new QuestCount {Id = 873, NowArray = new[] {1, 1, 1}},\r
+ new QuestCount {Id= 888, NowArray = new []{1, 1, 1}}\r
}\r
};\r
questInfo.LoadState(status);\r
var q873 = status.QuestCountList[5];\r
PAssert.That(() => q873.ToString() == "3/3");\r
PAssert.That(() => q873.ToToolTip() == "3-1 3-2 3-3");\r
+ var q888 = status.QuestCountList[6];\r
+ PAssert.That(() => q888.ToString() == "3/3");\r
+ PAssert.That(() => q888.ToToolTip() == "5-1 5-3 5-4");\r
}\r
\r
/// <summary>\r