From 07e98693c73e2d4e0d846415989cd9f32b9e6ac4 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Fri, 1 Aug 2014 12:08:28 -0700 Subject: [PATCH] ContentManager.Get(VersionOptions.AllVersions) returns last version record instead of first version record. --- .../DefaultContentManagerTests.cs | 23 +++++++++++++++++++ .../DefaultContentManager.cs | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs b/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs index c37702b9d..92476bb7f 100644 --- a/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs +++ b/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs @@ -654,6 +654,29 @@ namespace Orchard.Tests.ContentManagement { Assert.That(gammas[3].Version, Is.EqualTo(4)); } + [Test] + public void GetWithAllVersionsOptionsReturnsLatestVersion() { + // Generate some versions + var gamma1 = _manager.Create(DefaultGammaName, VersionOptions.Published); + Flush(); + + var gamma2 = _manager.GetDraftRequired(gamma1.Id); + _manager.Publish(gamma2); + Flush(); + + var gamma3 = _manager.GetDraftRequired(gamma1.Id); + _manager.Publish(gamma3); + Flush(); + + var gamma4 = _manager.GetDraftRequired(gamma1.Id); + _manager.Publish(gamma4); + FlushAndClear(); + + // Assert that the latest version is returned when using AllVersions + var gamma = _manager.Get(gamma1.Id, VersionOptions.AllVersions); + Assert.That(gamma.Version, Is.EqualTo(4)); + } + [Test] public void EmptyTypeDefinitionShouldBeCreatedIfNotAlreadyDefined() { var contentItem = _manager.New("no-such-type"); diff --git a/src/Orchard/ContentManagement/DefaultContentManager.cs b/src/Orchard/ContentManagement/DefaultContentManager.cs index f6ccb5d2c..bb27f4b2e 100644 --- a/src/Orchard/ContentManagement/DefaultContentManager.cs +++ b/src/Orchard/ContentManagement/DefaultContentManager.cs @@ -188,7 +188,7 @@ namespace Orchard.ContentManagement { x => x.ContentItemRecord.Id == id && x.Number == options.VersionNumber); } else { - versionRecord = contentItemVersionRecords.FirstOrDefault(); + versionRecord = contentItemVersionRecords.LastOrDefault(); } }