public async Task LegacyScan_NonRollTest()
        {
            var message0 = TestLazySocketMessage.CreateMentionedMessage("scan-start");
            var message1 = TestLazySocketMessage.CreateNoMentionMessage("hooray!");

            await Scan_NonRollTestCore(message0, message1);
        }
        public async Task LegacyScanStart_TimeLimitTest()
        {
            TestLazySocketMessage message0 = TestLazySocketMessage.CreateMentionedMessage("scan-start");
            TestLazySocketMessage message1 = TestLazySocketMessage.CreateMentionedMessage("scan-end");
            TestLazySocketMessage message2 = TestLazySocketMessage.CreateMentionedMessage("scan-start");

            await ScanStart_TimeLimitTestCore(message0, message1, message2);
        }
        public async Task LegacyScanStart_DuplicateTest()
        {
            var message0 = TestLazySocketMessage.CreateMentionedMessage("scan-start");
            var message1 = TestLazySocketMessage.CreateMentionedMessage("scan-start");
            var message2 = TestLazySocketMessage.CreateMentionedMessage("scan-end");

            await Scan_TwoUsersTestCore(message0, message1, message2);
        }
        public async Task LegacyScan_DiceOption_OneBigRollTest()
        {
            TestLazySocketMessage message0 = TestLazySocketMessage.CreateMentionedMessage("scan-start --dice 100000000000000000000+1d100");
            TestLazySocketMessage message1 = TestLazySocketMessage.CreateNoMentionMessage("100000000000000000000+1d100");
            TestLazySocketMessage message2 = TestLazySocketMessage.CreateMentionedMessage("scan-end");

            await Scan_DiceOption_OneBigRollTestCore(message0, message1, message2);
        }
        public async Task LegacyScan_OneRollTest()
        {
            var message0 = TestLazySocketMessage.CreateMentionedMessage("scan-start");
            var message1 = TestLazySocketMessage.CreateNoMentionMessage("1d100");
            var message2 = TestLazySocketMessage.CreateMentionedMessage("scan-end");

            await Scan_OneRollTestCore(message0, message1, message2);
        }
        public async Task LegacyScan_TwoUsersTest()
        {
            var message0 = TestLazySocketMessage.CreateMentionedMessage("scan-start", TestLazySocketUser.Author);
            var message1 = TestLazySocketMessage.CreateMentionedMessage("scan-start", TestLazySocketUser.NonAuthor);
            var message2 = TestLazySocketMessage.CreateMentionedMessage("scan-end", TestLazySocketUser.Author);
            var message3 = TestLazySocketMessage.CreateMentionedMessage("scan-end", TestLazySocketUser.NonAuthor);

            await Scan_TwoUsersTestCore(message0, message1, message2, message3);
        }
        public async Task LegacyScan_TieBreakTest()
        {
            var message0 = TestLazySocketMessage.CreateMentionedMessage("scan-start --dice 1d1", TestLazySocketUser.Author);
            var message1 = TestLazySocketMessage.CreateNoMentionMessage("1d1", TestLazySocketUser.Author);
            var message2 = TestLazySocketMessage.CreateNoMentionMessage("1d1", TestLazySocketUser.NonAuthor);
            var message3 = TestLazySocketMessage.CreateMentionedMessage("scan-end");

            await Scan_TieBreakTestCore(message0, message1, message2, message3);
        }
        public async Task LegacyScanShow_NoCacheTest()
        {
            var message0 = TestLazySocketMessage.CreateMentionedMessage("scan-start");
            var message1 = TestLazySocketMessage.CreateNoMentionMessage("1d100");
            var message2 = TestLazySocketMessage.CreateMentionedMessage("scan-end");
            var message3 = TestLazySocketMessage.CreateMentionedMessage("scan-show");

            await ScanShow_NoCacheTestCore(message0, message1, message2, message3);
        }
        public async Task LegacyVersionWithHyphen_WithOptionTest()
        {
            ulong botCurrentUserId = TestLazySocketUser.MyBot.Id;

            var(allCommands, testObserver, _) = Init();

            await allCommands.ReceiveMessageAsync(TestLazySocketMessage.CreateMentionedMessage("--version --foo"), botCurrentUserId);

            AssertEx.ExactlyOneCaution(testObserver.Messages);
        }
        public async Task LegacyVersion_MentionedTest()
        {
            ulong botCurrentUserId = TestLazySocketUser.MyBot.Id;

            var(allCommands, testObserver, _) = Init();

            await allCommands.ReceiveMessageAsync(TestLazySocketMessage.CreateMentionedMessage("version"), botCurrentUserId);

            AssertEx.ExactlyOneSay(testObserver.Messages);
        }
        public async Task LegacyScanEnd_DuplicateTest()
        {
            ulong botCurrentUserId = TestLazySocketUser.MyBot.Id;

            var(allCommands, testObserver, _) = Init();

            var message0 = TestLazySocketMessage.CreateMentionedMessage("scan-start");
            var message1 = TestLazySocketMessage.CreateMentionedMessage("scan-end");
            var message2 = TestLazySocketMessage.CreateMentionedMessage("scan-end");

            await ScanEnd_DuplicateTestCore(message0, message1, message2);
        }