+\r
+ /// <summary>\r
+ /// 一括解体する(装備保管なしとあり)\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void DestroyShip()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "destroyship_001");\r
+ PAssert.That(() => sniffer.ShipCounter.Now == 250);\r
+ PAssert.That(() => sniffer.ItemCounter.Now == 1118);\r
+ PAssert.That(() => sniffer.Material.Current.Take(4).SequenceEqual(new[] {285615, 286250, 291010, 284744}));\r
+ }\r
+\r
+ /// <summary>\r
+ /// 第2艦隊までしか解放していなくてもエラーにならないようにする\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void TwoFleets()\r
+ {\r
+ var sniffer = new Sniffer(true);\r
+ SniffLogFile(sniffer, "twofleets_001");\r
+ PAssert.That(() => new[]{5, 5, 0, 0}.SequenceEqual(sniffer.Fleets.Select(f => f.ChargeStatus.Fuel)));\r
+ }\r
+\r
+ /// <summary>\r
+ /// ship2がリクエストで指定した艦娘のデータしか返さない\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void Ship2ReturnShipSpecifiedByRequest()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "ship2_001");\r
+ PAssert.That(() => sniffer.ShipCounter.Now == 243);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 出撃中にアイテムを取得する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void ItemGetInSortie()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "itemget_001");\r
+ PAssert.That(() => sniffer.MiscText ==\r
+ "[獲得アイテム]\r\n" +\r
+ "燃料: 1115\r\n" +\r
+ "弾薬: 25\r\n" +\r
+ "鋼材: 70\r\n" +\r
+ "家具箱(大): 1\r\n" +\r
+ "給糧艦「間宮」: 1\r\n" +\r
+ "勲章: 1\r\n" +\r
+ "給糧艦「伊良湖」: 3\r\n" +\r
+ "プレゼント箱: 1\r\n" +\r
+ "補強増設: 2\r\n" +\r
+ "戦闘詳報: 1\r\n" +\r
+ "瑞雲(六三一空): 1\r\n" +\r
+ "夜間作戦航空要員: 1\r\n" +\r
+ "130mm B-13連装砲: 1\r\n" +\r
+ "潜水空母な桐箪笥: 1\r\n" +\r
+ "Gambier Bay: 1");\r
+ }\r
+\r
+ /// <summary>\r
+ /// 出撃直後に資源を獲得する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void ItemGetAtStart()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "itemget_002");\r
+ PAssert.That(() => sniffer.MiscText ==\r
+ "[獲得アイテム]\r\n" +\r
+ "燃料: 65");\r
+ }\r
+\r
+ /// <summary>\r
+ /// 航空偵察でアイテムを取得する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void ItemGetInAirRecon()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "airrecon_001");\r
+ PAssert.That(() =>\r
+ sniffer.MiscText ==\r
+ "[海域ゲージ情報]\r\n 海域選択画面に進むと表示します。\r\n" +\r
+ "[演習情報]\r\n 演習相手を選ぶと表示します。\r\n" +\r
+ "[獲得アイテム]\r\n 帰投したときに表示します。", "失敗の場合");\r
+\r
+ SniffLogFile(sniffer, "airrecon_002");\r
+ PAssert.That(() =>\r
+ sniffer.MiscText == "[獲得アイテム]\r\n弾薬: 150\r\n開発資材: 1", "成功");\r
+\r
+ SniffLogFile(sniffer, "airrecon_003");\r
+ PAssert.That(() =>\r
+ sniffer.MiscText == "[獲得アイテム]\r\n弾薬: 150\r\n開発資材: 1", "途中でリロードして再出撃");\r
+ }\r
+\r
+ /// <summary>\r
+ /// 海域ゲージの情報を生成する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void AreaGauge()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "mapgauge_001");\r
+ PAssert.That(() =>\r
+ sniffer.MiscText ==\r
+ "[海域ゲージ]\r\n" +\r
+ "1-6 : 残り 5/7\r\n" +\r
+ "2-5 : 残り 4/4\r\n" +\r
+ "3-5 : 残り 4/4\r\n" +\r
+ "4-4 : 残り 4/4\r\n");\r
+ }\r
+\r
+ /// <summary>\r
+ /// 7-2の2本目の海域ゲージを正しく表示する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void SecondAreaGauge()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "mapgauge_002");\r
+ PAssert.That(() =>\r
+ sniffer.MiscText ==\r
+ "[海域ゲージ]\r\n" +\r
+ "1-6 : 残り 5/7\r\n" +\r
+ "2-5 : 残り 2/4\r\n" +\r
+ "5-5 : 残り 5/5\r\n" +\r
+ "6-5 : 残り 6/6\r\n" +\r
+ "7-2 : 残り 1/4\r\n");\r
+ }\r
+\r
+ /// <summary>\r
+ /// 2019冬イベからクリア済みマップのゲージ情報がない\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void ClearedExMapGage()\r
+ {\r
+ var miscTextInfo = new MiscTextInfo(null, null);\r
+ using (var stream = OpenLogFile("mapgauge_003"))\r
+ {\r
+ miscTextInfo.InspectMapInfo(JsonObject.Parse(stream.ReadToEnd()));\r
+ }\r
+ PAssert.That(() =>\r
+ miscTextInfo.Text ==\r
+ "[海域ゲージ]\r\n" +\r
+ "1-6 : 残り 5/7\r\n" +\r
+ "5-5 : 残り 5/5\r\n" +\r
+ "7-2 : 残り 1/4\r\n" +\r
+ "43-2 : HP 1050/1400\r\n");\r
+ }\r
+\r
+ /// <summary>\r
+ /// 演習の獲得経験値を計算する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void PracticeExpPoint()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "practice_004");\r
+ PAssert.That(() => sniffer.MiscText == "[演習情報]\r\n敵艦隊名 : 第一艦隊\r\n獲得経験値 : 878\r\nS勝利 : 1053");\r
+ }\r
+\r
+ /// <summary>\r
+ /// 新規のドロップ艦の初期装備数を登録する\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void RecordNumEquipsOfNewDropShip()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "dropship_001");\r
+ PAssert.That(() => sniffer.AdditionalData.NumEquips(565) == 2);\r
+ PAssert.That(() => sniffer.ShipList.First(s => s.Spec.Id == 565).Spec.NumEquips == 2);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 既知のドロップ艦とその装備をカウントする\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void CountDropShip()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ sniffer.AdditionalData.RecordNumEquips(11, "", 1);\r
+ SniffLogFile(sniffer, "dropship_002");\r
+ PAssert.That(() => sniffer.ShipCounter.Now == 250);\r
+ PAssert.That(() => sniffer.ItemCounter.Now == 1159);\r
+ }\r
+\r
+ /// <summary>\r
+ /// 艦娘数を数える\r
+ /// </summary>\r
+ [TestMethod]\r
+ public void CountShips()\r
+ {\r
+ var sniffer = new Sniffer();\r
+ SniffLogFile(sniffer, "ship_count_001");\r
+ PAssert.That(() => sniffer.ShipCounter.Now == 267 && sniffer.ShipCounter.Alarm, "ログイン");\r
+ SniffLogFile(sniffer, "ship_count_002");\r
+ PAssert.That(() => sniffer.ShipCounter.Now == 266 && sniffer.ShipCounter.Alarm, "建造");\r
+ SniffLogFile(sniffer, "ship_count_003");\r
+ PAssert.That(() => sniffer.ShipCounter.Now == 266 && sniffer.ShipCounter.Alarm, "ドロップ");\r
+ }\r