public async void UpdateLegacyRelease()
        {
            var id            = Guid.NewGuid();
            var publicationId = Guid.NewGuid();

            using (var context = InMemoryApplicationDbContext())
            {
                context.Add(new Publication
                {
                    Id             = publicationId,
                    LegacyReleases = new List <LegacyRelease>
                    {
                        new LegacyRelease
                        {
                            Id          = id,
                            Description = "Test description",
                            Url         = "http://test.com",
                            Order       = 2,
                        },
                    }
                });

                context.SaveChanges();

                var legacyReleaseService = new LegacyReleaseService(
                    context,
                    AdminMapper(),
                    MockUtils.AlwaysTrueUserService().Object,
                    new PersistenceHelper <ContentDbContext>(context)
                    );

                // Service method under test
                var result = await legacyReleaseService.UpdateLegacyRelease(
                    id,
                    new UpdateLegacyReleaseViewModel()
                {
                    Description   = "Updated test description",
                    Url           = "http://updated-test.com",
                    Order         = 1,
                    PublicationId = publicationId,
                });

                Assert.Equal("Updated test description", result.Right.Description);
                Assert.Equal("http://updated-test.com", result.Right.Url);
                Assert.Equal(1, result.Right.Order);
                Assert.Equal(publicationId, result.Right.PublicationId);

                var savedLegacyRelease = context.LegacyReleases.Single(release => release.Id == result.Right.Id);

                Assert.Equal("Updated test description", savedLegacyRelease.Description);
                Assert.Equal("http://updated-test.com", savedLegacyRelease.Url);
                Assert.Equal(1, savedLegacyRelease.Order);
                Assert.Equal(publicationId, savedLegacyRelease.PublicationId);
            }
        }
        public async void UpdateLegacyRelease_ReordersWithoutGaps()
        {
            var id            = Guid.NewGuid();
            var publicationId = Guid.NewGuid();

            using (var context = InMemoryApplicationDbContext())
            {
                context.Add(new Publication
                {
                    Id             = publicationId,
                    LegacyReleases = new List <LegacyRelease>
                    {
                        new LegacyRelease
                        {
                            Id          = id,
                            Description = "Test description 1",
                            Url         = "http://test1.com",
                            Order       = 1,
                        },
                        new LegacyRelease
                        {
                            Description = "Test description 2",
                            Url         = "http://test2.com",
                            Order       = 2,
                        },
                        new LegacyRelease
                        {
                            Description = "Test description 3",
                            Url         = "http://test3.com",
                            Order       = 3,
                        }
                    }
                });

                context.SaveChanges();

                var legacyReleaseService = new LegacyReleaseService(
                    context,
                    AdminMapper(),
                    MockUtils.AlwaysTrueUserService().Object,
                    new PersistenceHelper <ContentDbContext>(context)
                    );

                // Service method under test
                var result = await legacyReleaseService.UpdateLegacyRelease(
                    id,
                    new UpdateLegacyReleaseViewModel()
                {
                    Description   = "Updated test description 1",
                    Url           = "http://updated-test1.com",
                    Order         = 5,
                    PublicationId = publicationId,
                });

                var legacyReleases = context.LegacyReleases
                                     .OrderBy(release => release.Order)
                                     .ToList();

                Assert.Equal("Test description 2", legacyReleases[0].Description);
                Assert.Equal(1, legacyReleases[0].Order);

                Assert.Equal("Test description 3", legacyReleases[1].Description);
                Assert.Equal(2, legacyReleases[1].Order);

                Assert.Equal("Updated test description 1", legacyReleases[2].Description);
                Assert.Equal(3, legacyReleases[2].Order);
            }
        }