public async Task PostGifs_Exception()
        {
            var           channel          = new Mock <IMessageChannel>();
            const decimal channelId        = 123;
            var           historyContainer = new UrlHistoryContainer {
                ChannelId = channelId, IsTrending = false, GifId = "the gif ID", Url = "a.b/c"
            };
            var request   = new Mock <IRequest>();
            var exception = new Exception();

            channel.Setup(s => s.SendMessageAsync(historyContainer.Url, It.IsAny <bool>(), It.IsAny <Embed>(), It.IsAny <RequestOptions>())).ThrowsAsync(exception);
            var channelContainers = new List <ChannelContainer> {
                new ChannelContainer {
                    Channel = channel.Object, HistoryContainer = historyContainer
                }
            };

            _Log.Setup(s => s.LogError(exception, $"Error posting to channel '{historyContainer.ChannelId}' gif '{historyContainer.Url}'."));
            _Log.Setup(s => s.LogInformation($"Posting {channelContainers.Count} gifs."));
            _Log.Setup(s => s.LogInformation("Posted 0 gifs."));
            var result = await _GifPostingHelper.PostGifs(channelContainers);

            channel.VerifyAll();
            _Log.VerifyAll();
            Assert.That(result.ChannelsToDelete, Is.Empty);
            Assert.That(result.Errors, Contains.Item(historyContainer));
        }
        public async Task PostGifs_Trending()
        {
            var channel          = new Mock <IMessageChannel>();
            var historyContainer = new UrlHistoryContainer {
                IsTrending = true, Url = "a.b/c"
            };
            IUserMessage userMessage = null;
            var          message     = $"*Trending!* {historyContainer.Url}";

            channel.Setup(s => s.SendMessageAsync(message, It.IsAny <bool>(), It.IsAny <Embed>(), It.IsAny <RequestOptions>())).ReturnsAsync(userMessage);
            var channelContainers = new List <ChannelContainer> {
                new ChannelContainer {
                    Channel = channel.Object, HistoryContainer = historyContainer
                }
            };

            _Log.Setup(s => s.LogInformation($"Posting {channelContainers.Count} gifs."));
            _Log.Setup(s => s.LogInformation("Posted 1 gifs."));
            var result = await _GifPostingHelper.PostGifs(channelContainers);

            channel.VerifyAll();
            _Log.VerifyAll();
            Assert.That(result.ChannelsToDelete, Is.Empty);
            Assert.That(result.Errors, Is.Empty);
        }
        public async Task BuildChannelContainers_Error()
        {
            const decimal channelId    = 123;
            var           errorHistory = new UrlHistoryContainer {
                ChannelId = channelId
            };
            var insertedContainers = new List <UrlHistoryContainer> {
                errorHistory
            };

            _Log.Setup(s => s.LogInformation($"Getting {insertedContainers.Count} channels."));
            var channel       = new Mock <IMessageChannel>();
            var channelIdLong = Convert.ToUInt64(channelId);

            channel.Setup(s => s.Id).Returns(channelIdLong);
            var exception = new Exception();

            _DiscordWrapper.Setup(s => s.GetChannelAsync(channelId)).ThrowsAsync(exception);
            _Log.Setup(s => s.LogError(exception, $"Error getting channel '{channelId}'."));
            _Log.Setup(s => s.LogInformation("Got 0 channels."));
            var result = await _GifPostingHelper.BuildChannelContainers(insertedContainers);

            _Log.VerifyAll();
            _DiscordWrapper.VerifyAll();
            Assert.That(result.ChannelContainers.Count, Is.EqualTo(0));
            Assert.That(result.Errors.Count, Is.EqualTo(1));
            Assert.That(result.ChannelsToDelete.Count, Is.EqualTo(0));
            Assert.That(result.Errors, Contains.Item(errorHistory));
        }
        public async Task BuildChannelContainers_NullChannel()
        {
            const decimal channelId    = 123;
            var           errorHistory = new UrlHistoryContainer {
                ChannelId = channelId
            };
            var insertedContainers = new List <UrlHistoryContainer> {
                errorHistory
            };

            _Log.Setup(s => s.LogInformation($"Getting {insertedContainers.Count} channels."));
            IMessageChannel channel       = null;
            var             channelIdLong = Convert.ToUInt64(channelId);

            _DiscordWrapper.Setup(s => s.GetChannelAsync(channelId)).ReturnsAsync(channel);
            _Log.Setup(s => s.LogInformation("Got 0 channels."));
            var result = await _GifPostingHelper.BuildChannelContainers(insertedContainers);

            _Log.VerifyAll();
            _DiscordWrapper.VerifyAll();
            Assert.That(result.ChannelContainers.Count, Is.EqualTo(0));
            Assert.That(result.Errors.Count, Is.EqualTo(0));
            Assert.That(result.ChannelsToDelete.Count, Is.EqualTo(1));
            Assert.That(result.ChannelsToDelete, Contains.Item(channelId));
        }
Ejemplo n.º 5
0
 public ChannelContainer(IMessageChannel channel, UrlHistoryContainer history)
 {
     Channel          = channel;
     HistoryContainer = history;
 }