Fixing some framework UT

--HG--
branch : dev
This commit is contained in:
Andre Rodrigues
2010-09-17 10:43:36 -07:00
parent 67427b20c2
commit be3f092b54
9 changed files with 112 additions and 62 deletions

View File

@@ -1,6 +1,5 @@
using Autofac;
using NUnit.Framework;
using Orchard.Tests.Utility;
namespace Orchard.Tests {
public class ContainerTestBase {

View File

@@ -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<DeltaHandler>().As<IContentHandler>();
builder.RegisterType<EpsilonHandler>().As<IContentHandler>();
builder.RegisterType<FlavoredHandler>().As<IContentHandler>();
builder.RegisterType<StyledHandler>().As<IContentHandler>();
builder.RegisterType<StyledHandler>().As<IContentHandler>();
builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>();
builder.RegisterType<DefaultShapeFactory>().As<IShapeFactory>();
builder.RegisterType<ShapeHelperFactory>().As<IShapeHelperFactory>();
builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>));

View File

@@ -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<EpsilonHandler>().As<IContentHandler>();
builder.RegisterType<FlavoredHandler>().As<IContentHandler>();
builder.RegisterType<StyledHandler>().As<IContentHandler>();
builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>();
builder.RegisterType<DefaultShapeFactory>().As<IShapeFactory>();
builder.RegisterType<ShapeHelperFactory>().As<IShapeHelperFactory>();
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<Alpha>(), Is.True);
Assert.That(foo.As<Alpha>(), Is.Not.Null);
@@ -92,20 +105,20 @@ namespace Orchard.Tests.ContentManagement {
[Test]
public void StronglyTypedNewShouldTypeCast() {
var foo = _manager.New<Alpha>("alpha");
var foo = _manager.New<Alpha>(DefaultAlphaName);
Assert.That(foo, Is.Not.Null);
Assert.That(foo.GetType(), Is.EqualTo(typeof(Alpha)));
}
[Test, ExpectedException(typeof(InvalidCastException))]
public void StronglyTypedNewShouldThrowCastExceptionIfNull() {
_manager.New<Beta>("alpha");
_manager.New<Beta>(DefaultAlphaName);
}
[Test]
public void AlphaIsFlavoredAndStyledAndBetaIsFlavoredOnly() {
var alpha = _manager.New<Alpha>("alpha");
var beta = _manager.New<Beta>("beta");
var alpha = _manager.New<Alpha>(DefaultAlphaName);
var beta = _manager.New<Beta>(DefaultBetaName);
Assert.That(alpha.Is<Flavored>(), Is.True);
Assert.That(alpha.Is<Styled>(), 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<Gamma>(), Is.True);
Assert.That(model.As<Gamma>().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<IRepository<ContentItemRecord>>().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));
}
/// <summary>
/// Tests that the GetContentTypeDefinitions returns only the registered types.
/// </summary>
[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<ContentTypeDefinition> { 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>("gamma");
var gamma1 = _manager.Create<Gamma>(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>("gamma", VersionOptions.Number(4));
var gamma1 = _manager.Create<Gamma>(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>("gamma", VersionOptions.Published, init => init.Record.Frap = "version one");
var gamma1 = _manager.Create<Gamma>(DefaultGammaName, VersionOptions.Published, init => init.Record.Frap = "version one");
Trace.WriteLine("gamma2");
var gamma2 = _manager.Get<Gamma>(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>("gamma", VersionOptions.Published, init => init.Record.Frap = "version one");
var gamma1 = _manager.Create<Gamma>(DefaultGammaName, VersionOptions.Published, init => init.Record.Frap = "version one");
var epsilon1 = gamma1.As<Epsilon>();
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<Flavored>();
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<Flavored>();
var field = new Phi();
part.Weld(field);

View File

@@ -45,7 +45,7 @@ namespace Orchard.Tests.ContentManagement.Handlers.Coordinators {
var contentHandler = _container.Resolve<IContentHandler>();
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());

View File

@@ -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<ShapeAttributeBindingStrategy>().As<IShapeTableProvider>();
@@ -31,9 +46,11 @@ namespace Orchard.Tests.DisplayManagement {
builder.RegisterType<DisplayHelperFactory>().As<IDisplayHelperFactory>();
builder.RegisterType<ShapeHelperFactory>().As<IShapeHelperFactory>();
builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>();
builder.RegisterType<SimpleShapes>();
builder.RegisterInstance(new DefaultDisplayManagerTests.TestWorkContextAccessor(workContext)).As<IWorkContextAccessor>();
builder.RegisterInstance(new SimpleShapes()).WithMetadata("Feature", testFeature);
builder.RegisterInstance(new RouteCollection());
builder.RegisterAutoMocking(MockBehavior.Loose);
_container = builder.Build();
_container.Resolve<Mock<IOrchardHostContainer>>()
.Setup(x => x.Resolve<IComponentContext>())
@@ -54,19 +71,16 @@ namespace Orchard.Tests.DisplayManagement {
[Test]
public void RenderingSomething() {
var viewContext = new ViewContext();
dynamic Display = _container.Resolve<IDisplayHelperFactory>().CreateHelper(viewContext, null);
dynamic displayHelperFactory = _container.Resolve<IDisplayHelperFactory>().CreateHelper(new ViewContext(), null);
dynamic shapeHelperFactory = _container.Resolve<IShapeHelperFactory>().CreateHelper();
dynamic New = _container.Resolve<IShapeHelperFactory>().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("<br/>"));
Assert.That(result2.ToString(), Is.EqualTo("<div>hello</div>"));
}
}
}
}

View File

@@ -29,7 +29,6 @@ namespace Orchard.Tests.Mvc {
InjectKnownControllerTypes(_controllerFactory, typeof (FooController), typeof (BarController));
}
[Test]
public void IContainerProvidersRequestContainerFromRouteDataShouldUseTokenWhenPresent() {
var requestContext = GetRequestContext(_containerProvider);

View File

@@ -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));

View File

@@ -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)

View File

@@ -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