示例#1
0
        public void Command_Received_Match_No_Posts_Whoops()
        {
            _mockMusixClient
                .Setup(m => m.GetTracksAsync(It.IsAny<string>(), It.IsAny<int>()))
                .ReturnsAsync(new List<dynamic>());

            var listener = new SingListener(_mockChatClient.Object, _mockMusixClient.Object,
                _mockRandomiser.Object);

            var cmd = new CommandEventArgs("#chan1", "JIM", ValidCmd);
            _mockChatClient.Raise(m => m.CommandReceived += null, cmd);

            _mockChatClient.Verify(m => m.SendMessage("JIM: Whoops, no lyrics found",
                "#chan1"));
        }
示例#2
0
        public void Command_Received_Match_Http_Exception_Caught()
        {
            _mockMusixClient
                .Setup(m => m.GetTracksAsync(It.IsAny<string>(), It.IsAny<int>()))
                .Throws(new HttpClientException(null, null));

            var listener = new SingListener(_mockChatClient.Object, _mockMusixClient.Object,
                _mockRandomiser.Object);

            var cmd = new CommandEventArgs("#chan1", "JIM", ValidCmd);
            _mockChatClient.Raise(m => m.CommandReceived += null, cmd);

            _mockChatClient.Verify(m => m.SendMessage("JIM: Whoops, something went wrong",
                "#chan1"));
        }
示例#3
0
        public void Command_Received_Match_Gets_25_Tracks_With_Query()
        {
            _mockMusixClient
                .Setup(m => m.GetTracksAsync(It.IsAny<string>(), It.IsAny<int>()))
                .ReturnsAsync(_tracks);

            var listener = new SingListener(_mockChatClient.Object, _mockMusixClient.Object,
                _mockRandomiser.Object);

            var cmd = new CommandEventArgs(null, null, ValidCmd);
            _mockChatClient.Raise(m => m.CommandReceived += null, cmd);

            const string expQuery = "wraps";
            const int expLimit = 25;

            _mockMusixClient.Verify(m => m.GetTracksAsync(expQuery, expLimit));
        }
示例#4
0
        public void Command_Received_Match_Replies()
        {
            _mockMusixClient
                .Setup(m => m.GetTracksAsync(It.IsAny<string>(), It.IsAny<int>()))
                .ReturnsAsync(_tracks);

            _mockMusixClient
                .Setup(m => m.GetLyricsAsync(It.IsAny<object>()))
                .ReturnsAsync(_lyrics1);

            var listener = new SingListener(_mockChatClient.Object, _mockMusixClient.Object,
                _mockRandomiser.Object);

            var cmd = new CommandEventArgs("#chan1", null, ValidCmd);
            _mockChatClient.Raise(m => m.CommandReceived += null, cmd);

            cmd = new CommandEventArgs("#chan1", null, "sing wraps");
            _mockChatClient.Raise(m => m.CommandReceived += null, cmd);

            _mockChatClient.Verify(m => m.SendMessage(_lyrics1.Snippet, "#chan1"),
                Times.Exactly(2));

            _mockChatClient.Verify(m => m.SendMessage(_lyrics1.Attribution, "#chan1"),
                Times.Exactly(2));
        }
示例#5
0
        public void Command_Received_Non_Match_Or_Empty_Ignored()
        {
            var listener = new SingListener(_mockChatClient.Object, _mockMusixClient.Object,
                _mockRandomiser.Object);

            var cmd = new CommandEventArgs(null, null, "baguette");
            _mockChatClient.Raise(m => m.CommandReceived += null, cmd);

            cmd = new CommandEventArgs(null, null, "sing about");
            _mockChatClient.Raise(m => m.CommandReceived += null, cmd);

            _mockChatClient.Verify(m => m.SendMessage(It.IsAny<string>(), It.IsAny<string[]>()),
                Times.Never);
        }
示例#6
0
        public void Command_Received_Match_Trims_Query()
        {
            _mockMusixClient
                .Setup(m => m.GetTracksAsync(It.IsAny<string>(), It.IsAny<int>()))
                .ReturnsAsync(_tracks);

            var listener = new SingListener(_mockChatClient.Object, _mockMusixClient.Object,
                _mockRandomiser.Object);

            var cmd = new CommandEventArgs(null, null, ValidCmd + " ");
            _mockChatClient.Raise(m => m.CommandReceived += null, cmd);

            _mockMusixClient.Verify(m => m.GetTracksAsync("wraps", It.IsAny<int>()));
        }
示例#7
0
        public void Command_Received_Match_Replies_With_Lyrics_From_Random_Track()
        {
            const int randomIndex = 1;
            object expTrack = _tracks[randomIndex];

            _mockRandomiser.Setup(m => m.NextInt(It.IsAny<int>())).Returns(randomIndex);

            _mockMusixClient.Setup(m => m.GetTracksAsync(It.IsAny<string>(), It.IsAny<int>()))
                .ReturnsAsync(_tracks);

            _mockMusixClient.Setup(m => m.GetLyricsAsync(expTrack))
                .ReturnsAsync(_lyrics2);

            var listener = new SingListener(_mockChatClient.Object, _mockMusixClient.Object,
                _mockRandomiser.Object);

            var cmd = new CommandEventArgs("#chan1", null, ValidCmd);
            _mockChatClient.Raise(m => m.CommandReceived += null, cmd);

            _mockMusixClient.Verify(m => m.GetLyricsAsync(expTrack));
        }