public async Task Given_MostRecent_Banlist_Query_If_No_Banlists_Are_Found_Banlist_Collection_Should_Empty()
        {
            // Arrange
            var query = new MostRecentBanlistsQuery();

            _banlistService.MostRecentBanlists().Returns(new MostRecentBanlistResult {
                Banlists = new List <MostRecentBanlist>()
            });

            // Act
            var result = await _sut.Handle(query, CancellationToken.None);

            // Assert
            result.Banlists.Should().BeNull();
        }
        public async Task Given_MostRecent_Banlist_Query_Should_Invoke_MostRecentBanlists_Once()
        {
            // Arrange
            var query = new MostRecentBanlistsQuery();

            _banlistService.MostRecentBanlists().Returns(new MostRecentBanlistResult
            {
                Banlists = new List <MostRecentBanlist>
                {
                    new MostRecentBanlist(),
                    new MostRecentBanlist()
                }
            });

            // Act
            await _sut.Handle(query, CancellationToken.None);

            // Assert
            await _banlistService.Received(1).MostRecentBanlists();
        }
        public async Task Given_MostRecent_Banlist_Query_Should_Return_Banlists()
        {
            // Arrange
            const int expected = 2;

            var query = new MostRecentBanlistsQuery();

            _banlistService.MostRecentBanlists().Returns(new MostRecentBanlistResult
            {
                Banlists = new List <MostRecentBanlist>
                {
                    new MostRecentBanlist(),
                    new MostRecentBanlist()
                }
            });

            // Act
            var result = await _sut.Handle(query, CancellationToken.None);

            // Assert
            result.Banlists.Should().HaveCount(expected);
        }