OSDN Git Service

新兵装開発資材輸送を船団護衛せよ!のカウンターを実装する
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer.Test / BattleBriefTest.cs
index 1b0b3b6..cef792b 100644 (file)
@@ -14,9 +14,9 @@
 \r
 using System;\r
 using System.Linq;\r
+using DynaJson;\r
 using ExpressionToCodeLib;\r
 using KancolleSniffer.Model;\r
-using KancolleSniffer.Util;\r
 using Microsoft.VisualStudio.TestTools.UnitTesting;\r
 \r
 namespace KancolleSniffer.Test\r
@@ -38,7 +38,7 @@ namespace KancolleSniffer.Test
                 return logfile.ReadToEnd().Split(new[] {"\r\n"}, StringSplitOptions.None);\r
         }\r
 \r
-        public void InjectShips(dynamic battle, dynamic item)\r
+        private void InjectShips(dynamic battle, dynamic item)\r
         {\r
             var deck = (int)battle.api_deck_id - 1;\r
             InjectShips(deck, (int[])battle.api_f_nowhps, (int[])battle.api_f_maxhps, (int[][])item[0]);\r
@@ -91,11 +91,11 @@ namespace KancolleSniffer.Test
         public void CauseRepairGoddessByDoubleAttack()\r
         {\r
             var logs = ReadAllLines("damecon_001");\r
-            var items = JsonParser.Parse("[[[],[],[],[],[43]]]");\r
-            dynamic battle = JsonParser.Parse(logs[2]);\r
+            var items = JsonObject.Parse("[[[],[],[],[],[43]]]");\r
+            dynamic battle = JsonObject.Parse(logs[2]);\r
             InjectShips(battle, items);\r
             _battleInfo.InspectBattle(logs[0], logs[1], battle);\r
-            dynamic result = JsonParser.Parse(logs[5]);\r
+            dynamic result = JsonObject.Parse(logs[5]);\r
             _battleInfo.InspectBattleResult(result);\r
             PAssert.That(() => _shipInfo.Fleets[2].Ships[4].NowHp == 31);\r
         }\r
@@ -107,14 +107,14 @@ namespace KancolleSniffer.Test
         public void AttackedByBattleShipInMidnight()\r
         {\r
             var logs = ReadAllLines("midnight_002");\r
-            var battle = JsonParser.Parse(logs[3]);\r
-            InjectShips(battle, JsonParser.Parse(logs[0]));\r
+            var battle = JsonObject.Parse(logs[3]);\r
+            InjectShips(battle, JsonObject.Parse(logs[0]));\r
             _battleInfo.InspectBattle(logs[1], logs[2], battle);\r
-            _battleInfo.InspectBattleResult(JsonParser.Parse(logs[6]));\r
+            _battleInfo.InspectBattleResult(JsonObject.Parse(logs[6]));\r
             PAssert.That(() => _shipInfo.Fleets[0].Ships[3].NowHp == 12);\r
         }\r
 \r
-        private dynamic Data(string json) => ((dynamic)JsonParser.Parse(json)).api_data;\r
+        private dynamic Data(string json) => JsonObject.Parse(json).api_data;\r
 \r
         /// <summary>\r
         /// NPC友軍の支援攻撃がある\r
@@ -124,7 +124,7 @@ namespace KancolleSniffer.Test
         {\r
             var logs = ReadAllLines("friendfleet_001");\r
             var battle = Data(logs[3]);\r
-            InjectShips(battle, JsonParser.Parse(logs[0]));\r
+            InjectShips(battle, JsonObject.Parse(logs[0]));\r
             _battleInfo.InspectBattle(logs[1], logs[2], battle);\r
             _battleInfo.InspectBattle(logs[4], logs[5], Data(logs[6]));\r
             _battleInfo.InspectBattleResult(Data(logs[9]));\r
@@ -139,7 +139,7 @@ namespace KancolleSniffer.Test
         {\r
             var logs = ReadAllLines("ld_airbattle_001");\r
             var battle = Data(logs[3]);\r
-            InjectShips(battle, JsonParser.Parse(logs[0]));\r
+            InjectShips(battle, JsonObject.Parse(logs[0]));\r
             _battleInfo.InspectBattle(logs[1], logs[2], battle);\r
             _battleInfo.InspectBattleResult(Data(logs[6]));\r
             PAssert.That(() => !_battleInfo.DisplayedResultRank.IsError);\r
@@ -153,7 +153,7 @@ namespace KancolleSniffer.Test
         {\r
             var logs = ReadAllLines("ld_airbattle_002");\r
             var battle = Data(logs[3]);\r
-            InjectShips(battle, JsonParser.Parse(logs[0]));\r
+            InjectShips(battle, JsonObject.Parse(logs[0]));\r
             _battleInfo.InspectBattle(logs[1], logs[2], battle);\r
             _battleInfo.InspectBattleResult(Data(logs[6]));\r
             PAssert.That(() => !_battleInfo.DisplayedResultRank.IsError);\r
@@ -167,7 +167,7 @@ namespace KancolleSniffer.Test
         {\r
             var logs = ReadAllLines("damecon_002");\r
             var battle = Data(logs[3]);\r
-            InjectShips(battle, JsonParser.Parse(logs[0]));\r
+            InjectShips(battle, JsonObject.Parse(logs[0]));\r
             _battleInfo.InspectBattle(logs[1], logs[2], battle);\r
             _battleInfo.InspectBattle(logs[4], logs[5], Data(logs[6]));\r
             _battleInfo.InspectBattleResult(Data(logs[9]));\r
@@ -182,10 +182,24 @@ namespace KancolleSniffer.Test
         {\r
             var logs = ReadAllLines("damecon_003");\r
             var battle = Data(logs[3]);\r
-            InjectShips(battle, JsonParser.Parse(logs[0]));\r
+            InjectShips(battle, JsonObject.Parse(logs[0]));\r
             _battleInfo.InspectBattle(logs[1], logs[2], battle);\r
             _battleInfo.InspectBattleResult(Data(logs[6]));\r
             PAssert.That(() => _shipInfo.Fleets[1].Ships[5].NowHp == 6);\r
         }\r
+\r
+        /// <summary>\r
+        /// 護衛退避艦がいるときに勝利判定がずれる\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void WrongResultRankWithEscapedShip()\r
+        {\r
+            var logs = ReadAllLines("escape_rank_001");\r
+            var battle = Data(logs[3]);\r
+            InjectShips(battle, JsonObject.Parse(logs[0]));\r
+            _battleInfo.InspectBattle(logs[1], logs[2], battle);\r
+            _battleInfo.InspectBattleResult(Data(logs[6]));\r
+            PAssert.That(() => !_battleInfo.DisplayedResultRank.IsError);\r
+        }\r
     }\r
 }
\ No newline at end of file