OSDN Git Service

軽巡2水母1より多いと前線の航空偵察のカウンタが進まないのを直す
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer.Test / LoggerTest.cs
index 8d714e2..3dd6f2f 100644 (file)
@@ -1,19 +1,16 @@
 // Copyright (C) 2014, 2015 Kazuhiro Fujieda <fujieda@users.osdn.me>\r
 // \r
-// This program is part of KancolleSniffer.\r
+// Licensed under the Apache License, Version 2.0 (the "License");\r
+// you may not use this file except in compliance with the License.\r
+// You may obtain a copy of the License at\r
 //\r
-// KancolleSniffer is free software: you can redistribute it and/or modify\r
-// it under the terms of the GNU General Public License as published by\r
-// the Free Software Foundation, either version 3 of the License, or\r
-// (at your option) any later version.\r
+//    http://www.apache.org/licenses/LICENSE-2.0\r
 //\r
-// This program is distributed in the hope that it will be useful,\r
-// but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-// GNU General Public License for more details.\r
-//\r
-// You should have received a copy of the GNU General Public License\r
-// along with this program; if not, see <http://www.gnu.org/licenses/>.\r
+// Unless required by applicable law or agreed to in writing, software\r
+// distributed under the License is distributed on an "AS IS" BASIS,\r
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+// See the License for the specific language governing permissions and\r
+// limitations under the License.\r
 \r
 using System;\r
 using System.Collections.Generic;\r
