From 386c1b7d6d2c00c56e04696cbe719a0a408f8d84 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 1 Nov 2013 11:48:09 -0700 Subject: [PATCH] Fixing unit tests --- .../Tags/Services/TagsServiceTests.cs | 2 +- .../Users/Services/MembershipServiceTests.cs | 4 +++- .../Users/Services/UserServiceTests.cs | 4 +++- .../Warmup/WarmupUpdaterTests.cs | 4 ++++ .../Modules/Orchard.Tags/Services/TagService.cs | 14 +++++++++++--- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/Orchard.Tests.Modules/Tags/Services/TagsServiceTests.cs b/src/Orchard.Tests.Modules/Tags/Services/TagsServiceTests.cs index 992b22931..2a6f098ff 100644 --- a/src/Orchard.Tests.Modules/Tags/Services/TagsServiceTests.cs +++ b/src/Orchard.Tests.Modules/Tags/Services/TagsServiceTests.cs @@ -11,7 +11,6 @@ using Orchard.ContentManagement.Handlers; using Orchard.ContentManagement.Records; using Orchard.Data; using Orchard.Environment; -using Orchard.Environment.Configuration; using Orchard.Security; using Orchard.Tags.Handlers; using Orchard.Tags.Models; @@ -267,6 +266,7 @@ namespace Orchard.Tests.Modules.Tags.Services { Assert.That(_contentManager.Get(thing1.Id).As().CurrentTags.Any(t => t == "tag2"), Is.False); Assert.That(_contentManager.Get(thing1.Id).As().CurrentTags.Any(t => t == "tag3"), Is.True); + Assert.That(_contentManager.Get(thing2.Id).As().CurrentTags.Any(t => t == "tag2"), Is.False); Assert.That(_contentManager.Get(thing2.Id).As().CurrentTags.Any(t => t == "tag3"), Is.True); Assert.That(_contentManager.Get(thing3.Id).As().CurrentTags.Any(t => t == "tag3"), Is.True); diff --git a/src/Orchard.Tests.Modules/Users/Services/MembershipServiceTests.cs b/src/Orchard.Tests.Modules/Users/Services/MembershipServiceTests.cs index 2d57a681b..7831ea53d 100644 --- a/src/Orchard.Tests.Modules/Users/Services/MembershipServiceTests.cs +++ b/src/Orchard.Tests.Modules/Users/Services/MembershipServiceTests.cs @@ -6,6 +6,7 @@ using Moq; using NHibernate; using NUnit.Framework; using Orchard.Caching; +using Orchard.ContentManagement.FieldStorage.InfosetStorage; using Orchard.ContentManagement.MetaData; using Orchard.ContentManagement.MetaData.Models; using Orchard.ContentManagement.MetaData.Services; @@ -90,8 +91,9 @@ namespace Orchard.Tests.Modules.Users.Services { builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); - builder.RegisterInstance(new Mock().Object); + builder.RegisterInstance(new Mock().Object); builder.RegisterType().As(); + builder.RegisterType().As(); _session = _sessionFactory.OpenSession(); builder.RegisterInstance(new TestSessionLocator(_session)).As(); diff --git a/src/Orchard.Tests.Modules/Users/Services/UserServiceTests.cs b/src/Orchard.Tests.Modules/Users/Services/UserServiceTests.cs index 4192d6bad..28e7efd7b 100644 --- a/src/Orchard.Tests.Modules/Users/Services/UserServiceTests.cs +++ b/src/Orchard.Tests.Modules/Users/Services/UserServiceTests.cs @@ -7,6 +7,7 @@ using Moq; using NHibernate; using NUnit.Framework; using Orchard.Caching; +using Orchard.ContentManagement.FieldStorage.InfosetStorage; using Orchard.ContentManagement.MetaData; using Orchard.ContentManagement.MetaData.Models; using Orchard.ContentManagement.MetaData.Services; @@ -100,8 +101,9 @@ namespace Orchard.Tests.Modules.Users.Services { builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); - builder.RegisterInstance(new Mock().Object); + builder.RegisterInstance(new Mock().Object); builder.RegisterType().As(); + builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterInstance(ShellSettingsUtility.CreateEncryptionEnabled()); diff --git a/src/Orchard.Tests.Modules/Warmup/WarmupUpdaterTests.cs b/src/Orchard.Tests.Modules/Warmup/WarmupUpdaterTests.cs index e920a3f22..c6a9d4ea0 100644 --- a/src/Orchard.Tests.Modules/Warmup/WarmupUpdaterTests.cs +++ b/src/Orchard.Tests.Modules/Warmup/WarmupUpdaterTests.cs @@ -6,6 +6,8 @@ using System.Xml; using Autofac; using Moq; using NUnit.Framework; +using Orchard.ContentManagement.FieldStorage.InfosetStorage; +using Orchard.ContentManagement.Handlers; using Orchard.Environment.Configuration; using Orchard.Environment.Warmup; using Orchard.FileSystems.AppData; @@ -55,7 +57,9 @@ namespace Orchard.Tests.Modules.Warmup { ((StubWorkContextAccessor.WorkContextImpl.StubSite) _orchardServices.WorkContext.CurrentSite).BaseUrl = "http://orchardproject.net"; _settings = new WarmupSettingsPart(); + _orchardServices.WorkContext.CurrentSite.ContentItem.Weld(_settings); + _orchardServices.WorkContext.CurrentSite.ContentItem.Weld(new InfosetPart()); var builder = new ContainerBuilder(); builder.RegisterInstance(_appDataFolder).As(); diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Services/TagService.cs b/src/Orchard.Web/Modules/Orchard.Tags/Services/TagService.cs index 62e1b6b33..aff0474bf 100644 --- a/src/Orchard.Web/Modules/Orchard.Tags/Services/TagService.cs +++ b/src/Orchard.Web/Modules/Orchard.Tags/Services/TagService.cs @@ -94,17 +94,20 @@ namespace Orchard.Tags.Services { var tagsContentItems = _contentTagRepository.Fetch(x => x.TagRecord.Id == tagId); // get contentItems already tagged with the existing one - var taggedContentItems = GetTaggedContentItems(tagRecord.Id); + var taggedContentItems = GetTaggedContentItems(tagRecord.Id).ToArray(); + var oldTag = GetTag(tagId); foreach (var tagContentItem in tagsContentItems) { ContentTagRecord item = tagContentItem; - if (!taggedContentItems.Any(c => c.ContentItem.Id == item.TagsPartRecord.Id)) { + // does the content item already have the new tag ? + if (taggedContentItems.All(c => c.ContentItem.Id != item.TagsPartRecord.Id)) { TagContentItem(tagContentItem.TagsPartRecord, tagName); } + UntagContentItem(tagContentItem.TagsPartRecord, oldTag.TagName); _contentTagRepository.Delete(tagContentItem); } - _tagRepository.Delete(GetTag(tagId)); + _tagRepository.Delete(oldTag); return; } @@ -155,6 +158,11 @@ namespace Orchard.Tags.Services { _contentTagRepository.Create(tagsContentItems); } + private void UntagContentItem(TagsPartRecord tagsPartRecord, string tagName) { + var tagPart = _orchardServices.ContentManager.Get(tagsPartRecord.Id, VersionOptions.Latest); + tagPart.CurrentTags = tagPart.CurrentTags.Where(x => x != tagName); + } + public void RemoveTagsForContentItem(ContentItem contentItem) { if (contentItem.Id == 0) throw new OrchardException(T("Error removing tag to content item: the content item has not been created yet."));