OSDN Git Service

朝5時にデイリー以外の消さなくてもいい任務が消えるのを直す
[kancollesniffer/KancolleSniffer.git] / KancolleSniffer.Test / QuestInfoTest.cs
index 4989ee2..2504031 100644 (file)
@@ -115,7 +115,7 @@ namespace KancolleSniffer.Test
         }\r
 \r
         [TestMethod]\r
-        public void ResetQuest()\r
+        public void ResetQuestCount()\r
         {\r
             var queue = new Queue<DateTime>(new[]\r
             {\r
@@ -148,6 +148,36 @@ namespace KancolleSniffer.Test
             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