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"); }
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 })); }