@@ -27,6 +24,13 @@ namespace KancolleSniffer.Test
     [TestClass]\r
     public class LoggerTest\r
     {\r
+        [TestInitialize]\r
+        public void Intialize()\r
+        {\r
+            ExpressionToCodeConfiguration.GlobalAssertionConfiguration = ExpressionToCodeConfiguration\r
+                .GlobalAssertionConfiguration.WithPrintedListLengthLimit(200).WithMaximumValueLength(1000);\r
+        }\r
+\r
         [TestMethod]\r
         public void InspectMissionResult()\r
         {\r
@@ -120,105 +124,31 @@ namespace KancolleSniffer.Test
         {\r
             var sniffer = new Sniffer();\r
             var result = "";\r
-            sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2015, 1, 1));\r
-            sniffer.EnableLog(LogType.Battle);\r
-            SnifferTest.SniffLogFile(sniffer, "battle_004");\r
-            PAssert.That(() => "2015-01-01 00:00:00,珊瑚諸島沖,1,出撃,S,同航戦,単縦陣,単縦陣,敵前衛艦隊,重巡洋艦,青葉," +\r
-                               "武蔵改(Lv133),86/106,扶桑改二(Lv87),77/77,北上改二(Lv113),49/49,飛龍改二(Lv133),63/74,蒼龍改二(Lv133),74/74,龍鳳改(Lv97),48/48," +\r
-                               "軽巡ヘ級(flagship),0/57,重巡リ級(flagship),0/76,重巡リ級(flagship),0/76,雷巡チ級(elite),0/50,駆逐ニ級(elite),0/45,駆逐ニ級(elite),0/45|" +\r
-                               "2015-01-01 00:00:00,珊瑚諸島沖,2,,B,反航戦,単横陣,単横陣,敵潜水艦隊,,," +\r
-                               "武蔵改(Lv133),86/106,扶桑改二(Lv87),77/77,北上改二(Lv113),46/49,飛龍改二(Lv133),63/74,蒼龍改二(Lv133),74/74,龍鳳改(Lv97),48/48," +\r
-                               "潜水ヨ級(flagship),44/44,潜水カ級(elite),27/27,潜水カ級(elite),5/27,潜水カ級(elite),9/27,潜水カ級,0/19,潜水カ級,0/19|" +\r
-                               "2015-01-01 00:00:00,珊瑚諸島沖,4,,S,反航戦,単縦陣,単縦陣,敵水上打撃部隊,戦艦,扶桑," +\r
-                               "武蔵改(Lv133),86/106,扶桑改二(Lv87),77/77,北上改二(Lv113),46/49,飛龍改二(Lv133),63/74,蒼龍改二(Lv133),45/74,龍鳳改(Lv97),48/48," +\r
-                               "戦艦タ級(flagship),0/90,重巡リ級(flagship),0/76,重巡リ級(flagship),0/76,雷巡チ級(elite),0/50,駆逐ロ級(flagship),0/43,駆逐ニ級(elite),0/45|" +\r
-                               "2015-01-01 00:00:00,珊瑚諸島沖,10,ボス,S,反航戦,単縦陣,単縦陣,敵機動部隊本隊,戦艦,山城," +\r
-                               "武蔵改(Lv133),86/106,扶桑改二(Lv87),77/77,北上改二(Lv113),46/49,飛龍改二(Lv133),63/74,蒼龍改二(Lv133),39/74,龍鳳改(Lv97),48/48," +\r
-                               "装甲空母姫,0/270,空母ヲ級(elite),0/88,戦艦タ級(flagship),0/90,重巡リ級(elite),0/60,軽巡ホ級(flagship),0/53,駆逐ハ級(flagship),0/47|"\r
-                               == result);\r
-        }\r
-\r
-        [TestMethod]\r
-        public void InspectBattleResultOfSpMidnight()\r
-        {\r
-            var sniffer = new Sniffer();\r
-            var result = "";\r
-            sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2015, 1, 1));\r
-            sniffer.EnableLog(LogType.Battle);\r
-            SnifferTest.SniffLogFile(sniffer, "sp_midnight_001");\r
-            PAssert.That(() => "2015-01-01 00:00:00,サブ島沖海域,3,出撃,D,反航戦,単縦陣,単縦陣,敵前衛警戒艦隊,,," +\r
-                               "Prinz Eugen改(Lv52),1/63,,,,,,,,,,," +\r
-                               "軽巡ヘ級(flagship),57/57,重巡リ級(flagship),76/76,重巡リ級(flagship),76/76,雷巡チ級(elite),50/50,雷巡チ級(elite),50/50,駆逐ロ級(flagship),0/43|"\r
-                               == result);\r
-        }\r
-\r
-        [TestMethod]\r
-        public void InspectCombinedBattleResult()\r
-        {\r
-            var sniffer = new Sniffer();\r
-            var result = "";\r
-            sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2015, 1, 1));\r
-            sniffer.EnableLog(LogType.Battle);\r
-            SnifferTest.SniffLogFile(sniffer, "combined_surface_001");\r
-            PAssert.That(() => "2015-01-01 00:00:00,南西方面海域,3,出撃,S,同航戦,第四警戒航行序列,単縦陣,ピケット水雷戦隊 A群,,," +\r
-                               "あきつ丸改(Lv68),40/40,山城改二(Lv85),77/77,扶桑改二(Lv85),77/77,利根改二(Lv117),59/66,筑摩改二(Lv117),51/65,神通改二(Lv97),47/50," +\r
-                               "軽巡ツ級(elite),0/66,軽巡ト級(elite),0/55,駆逐イ級後期型,0/35,駆逐イ級後期型,0/35,駆逐イ級後期型,0/35,駆逐イ級後期型,0/35|" +\r
-                               "2015-01-01 00:00:00,南西方面海域,7,,S,同航戦,第四警戒航行序列,複縦陣,任務部隊 D群,駆逐艦,満潮," +\r
-                               "あきつ丸改(Lv68),40/40,山城改二(Lv85),77/77,扶桑改二(Lv85),77/77,利根改二(Lv117),33/66,筑摩改二(Lv117),51/65,神通改二(Lv97),47/50," +\r
-                               "戦艦タ級(flagship),0/90,軽母ヌ級(flagship),0/84,軽巡ト級(elite),0/55,軽巡ト級(elite),0/55,駆逐ロ級後期型,0/37,駆逐ロ級後期型,0/37|"\r
-                               == result);\r
-        }\r
-\r
-        [TestMethod]\r
-        public void InspectBattleResultStartAndBoss()\r
-        {\r
-            var sniffer = new Sniffer();\r
-            var result = "";\r
-            sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2015, 1, 1));\r
-            sniffer.EnableLog(LogType.Battle);\r
-            SnifferTest.SniffLogFile(sniffer, "battle_005");\r
-            PAssert.That(() => "2015-01-01 00:00:00,バシー島沖,7,出撃&ボス,S,同航戦,単縦陣,単縦陣,敵通商破壊艦隊,軽空母,龍驤," +\r
-                               "那珂改二(Lv97),48/48,隼鷹改二(Lv129),62/62,北上改二(Lv129),49/49,大井改二(Lv115),40/49,呂500(Lv62),13/13,伊168改(Lv97),15/15," +\r
-                               "重巡リ級(elite),0/60,重巡リ級,0/58,雷巡チ級(elite),0/50,軽巡ヘ級,0/36,駆逐ニ級,0/28,駆逐ニ級,0/28|"\r
-                               == result);\r
-        }\r
-\r
-        [TestMethod]\r
-        public void InspectBattleResultDropItem()\r
-        {\r
-            var sniffer = new Sniffer();\r
-            var result = "";\r
-            sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2015, 1, 1));\r
+            sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2017, 1, 1));\r
             sniffer.EnableLog(LogType.Battle);\r
