From be3f092b5450707513c84b2f09197e600ff1d00e Mon Sep 17 00:00:00 2001 From: Andre Rodrigues Date: Fri, 17 Sep 2010 10:43:36 -0700 Subject: [PATCH 1/2] Fixing some framework UT --HG-- branch : dev --- src/Orchard.Tests/ContainerTestBase.cs | 1 - .../ContentManagement/ContentQueryTests.cs | 8 +- .../DefaultContentManagerTests.cs | 107 ++++++++++++------ .../ContentPartDriverCoordinatorTests.cs | 2 +- .../DisplayManagement/SubsystemTests.cs | 44 ++++--- .../Mvc/OrchardControllerFactoryTests.cs | 1 - .../Implementation/DefaultDisplayManager.cs | 6 +- .../Environment/DefaultWorkContextAccessor.cs | 3 - src/Orchard/Mvc/Html/HtmlHelperExtensions.cs | 2 +- 9 files changed, 112 insertions(+), 62 deletions(-) diff --git a/src/Orchard.Tests/ContainerTestBase.cs b/src/Orchard.Tests/ContainerTestBase.cs index 8d4f42f0e..37aee70e8 100644 --- a/src/Orchard.Tests/ContainerTestBase.cs +++ b/src/Orchard.Tests/ContainerTestBase.cs @@ -1,6 +1,5 @@ using Autofac; using NUnit.Framework; -using Orchard.Tests.Utility; namespace Orchard.Tests { public class ContainerTestBase { diff --git a/src/Orchard.Tests/ContentManagement/ContentQueryTests.cs b/src/Orchard.Tests/ContentManagement/ContentQueryTests.cs index 031108e64..a14a5f074 100644 --- a/src/Orchard.Tests/ContentManagement/ContentQueryTests.cs +++ b/src/Orchard.Tests/ContentManagement/ContentQueryTests.cs @@ -8,8 +8,11 @@ using Orchard.Data; using Orchard.ContentManagement; using Orchard.ContentManagement.Handlers; using Orchard.ContentManagement.Records; +using Orchard.DisplayManagement; +using Orchard.DisplayManagement.Descriptors; using Orchard.Tests.ContentManagement.Records; using Orchard.Tests.ContentManagement.Models; +using Orchard.DisplayManagement.Implementation; namespace Orchard.Tests.ContentManagement { [TestFixture] @@ -54,7 +57,10 @@ namespace Orchard.Tests.ContentManagement { builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); - builder.RegisterType().As(); + builder.RegisterType().As(); + builder.RegisterType().As(); + builder.RegisterType().As(); + builder.RegisterType().As(); builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>)); diff --git a/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs b/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs index b99acd7d0..2cab092ed 100644 --- a/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs +++ b/src/Orchard.Tests/ContentManagement/DefaultContentManagerTests.cs @@ -7,16 +7,26 @@ using NHibernate; using NUnit.Framework; using Orchard.ContentManagement.MetaData; using Orchard.ContentManagement.MetaData.Builders; +using Orchard.ContentManagement.MetaData.Models; using Orchard.Data; using Orchard.ContentManagement; using Orchard.ContentManagement.Handlers; using Orchard.ContentManagement.Records; using Orchard.Tests.ContentManagement.Records; using Orchard.Tests.ContentManagement.Models; +using Orchard.DisplayManagement.Descriptors; +using Orchard.DisplayManagement.Implementation; +using Orchard.DisplayManagement; +using System.Collections.Generic; namespace Orchard.Tests.ContentManagement { [TestFixture] public class DefaultContentManagerTests { + private const string DefaultAlphaName = "alpha"; + private const string DefaultBetaName = "beta"; + private const string DefaultGammaName = "gamma"; + private const string DefaultDeltaName = "delta"; + private IContainer _container; private IContentManager _manager; private ISessionFactory _sessionFactory; @@ -58,6 +68,9 @@ namespace Orchard.Tests.ContentManagement { builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); + builder.RegisterType().As(); + builder.RegisterType().As(); + builder.RegisterType().As(); builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>)); @@ -82,7 +95,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void AlphaDriverShouldWeldItsPart() { - var foo = _manager.New("alpha"); + var foo = _manager.New(DefaultAlphaName); Assert.That(foo.Is(), Is.True); Assert.That(foo.As(), Is.Not.Null); @@ -92,20 +105,20 @@ namespace Orchard.Tests.ContentManagement { [Test] public void StronglyTypedNewShouldTypeCast() { - var foo = _manager.New("alpha"); + var foo = _manager.New(DefaultAlphaName); Assert.That(foo, Is.Not.Null); Assert.That(foo.GetType(), Is.EqualTo(typeof(Alpha))); } [Test, ExpectedException(typeof(InvalidCastException))] public void StronglyTypedNewShouldThrowCastExceptionIfNull() { - _manager.New("alpha"); + _manager.New(DefaultAlphaName); } [Test] public void AlphaIsFlavoredAndStyledAndBetaIsFlavoredOnly() { - var alpha = _manager.New("alpha"); - var beta = _manager.New("beta"); + var alpha = _manager.New(DefaultAlphaName); + var beta = _manager.New(DefaultBetaName); Assert.That(alpha.Is(), Is.True); Assert.That(alpha.Is(), Is.True); @@ -115,10 +128,10 @@ namespace Orchard.Tests.ContentManagement { [Test] public void GetByIdShouldDetermineTypeAndLoadParts() { - var modelRecord = CreateModelRecord("alpha"); + var modelRecord = CreateModelRecord(DefaultAlphaName); var contentItem = _manager.Get(modelRecord.Id); - Assert.That(contentItem.ContentType, Is.EqualTo("alpha")); + Assert.That(contentItem.ContentType, Is.EqualTo(DefaultAlphaName)); Assert.That(contentItem.Id, Is.EqualTo(modelRecord.Id)); } @@ -126,9 +139,9 @@ namespace Orchard.Tests.ContentManagement { [Test] public void ModelPartWithRecordShouldCallRepositoryToPopulate() { - CreateModelRecord("gamma"); - CreateModelRecord("gamma"); - var modelRecord = CreateModelRecord("gamma"); + CreateModelRecord(DefaultGammaName); + CreateModelRecord(DefaultGammaName); + var modelRecord = CreateModelRecord(DefaultGammaName); var model = _manager.Get(modelRecord.Id); @@ -145,7 +158,7 @@ namespace Orchard.Tests.ContentManagement { // re-fetch from database model = _manager.Get(modelRecord.Id); - Assert.That(model.ContentType, Is.EqualTo("gamma")); + Assert.That(model.ContentType, Is.EqualTo(DefaultGammaName)); Assert.That(model.Id, Is.EqualTo(modelRecord.Id)); Assert.That(model.Is(), Is.True); Assert.That(model.As().Record, Is.Not.Null); @@ -155,24 +168,48 @@ namespace Orchard.Tests.ContentManagement { [Test] public void CreateShouldMakeModelAndContentTypeRecords() { - var beta = _manager.New("beta"); + var beta = _manager.New(DefaultBetaName); _manager.Create(beta); var modelRecord = _container.Resolve>().Get(beta.Id); Assert.That(modelRecord, Is.Not.Null); - Assert.That(modelRecord.ContentType.Name, Is.EqualTo("beta")); + Assert.That(modelRecord.ContentType.Name, Is.EqualTo(DefaultBetaName)); } + /// + /// Tests that the GetContentTypeDefinitions returns only the registered types. + /// [Test] public void GetContentTypesShouldReturnAllTypes() { - var types = _manager.GetContentTypeDefinitions(); - Assert.That(types.Count(), Is.EqualTo(4)); - Assert.That(types, Has.Some.With.Property("Name").EqualTo("alpha")); - Assert.That(types, Has.Some.With.Property("Name").EqualTo("beta")); - Assert.That(types, Has.Some.With.Property("Name").EqualTo("gamma")); - Assert.That(types, Has.Some.With.Property("Name").EqualTo("delta")); - } + // Register the types and obtain them + ContentTypeDefinition alphaType = new ContentTypeDefinitionBuilder() + .Named(DefaultAlphaName) + .Build(); + ContentTypeDefinition betaType = new ContentTypeDefinitionBuilder() + .Named(DefaultBetaName) + .Build(); + + ContentTypeDefinition gammaType = new ContentTypeDefinitionBuilder() + .Named(DefaultGammaName) + .Build(); + + ContentTypeDefinition deltaType = new ContentTypeDefinitionBuilder() + .Named(DefaultDeltaName) + .Build(); + + _contentDefinitionManager.Setup(contentDefinitionManager => contentDefinitionManager.ListTypeDefinitions()) + .Returns(new List { alphaType, betaType, gammaType, deltaType }); + + var types = _manager.GetContentTypeDefinitions(); + + // Validate that the expected types were obtained + Assert.That(types.Count(), Is.EqualTo(4)); + Assert.That(types, Has.Some.With.Property("Name").EqualTo(DefaultAlphaName)); + Assert.That(types, Has.Some.With.Property("Name").EqualTo(DefaultBetaName)); + Assert.That(types, Has.Some.With.Property("Name").EqualTo(DefaultGammaName)); + Assert.That(types, Has.Some.With.Property("Name").EqualTo(DefaultDeltaName)); + } [Test] public void BigStringsShouldNotBeTruncated() { @@ -211,7 +248,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void InitialVersionShouldBeOne() { - var gamma1 = _manager.Create("gamma"); + var gamma1 = _manager.Create(DefaultGammaName); Assert.That(gamma1.ContentItem.Record, Is.Not.Null); Assert.That(gamma1.ContentItem.VersionRecord, Is.Not.Null); Assert.That(gamma1.ContentItem.Version, Is.EqualTo(1)); @@ -237,7 +274,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void InitialVersionCanBeSpecifiedAndIsPublished() { - var gamma1 = _manager.Create("gamma", VersionOptions.Number(4)); + var gamma1 = _manager.Create(DefaultGammaName, VersionOptions.Number(4)); Assert.That(gamma1.ContentItem.Version, Is.EqualTo(4)); Assert.That(gamma1.ContentItem.VersionRecord.Published, Is.True); @@ -248,7 +285,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void PublishedShouldBeLatestButNotDraft() { - var gamma1 = _manager.Create("gamma", VersionOptions.Published); + var gamma1 = _manager.Create(DefaultGammaName, VersionOptions.Published); var gammaPublished = _manager.Get(gamma1.Id, VersionOptions.Published); var gammaLatest = _manager.Get(gamma1.Id, VersionOptions.Latest); @@ -261,7 +298,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void DraftShouldBeLatestButNotPublished() { - var gamma1 = _manager.Create("gamma", VersionOptions.Draft); + var gamma1 = _manager.Create(DefaultGammaName, VersionOptions.Draft); var gammaPublished = _manager.Get(gamma1.Id, VersionOptions.Published); var gammaLatest = _manager.Get(gamma1.Id, VersionOptions.Latest); @@ -275,7 +312,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void CreateDraftShouldNotCreateExtraDraftCopies() { - var gamma1 = _manager.Create("gamma", VersionOptions.Draft); + var gamma1 = _manager.Create(DefaultGammaName, VersionOptions.Draft); _session.Flush(); _session.Clear(); @@ -307,7 +344,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void DraftRequiredShouldBuildNewVersionIfLatestIsAlreadyPublished() { Trace.WriteLine("gamma1"); - var gamma1 = _manager.Create("gamma", VersionOptions.Published); + var gamma1 = _manager.Create(DefaultGammaName, VersionOptions.Published); Trace.WriteLine("flush"); _session.Flush(); _session.Clear(); @@ -364,7 +401,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void NonVersionedPartsAreBoundToSameRecord() { Trace.WriteLine("gamma1"); - var gamma1 = _manager.Create("gamma", VersionOptions.Published, init => init.Record.Frap = "version one"); + var gamma1 = _manager.Create(DefaultGammaName, VersionOptions.Published, init => init.Record.Frap = "version one"); Trace.WriteLine("gamma2"); var gamma2 = _manager.Get(gamma1.ContentItem.Id, VersionOptions.DraftRequired); Assert.That(gamma1.Record.Frap, Is.EqualTo("version one")); @@ -399,7 +436,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void VersionedPartsShouldBeDifferentRecordsWithClonedData() { - var gamma1 = _manager.Create("gamma", VersionOptions.Published, init => init.Record.Frap = "version one"); + var gamma1 = _manager.Create(DefaultGammaName, VersionOptions.Published, init => init.Record.Frap = "version one"); var epsilon1 = gamma1.As(); epsilon1.Record.Quad = "epsilon one"; @@ -449,7 +486,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void GetAllVersionsShouldReturnHistoryInOrder() { Trace.WriteLine("gamma1"); - var gamma1 = _manager.Create("gamma", VersionOptions.Published); + var gamma1 = _manager.Create(DefaultGammaName, VersionOptions.Published); Flush(); Trace.WriteLine("gamma2"); @@ -497,18 +534,18 @@ namespace Orchard.Tests.ContentManagement { [Test, Ignore("Fix pending")] public void ExistingTypeAndPartDefinitionShouldBeUsed() { var alphaType = new ContentTypeDefinitionBuilder() - .Named("alpha") + .Named(DefaultAlphaName) .WithSetting("x", "1") .WithPart("foo") .WithPart("Flavored", part => part.WithSetting("spin", "clockwise")) .Build(); _contentDefinitionManager - .Setup(x => x.GetTypeDefinition("alpha")) + .Setup(x => x.GetTypeDefinition(DefaultAlphaName)) .Returns(alphaType); - var contentItem = _manager.New("alpha"); - Assert.That(contentItem.ContentType, Is.EqualTo("alpha")); + var contentItem = _manager.New(DefaultAlphaName); + Assert.That(contentItem.ContentType, Is.EqualTo(DefaultAlphaName)); Assert.That(contentItem.TypeDefinition, Is.Not.Null); Assert.That(contentItem.TypeDefinition, Is.SameAs(alphaType)); @@ -520,7 +557,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void FieldsCanBeWeldIntoParts() { - var contentItem = _manager.New("alpha"); + var contentItem = _manager.New(DefaultAlphaName); var part = contentItem.As(); var field = new Phi(); part.Weld(field); @@ -529,7 +566,7 @@ namespace Orchard.Tests.ContentManagement { [Test] public void PartGetReturnsFieldWithName() { - var contentItem = _manager.New("alpha"); + var contentItem = _manager.New(DefaultAlphaName); var part = contentItem.As(); var field = new Phi(); part.Weld(field); diff --git a/src/Orchard.Tests/ContentManagement/Handlers/Coordinators/ContentPartDriverCoordinatorTests.cs b/src/Orchard.Tests/ContentManagement/Handlers/Coordinators/ContentPartDriverCoordinatorTests.cs index db927069d..dd9a75130 100644 --- a/src/Orchard.Tests/ContentManagement/Handlers/Coordinators/ContentPartDriverCoordinatorTests.cs +++ b/src/Orchard.Tests/ContentManagement/Handlers/Coordinators/ContentPartDriverCoordinatorTests.cs @@ -45,7 +45,7 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators { var contentHandler = _container.Resolve(); var contentItem = new ContentItem(); - var context = new BuildDisplayModelContext(contentItem, "", null, null); + var context = new BuildDisplayModelContext(contentItem, "", null, new ShapeHelperFactory(null)); driver1.Verify(x => x.BuildDisplayShape(context), Times.Never()); driver2.Verify(x => x.BuildDisplayShape(context), Times.Never()); diff --git a/src/Orchard.Tests/DisplayManagement/SubsystemTests.cs b/src/Orchard.Tests/DisplayManagement/SubsystemTests.cs index 7a61bdeb2..c9cea13f7 100644 --- a/src/Orchard.Tests/DisplayManagement/SubsystemTests.cs +++ b/src/Orchard.Tests/DisplayManagement/SubsystemTests.cs @@ -1,8 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Web; +using System.Web; using System.Web.Mvc; using System.Web.Routing; using Autofac; @@ -14,6 +10,7 @@ using Orchard.DisplayManagement.Descriptors.ShapeAttributeStrategy; using Orchard.DisplayManagement.Implementation; using Orchard.DisplayManagement.Shapes; using Orchard.Environment; +using Orchard.Environment.Extensions.Models; using Orchard.Tests.Utility; namespace Orchard.Tests.DisplayManagement { @@ -23,6 +20,24 @@ namespace Orchard.Tests.DisplayManagement { [SetUp] public void Init() { + var testFeature = new Feature + { + Descriptor = new FeatureDescriptor + { + Name = "Testing", + Extension = new ExtensionDescriptor + { + Name = "Testing", + ExtensionType = "Module", + } + } + }; + + var workContext = new DefaultDisplayManagerTests.TestWorkContext + { + CurrentTheme = new DefaultDisplayManagerTests.Theme { ThemeName = "Hello" } + }; + var builder = new ContainerBuilder(); builder.RegisterModule(new ShapeAttributeBindingModule()); builder.RegisterType().As(); @@ -31,9 +46,11 @@ namespace Orchard.Tests.DisplayManagement { builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); - builder.RegisterType(); + builder.RegisterInstance(new DefaultDisplayManagerTests.TestWorkContextAccessor(workContext)).As(); + builder.RegisterInstance(new SimpleShapes()).WithMetadata("Feature", testFeature); builder.RegisterInstance(new RouteCollection()); builder.RegisterAutoMocking(MockBehavior.Loose); + _container = builder.Build(); _container.Resolve>() .Setup(x => x.Resolve()) @@ -54,19 +71,16 @@ namespace Orchard.Tests.DisplayManagement { [Test] public void RenderingSomething() { - var viewContext = new ViewContext(); - - dynamic Display = _container.Resolve().CreateHelper(viewContext, null); + dynamic displayHelperFactory = _container.Resolve().CreateHelper(new ViewContext(), null); + dynamic shapeHelperFactory = _container.Resolve().CreateHelper(); - dynamic New = _container.Resolve().CreateHelper(); + var result1 = displayHelperFactory.Something(); + var result2 = ((DisplayHelper)displayHelperFactory).ShapeExecute((Shape)shapeHelperFactory.Pager()); - var result1 = Display.Something(); - var result2 = ((DisplayHelper)Display).ShapeExecute((Shape)New.Pager()); - - Display(New.Pager()); + displayHelperFactory(shapeHelperFactory.Pager()); Assert.That(result1.ToString(), Is.EqualTo("
")); Assert.That(result2.ToString(), Is.EqualTo("
hello
")); } } -} +} \ No newline at end of file diff --git a/src/Orchard.Tests/Mvc/OrchardControllerFactoryTests.cs b/src/Orchard.Tests/Mvc/OrchardControllerFactoryTests.cs index 405db453f..2673cde1f 100644 --- a/src/Orchard.Tests/Mvc/OrchardControllerFactoryTests.cs +++ b/src/Orchard.Tests/Mvc/OrchardControllerFactoryTests.cs @@ -29,7 +29,6 @@ namespace Orchard.Tests.Mvc { InjectKnownControllerTypes(_controllerFactory, typeof (FooController), typeof (BarController)); } - [Test] public void IContainerProvidersRequestContainerFromRouteDataShouldUseTokenWhenPresent() { var requestContext = GetRequestContext(_containerProvider); diff --git a/src/Orchard/DisplayManagement/Implementation/DefaultDisplayManager.cs b/src/Orchard/DisplayManagement/Implementation/DefaultDisplayManager.cs index 7682978c8..f182cd965 100644 --- a/src/Orchard/DisplayManagement/Implementation/DefaultDisplayManager.cs +++ b/src/Orchard/DisplayManagement/Implementation/DefaultDisplayManager.cs @@ -31,7 +31,6 @@ namespace Orchard.DisplayManagement.Implementation { public Localizer T { get; set; } - public IHtmlString Execute(DisplayContext context) { var shape = _convertAsShapeCallsite.Target(_convertAsShapeCallsite, context.Value); @@ -47,8 +46,7 @@ namespace Orchard.DisplayManagement.Implementation { var workContext = _workContextAccessor.GetContext(context.ViewContext); var shapeTable = _shapeTableManager.GetShapeTable(workContext.CurrentTheme.ThemeName); - //preproc loop / event (alter shape, swapping type) - + // preproc loop / event (alter shape, swapping type) ShapeDescriptor shapeDescriptor; ShapeBinding shapeBinding; @@ -103,7 +101,7 @@ namespace Orchard.DisplayManagement.Implementation { static IHtmlString Process(ShapeDescriptor shapeDescriptor, ShapeBinding shapeBinding, IShape shape, DisplayContext context) { if (shapeDescriptor == null || shapeBinding == null || shapeBinding.Binding == null) { - //todo: create result from all child shapes + // todo: create result from all child shapes return shape.Metadata.ChildContent ?? new HtmlString(""); } return CoerceHtmlString(shapeBinding.Binding(context)); diff --git a/src/Orchard/Environment/DefaultWorkContextAccessor.cs b/src/Orchard/Environment/DefaultWorkContextAccessor.cs index 8f8391ffe..767444806 100644 --- a/src/Orchard/Environment/DefaultWorkContextAccessor.cs +++ b/src/Orchard/Environment/DefaultWorkContextAccessor.cs @@ -25,8 +25,6 @@ namespace Orchard.Environment { _lifetimeScope = lifetimeScope; } - - public WorkContext GetContext(HttpContextBase httpContext) { return httpContext.Items[_workContextKey] as WorkContext; } @@ -56,7 +54,6 @@ namespace Orchard.Environment { _workContextKey); } - public IWorkContextScope CreateWorkContextScope() { var httpContext = _httpContextAccessor.Current(); if (httpContext != null) diff --git a/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs b/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs index b609a7809..8af130861 100644 --- a/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs +++ b/src/Orchard/Mvc/Html/HtmlHelperExtensions.cs @@ -354,7 +354,7 @@ namespace Orchard.Mvc.Html { try { return htmlHelper.AntiForgeryToken(siteSalt); } - catch(System.Web.Mvc.HttpAntiForgeryException e) { + catch(System.Web.Mvc.HttpAntiForgeryException) { // Work-around an issue in MVC 2: If the browser sends a cookie that is not // coming from this server (this can happen if the user didn't close their browser // while the application server configuration changed), clear it up From 89319d30f1d083a82ca70db92ddd72baf165a4db Mon Sep 17 00:00:00 2001 From: "rpaquay@microsoft.com" Date: Fri, 17 Sep 2010 12:17:07 -0700 Subject: [PATCH 2/2] Fix build break: Remove deleted files from csproj file --HG-- branch : dev --- src/Orchard.Web/Orchard.Web.csproj | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/src/Orchard.Web/Orchard.Web.csproj b/src/Orchard.Web/Orchard.Web.csproj index 9171d6ca1..ea9afadc4 100644 --- a/src/Orchard.Web/Orchard.Web.csproj +++ b/src/Orchard.Web/Orchard.Web.csproj @@ -101,9 +101,6 @@ - - - @@ -144,9 +141,6 @@ - - - @@ -206,20 +200,10 @@ - - - - - - - - - -