+ [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