mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Merge pull request #5453 from kumards/patch-1
Fix for duplicate version number on creating a new draft
This commit is contained in:
@@ -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");
|
||||
|
||||
@@ -481,11 +481,9 @@ namespace Orchard.ContentManagement {
|
||||
|
||||
if (latestVersion != null) {
|
||||
latestVersion.Latest = false;
|
||||
buildingItemVersionRecord.Number = latestVersion.Number + 1;
|
||||
}
|
||||
else {
|
||||
////The new version should always be the next highest available number.
|
||||
buildingItemVersionRecord.Number = contentItemRecord.Versions.Max(x => x.Number) + 1;
|
||||
}
|
||||
|
||||
contentItemRecord.Versions.Add(buildingItemVersionRecord);
|
||||
_contentItemVersionRepository.Create(buildingItemVersionRecord);
|
||||
|
||||
Reference in New Issue
Block a user