-            SnifferTest.SniffLogFile(sniffer, "dropitem_001");\r
+            SnifferTest.SniffLogFile(sniffer, "battle_001");\r
             PAssert.That(() =>\r
-                "2015-01-01 00:00:00,南西諸島防衛線,2,出撃,S,T字戦(有利),単縦陣,単縦陣,敵偵察艦隊,駆逐艦,白雪," +\r
-                "呂500(Lv56),13/13,伊168改(Lv97),15/15,伊58改(Lv97),18/18,伊8改(Lv97),19/19,伊19改(Lv97),18/18,伊401改(Lv99),24/24," +\r
-                "重巡リ級,0/58,軽巡ヘ級,0/36,駆逐イ級,0/20,駆逐イ級,0/20,駆逐イ級,0/20,,|" +\r
-                "2015-01-01 00:00:00,南西諸島防衛線,10,ボス,S,反航戦,単縦陣,輪形陣,敵機動部隊,アイテム,菱餅," +\r
-                "呂500(Lv56),13/13,伊168改(Lv97),15/15,伊58改(Lv97),18/18,伊8改(Lv97),19/19,伊19改(Lv97),18/18,伊401改(Lv99),24/24," +\r
-                "空母ヲ級,0/85,空母ヲ級,0/85,重巡リ級,0/58,軽巡ヘ級,0/36,駆逐ハ級,0/24,駆逐ハ級,0/24|"\r
+                "2017-01-01 00:00:00,カレー洋制圧戦,1,出撃,A,T字戦(有利),警戒陣,梯形陣,敵潜水教導艦隊,,," +\r
+                "隼鷹改二(Lv157),57/62,利根改二(Lv151),66/66,千代田航改二(Lv159),50/65,千歳航改二(Lv159),65/65,大井改二(Lv57),40/43,秋月改(Lv142),42/42," +\r
+                "潜水ヨ級(elite),34/34,潜水ヨ級,5/24,潜水ヨ級,0/24,潜水カ級(elite),0/27,潜水カ級,0/19,潜水カ級,0/19,248~249,0,制空権確保|"\r
                 == result);\r
         }\r
 \r
+        /// <summary>\r
+        /// 7隻編成の場合は7隻目を6隻目に重ねる\r
+        /// </summary>\r
         [TestMethod]\r
-        public void InspectBattleResultDropItemAndShip()\r
+        public void InspectShip7BattleResult()\r
         {\r
             var sniffer = new Sniffer();\r
             var result = "";\r
-            sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2015, 1, 1));\r
+            sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2017, 1, 1));\r
             sniffer.EnableLog(LogType.Battle);\r
