From aaef6d88106cdac215fc07aa9d8fc7dcdc723145 Mon Sep 17 00:00:00 2001 From: adeveloper Date: Wed, 1 Jul 2015 14:31:31 -0400 Subject: [PATCH] Adding a test case for DraftRequired version option building new version of the content --- .../DefaultContentManagerTests.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs b/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs index c20aaf66d..bacf5baa2 100644 --- a/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs +++ b/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs @@ -471,6 +471,46 @@ namespace Orchard.Tests.ContentManagement { Assert.That(gamma2.Record.Versions, Has.Count.EqualTo(2)); } + [Test] + public void DraftRequiredShouldAlwaysBuildNewVersionFromPublishedIfDraftNotFound() + { + Trace.WriteLine("gamma1"); + var gamma1 = _manager.Create(DefaultGammaName, VersionOptions.Published); + Trace.WriteLine("flush"); + _session.Flush(); + _session.Clear(); + + Trace.WriteLine("gammaDraft1"); + var gammaDraft1 = _manager.Get(gamma1.Id, VersionOptions.DraftRequired); + Assert.That(gammaDraft1.Version, Is.EqualTo(2)); + Trace.WriteLine("flush"); + _session.Flush(); + _session.Clear(); + + Trace.WriteLine("Delete gammaDraft1"); + var gammaDraft2 = _manager.Get(gammaDraft1.Id, VersionOptions.Draft); + gammaDraft2.VersionRecord.Latest = false; + + Trace.WriteLine("Restore gamma1 as Latest"); + var gamma2 = _manager.Get(gamma1.Id, VersionOptions.Published); + var publishedVersion = gamma2.Record.Versions.SingleOrDefault(x => x.Published); + if (publishedVersion != null) + { + publishedVersion.Latest = true; + } + Trace.WriteLine("flush"); + _session.Flush(); + _session.Clear(); + + Trace.WriteLine("gammaDraft3"); + var gammaDraft3 = _manager.Get(gamma1.Id, VersionOptions.DraftRequired); + Assert.That(gammaDraft3.Version, Is.EqualTo(3)); + Assert.That(gammaDraft3.Record, Is.Not.SameAs(gammaDraft2.Record)); + Trace.WriteLine("flush"); + _session.Flush(); + _session.Clear(); + } + [Test] public void UsingGetManyDraftRequiredShouldBuildNewVersionIfLatestIsAlreadyPublished() { Trace.WriteLine("gamma1");