OSDN Git Service

0時から5時の間に任務のリセットが掛からないのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Wed, 23 Jan 2019 13:50:35 +0000 (22:50 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Wed, 23 Jan 2019 13:50:35 +0000 (22:50 +0900)
KancolleSniffer.Test/QuestInfoTest.cs
KancolleSniffer/Model/QuestInfo.cs

index 80fe645..bd24cdb 100644 (file)
@@ -151,6 +151,25 @@ namespace KancolleSniffer.Test
         }\r
 \r
         [TestMethod]\r
+        public void ResetFrom0To5OClock()\r
+        {\r
+            var queue = new Queue<DateTime>(new[]\r
+            {\r
+                new DateTime(2019, 1, 22, 4, 0, 0)\r
+            });\r
+            var questInfo = new QuestInfo(null, null, () => queue.Dequeue());\r
+            var status = new Status\r
+            {\r
+                QuestCountList = new[] {new QuestCount {Id = 213, Now = 1}},\r
+                QuestLastReset = new DateTime(2019, 1, 20, 5, 16, 22)\r
+            };\r
+            questInfo.LoadState(status);\r
+            questInfo.InspectQuestList(CreateQuestList(new[] {201}));\r
+            questInfo.SaveState(status);\r
+            PAssert.That(() => status.QuestCountList.Length == 0);\r
+        }\r
+\r
+        [TestMethod]\r
         public void ResetQuestList()\r
         {\r
             var queue = new Queue<DateTime>(new[]\r
index 6e42aed..58f19f2 100644 (file)
@@ -382,6 +382,8 @@ namespace KancolleSniffer.Model
         {\r
             var now = _nowFunc();\r
             var daily = now.Date.AddHours(5);\r
+            if (now.Hour < 5)\r
+                daily = daily.AddDays(-1);\r
             if (!(_lastReset < daily && daily <= now))\r
                 return;\r
             RemoveQuest(QuestInterval.Daily);\r