Example #1
0
        public void Revert()
        {
            // Arrange
            artist.Description.English = "Original";
            var oldVer   = repository.HandleTransaction(ctx => queries.Archive(ctx, artist, ArtistArchiveReason.PropertiesUpdated));
            var contract = new ArtistForEditContract(artist, ContentLanguagePreference.English);

            contract.Description.English = "Updated";
            CallUpdate(contract);

            var entryFromRepo = repository.Load <Artist>(artist.Id);

            Assert.AreEqual("Updated", entryFromRepo.Description.English, "Description was updated");

            // Act
            var result = queries.RevertToVersion(oldVer.Id);

            // Assert
            Assert.AreEqual(0, result.Warnings.Length, "Number of warnings");

            entryFromRepo = repository.Load <Artist>(result.Id);
            Assert.AreEqual("Original", entryFromRepo.Description.English, "Description was restored");

            var lastVersion = entryFromRepo.ArchivedVersionsManager.GetLatestVersion();

            Assert.IsNotNull(lastVersion, "Last version is available");
            Assert.AreEqual(ArtistArchiveReason.Reverted, lastVersion.Reason, "Last version archive reason");
            Assert.IsFalse(lastVersion.Diff.Picture, "Picture was not changed");
        }
Example #2
0
        public async Task Revert()
        {
            // Arrange
            _artist.Description.English = "Original";
            var oldVer = await _repository.HandleTransactionAsync(ctx => _queries.ArchiveAsync(ctx, _artist, ArtistArchiveReason.PropertiesUpdated));

            var contract = new ArtistForEditContract(_artist, ContentLanguagePreference.English, new InMemoryImagePersister());

            contract.Description.English = "Updated";
            await CallUpdate(contract);

            var entryFromRepo = _repository.Load <Artist>(_artist.Id);

            entryFromRepo.Description.English.Should().Be("Updated", "Description was updated");

            // Act
            var result = await _queries.RevertToVersion(oldVer.Id);

            // Assert
            result.Warnings.Length.Should().Be(0, "Number of warnings");

            entryFromRepo = _repository.Load <Artist>(result.Id);
            entryFromRepo.Description.English.Should().Be("Original", "Description was restored");

            var lastVersion = entryFromRepo.ArchivedVersionsManager.GetLatestVersion();

            lastVersion.Should().NotBeNull("Last version is available");
            lastVersion.Reason.Should().Be(ArtistArchiveReason.Reverted, "Last version archive reason");
            lastVersion.Diff.Picture.IsChanged.Should().BeFalse("Picture was not changed");
        }
        public async Task <ActionResult> RevertToVersion(int archivedArtistVersionId)
        {
            var result = await queries.RevertToVersion(archivedArtistVersionId);

            TempData.SetStatusMessage(string.Join("\n", result.Warnings));

            return(RedirectToAction("Edit", new { id = result.Id }));
        }