コード例 #1
0
        public async Task LegacyScan_NonRollTest()
        {
            var message0 = TestLazySocketMessage.CreateMentionedMessage("scan-start");
            var message1 = TestLazySocketMessage.CreateNoMentionMessage("hooray!");

            await Scan_NonRollTestCore(message0, message1);
        }
コード例 #2
0
        public async Task Scan_WrongRollTest()
        {
            var message0 = TestLazySocketMessage.CreateNoMentionMessage("!scan-start");
            var message1 = TestLazySocketMessage.CreateNoMentionMessage("2d100");

            await Scan_WrongRollTestCore(message0, message1);
        }
コード例 #3
0
        async Task Scan_TwoUsersTestCore(TestLazySocketMessage message0, TestLazySocketMessage message1, TestLazySocketMessage message2, TestLazySocketMessage message3)
        {
            ulong botCurrentUserId = TestLazySocketUser.MyBot.Id;

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

            await allCommands.ReceiveMessageAsync(message0, botCurrentUserId);

            AssertEx.ExactlyOneSay(testObserver.Messages);
            testObserver.Messages.Clear();

            await allCommands.ReceiveMessageAsync(message1, botCurrentUserId);

            AssertEx.ExactlyOneSay(testObserver.Messages);
            testObserver.Messages.Clear();

            await allCommands.ReceiveMessageAsync(message2, botCurrentUserId);

            AssertEx.ExactlyOneSay(testObserver.Messages);
            testObserver.Messages.Clear();

            await allCommands.ReceiveMessageAsync(message3, botCurrentUserId);

            AssertEx.ExactlyOneSay(testObserver.Messages);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        public async Task ScanShowTest()
        {
            var message0 = TestLazySocketMessage.CreateNoMentionMessage("!scan-start");
            var message1 = TestLazySocketMessage.CreateNoMentionMessage("1d100");
            var message2 = TestLazySocketMessage.CreateNoMentionMessage("!scan-show");

            await ScanShowTestCore(message0, message1, message2);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
0
        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);
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        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);
        }
コード例 #11
0
        public async Task Scan_TwoRollsTest()
        {
            var message0 = TestLazySocketMessage.CreateNoMentionMessage("!scan-start");
            var message1 = TestLazySocketMessage.CreateNoMentionMessage("1d100");
            var message2 = TestLazySocketMessage.CreateNoMentionMessage("1d100");
            var message3 = TestLazySocketMessage.CreateNoMentionMessage("!scan-end");

            await Scan_TwoRollsTestCore(message0, message1, message2, message3);
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        public async Task ScanShow_CacheTest()
        {
            TestLazySocketMessage message0 = TestLazySocketMessage.CreateNoMentionMessage("!scan-start");
            TestLazySocketMessage message1 = TestLazySocketMessage.CreateNoMentionMessage("!1d100");
            TestLazySocketMessage message2 = TestLazySocketMessage.CreateNoMentionMessage("!scan-end");
            TestLazySocketMessage message3 = TestLazySocketMessage.CreateNoMentionMessage("!scan-show");

            await ScanShow_CacheTestCore(message0, message1, message2, message3);
        }
コード例 #14
0
        async Task Plain_NotMentionedTestCore(string text)
        {
            ulong botCurrentUserId = TestLazySocketUser.MyBot.Id;

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

            await allCommands.ReceiveMessageAsync(TestLazySocketMessage.CreateNotMentionedMessage(text), botCurrentUserId);

            AssertEx.IsEmpty(testObserver.Messages);
        }
コード例 #15
0
        public async Task Roll_ByOtherBotTest()
        {
            ulong botCurrentUserId = TestLazySocketUser.MyBot.Id;

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

            await allCommands.ReceiveMessageAsync(TestLazySocketMessage.CreateOtherBotMessage("1d100"), botCurrentUserId);

            AssertEx.IsEmpty(testObserver.Messages);
        }
コード例 #16
0
        public async Task LegacyScanEnd_NoMentionTest()
        {
            ulong botCurrentUserId = TestLazySocketUser.MyBot.Id;

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

            await allCommands.ReceiveMessageAsync(TestLazySocketMessage.CreateNoMentionMessage("scan-end"), botCurrentUserId);

            AssertEx.IsEmpty(testObserver.Messages);
        }
コード例 #17
0
        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);
        }
コード例 #18
0
        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);
        }
コード例 #19
0
        public async Task RollByFullWidth_NoMentionTest()
        {
            ulong botCurrentUserId = TestLazySocketUser.MyBot.Id;

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

            await allCommands.ReceiveMessageAsync(TestLazySocketMessage.CreateNoMentionMessage("1d100"), botCurrentUserId);

            AssertEx.ExactlyOneSay(testObserver.Messages);
        }
コード例 #20
0
        public async Task Roll_TooLongExprTest()
        {
            ulong botCurrentUserId = TestLazySocketUser.MyBot.Id;

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

            await allCommands.ReceiveMessageAsync(TestLazySocketMessage.CreateNoMentionMessage("2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6+2d6"), botCurrentUserId);

            AssertEx.ExactlyOneCaution(testObserver.Messages);
        }
コード例 #21
0
        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);
        }
コード例 #22
0
        async Task ScanShow_CacheTestCore(TestLazySocketMessage message0, TestLazySocketMessage message1, TestLazySocketMessage message2, TestLazySocketMessage message3)
        {
            var botCurrentUserId = TestLazySocketUser.MyBot.Id;

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

            await allCommands.ReceiveMessageAsync(message0, botCurrentUserId);

            await allCommands.ReceiveMessageAsync(message1, botCurrentUserId);

            time.AdvanceBy(TimeSpan.FromHours(1.5));                                  // TimeLimit になるくらい長時間経過させる
            await Task.Delay(time.IntervalOfUpdatingScans + TimeSpan.FromSeconds(1)); // 必ず IntervalOfUpdatingScans 以上の時間が経過するよう +1秒 している

            await allCommands.ReceiveMessageAsync(message2, botCurrentUserId);

            testObserver.Messages.Clear();

            await allCommands.ReceiveMessageAsync(message3, botCurrentUserId);

            AssertEx.ExactlyOneSay(testObserver.Messages);
        }