-            SnifferTest.SniffLogFile(sniffer, "dropitem_002");\r
+            SnifferTest.SniffLogFile(sniffer, "ship7battle_001");\r
             PAssert.That(() =>\r
-                "2015-01-01 00:00:00,アルフォンシーノ方面,1,出撃,S,同航戦,単縦陣,単縦陣,敵前衛艦隊,,," +\r
-                "飛龍改(Lv79),65/65,翔鶴改二(Lv112),85/85,隼鷹改二(Lv139),62/62,足柄改二(Lv139),63/63,大井改二(Lv133),49/49,北上改二(Lv133),49/49," +\r
-                "軽巡ヘ級(flagship),0/57,重巡リ級(elite),0/60,軽巡ト級(elite),0/55,雷巡チ級(elite),0/50,駆逐ロ級(elite),0/35,駆逐ロ級(elite),0/35|" +\r
-                "2015-01-01 00:00:00,アルフォンシーノ方面,3,,S,同航戦,複縦陣,梯形陣,敵護衛空母群,重巡洋艦,筑摩," +\r
-                "飛龍改(Lv79),65/65,翔鶴改二(Lv112),85/85,隼鷹改二(Lv139),54/62,足柄改二(Lv139),63/63,大井改二(Lv133),46/49,北上改二(Lv133),49/49," +\r
-                "軽母ヌ級(elite),0/70,軽母ヌ級(elite),0/70,軽母ヌ級(elite),0/70,軽巡ホ級(flagship),0/53,駆逐ニ級(elite),0/45,駆逐ニ級(elite),0/45|" +\r
-                "2015-01-01 00:00:00,アルフォンシーノ方面,11,ボス,S,T字戦(有利),単縦陣,単縦陣,深海棲艦泊地艦隊,駆逐艦+アイテム,舞風+秋刀魚," +\r
-                "飛龍改(Lv79),65/65,翔鶴改二(Lv112),44/85,隼鷹改二(Lv139),54/62,足柄改二(Lv139),50/63,大井改二(Lv133),46/49,北上改二(Lv133),49/49," +\r
-                "空母ヲ級(flagship),0/96,空母ヲ級(elite),0/88,戦艦ル級(flagship),0/98,軽巡ヘ級(flagship),0/57,軽巡ト級(elite),0/55,駆逐ニ級(elite),0/45|"\r
+                "2017-01-01 00:00:00,台湾沖/ルソン島沖,5,出撃,S,同航戦,単縦陣,単縦陣,深海通商破部隊 前衛水雷戦隊,,," +\r
+                "あきつ丸改(Lv81),40/40,那智改二(Lv151),63/63,Roma改(Lv99),83/92,阿武隈改二(Lv98),40/45,霞改二(Lv96),13/31,潮改二(Lv94)・不知火改(Lv85),31/33・32/32," +\r
+                "軽巡ホ級(flagship),0/53,駆逐ロ級後期型,0/37,駆逐ロ級後期型,0/37,駆逐ロ級後期型,0/37,駆逐イ級,0/20,駆逐イ級,0/20,317~318,0,制空権確保|"\r
                 == result);\r
         }\r
 \r
@@ -247,8 +177,8 @@ namespace KancolleSniffer.Test
             sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2015, 1, 1));\r
             sniffer.EnableLog(LogType.CreateItem);\r
             SnifferTest.SniffLogFile(sniffer, "createitem_001");\r
-            PAssert.That(() => "2015-01-01 00:00:00,7.7mm機銃,対空機銃,10,20,20,10,天津風改(127),114|" +\r
-                               "2015-01-01 00:00:00,失敗,,10,20,20,10,天津風改(127),114|"\r
+            PAssert.That(() => "2015-01-01 00:00:00,12cm単装砲,小口径主砲,10,10,30,10,綾波改二(145),120|" +\r
+                               "2015-01-01 00:00:00,失敗,,10,10,30,10,綾波改二(145),120|"\r
                                == result);\r
         }\r
 \r
@@ -260,8 +190,8 @@ namespace KancolleSniffer.Test
             sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2015, 1, 1));\r
             sniffer.EnableLog(LogType.CreateShip);\r
             SnifferTest.SniffLogFile(sniffer, "createship_001");\r
-            PAssert.That(() => "2015-01-01 00:00:00,通常艦建造,球磨,軽巡洋艦,30,30,30,30,1,1,明石改(50),116|" +\r
-                               "2015-01-01 00:00:00,大型艦建造,筑摩,重巡洋艦,1500,1500,2000,1000,1,0,明石改(50),116|"\r
+            PAssert.That(() => "2015-01-01 00:00:00,通常艦建造,雷,駆逐艦,30,30,30,30,1,1,綾波改二(145),120|" +\r
+                               "2015-01-01 00:00:00,大型艦建造,霧島,巡洋戦艦,1500,1500,2000,1000,1,0,綾波改二(145),120|"\r
                                == result);\r
         }\r
 \r
