public async Task ReorderAsync_Should_Reorder()
        {
            const int count   = 3;
            var       context = _context.Context;
            var       fixture = new Fixture();
            var       items   = new CurrentPlaylistItem[count];

            for (var i = 0; i < count; i++)
            {
                var idAndOrder = i + 1;
                items[i] = fixture.Build <CurrentPlaylistItem>()
                           .With(item => item.Id, idAndOrder)
                           .With(item => item.Order, idAndOrder)
                           .With(item => item.Video,
                                 fixture.Build <VideoItem>().Without(item => item.PlaylistVideoItems).Create())
                           .Create();
            }

            await context.CurrentPlaylist.AddRangeAsync(items).ConfigureAwait(false);

            await context.SaveChangesAsync().ConfigureAwait(false);

            var ids = Enumerable.Range(1, count).OrderByDescending(o => o).ToArray();

            await _repository.ReorderAsync(ids).ConfigureAwait(false);

            var actual = context.CurrentPlaylist.OrderBy(o => o.Order).ToArray();

            for (var i = 0; i < count; i++)
            {
                var expectedOrder = i + 1;
                var expectedId    = ids[i];
                Assert.Equal(expectedOrder, actual[i].Order);
                Assert.Equal(expectedId, actual[i].Id);
            }
        }