@@ -279,5 +209,70 @@ namespace KancolleSniffer.Test
                                "2015-01-01 00:00:00,91式高射装置,10,○,○,10cm連装高角砲,2,0,0,60,40,9,7,明石改(50),摩耶改(98)|"\r
                                == result);\r
         }\r
+\r
+        [TestMethod]\r
+        public void Achievement()\r
+        {\r
+            var logger = new Logger(null, null, null);\r
+            logger.EnableLog(LogType.Achivement);\r
+            var result = "";\r
+            var dateEnum = new[]\r
+            {\r
+                new DateTime(2017, 3, 31, 21, 0, 0),\r
+                new DateTime(2017, 3, 31, 22, 0, 0),\r
+                new DateTime(2017, 4, 1, 1, 0, 0),\r
+                new DateTime(2017, 4, 1, 2, 0, 0),\r
+                new DateTime(2017, 4, 1, 3, 0, 0),\r
+                new DateTime(2017, 4, 2, 2, 0, 0),\r
+                new DateTime(2017, 4, 2, 3, 0, 0),\r
+                new DateTime(2017, 4, 2, 4, 0, 0)\r
+            }.GetEnumerator();\r
+            logger.SetWriter((path, s, h) => { result += s + "|"; }, () =>\r
+            {\r
+                dateEnum.MoveNext();\r
+                // ReSharper disable once PossibleNullReferenceException\r
+                return (DateTime)dateEnum.Current;\r
+            });\r
+            for (var i = 0; i < 6; i++)\r
+                logger.InspectBasic(JsonParser.Parse($"{{\"api_experience\": {i * 1000}}}"));\r
+            logger.InspectBattleResult(JsonParser.Parse("{\"api_get_exmap_rate\": \"100\"}"));\r
+            logger.InspectMapNext(JsonParser.Parse("{\"api_get_eo_rate\": 75}"));\r
+            PAssert.That(() =>\r
+                "2017-03-31 21:00:00,0,0|2017-03-31 21:00:00,0,0|2017-03-31 22:00:00,1000,0|" +\r
+                "2017-04-01 03:00:00,4000,0|2017-04-02 02:00:00,5000,0|" +\r
+                "2017-04-02 03:00:00,5000,100|2017-04-02 04:00:00,5000,75|"\r
+                == result);\r
+        }\r
+\r
+        [TestMethod]\r
+        public void InspectClearItemGet()\r
+        {\r
+            var sniffer = new Sniffer();\r
+            var result = "";\r
+            sniffer.SetLogWriter((path, s, h) => { result += s + "|"; }, () => new DateTime(2017, 5, 1));\r
+            sniffer.EnableLog(LogType.Achivement);\r
+            SnifferTest.SniffLogFile(sniffer, "clearitemget_001");\r
+            PAssert.That(() =>\r
+                "2017-05-01 00:00:00,45417045,0|2017-05-01 00:00:00,45417045,350|" == result);\r
+        }\r
+\r
+        /// <summary>\r
+        /// 晴嵐(六三一空)任務の場合はapi_bounus_countがない\r
+        /// </summary>\r
+        [TestMethod]\r
+        public void InspectClearItemGetSeiran631Ku()\r
+        {\r
+            var sniffer = new Sniffer(true);\r
+            sniffer.SetLogWriter((path, s, h) => { }, () => new DateTime(2017, 5, 1));\r
+            sniffer.EnableLog(LogType.Achivement);\r
+            sniffer.Sniff("/kcsapi/api_req_quest/clearitemget",\r
+                "api%5Fquest%5Fid=656&api%5Fverno=1",\r
+                JsonParser.Parse(\r
+                    @"{""api_result"":1,""api_result_msg"":""成功"",""api_data"":\r
+                    {""api_material"":[0,0,0,0],""api_bounus"":[\r
+                    {""api_type"":15,""api_count"":1,""api_item"":{""api_id_from"":9999,""api_id_to"":9999,\r
+                    ""api_message"":""第一潜水隊運用航空隊:「晴嵐(六三一空)」の新編成を<br>完了しました!""}}\r
+                    ]}}"));\r
+        }\r
     }\r
 }
\ No newline at end of file