mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2025-04-05 21:01:35 +08:00
85 lines
3.3 KiB
C#
85 lines
3.3 KiB
C#
using System.Web;
|
|
using System.Web.Mvc;
|
|
using System.Web.Routing;
|
|
using Autofac;
|
|
using Moq;
|
|
using NUnit.Framework;
|
|
using Orchard.DisplayManagement;
|
|
using Orchard.DisplayManagement.Descriptors;
|
|
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 {
|
|
[TestFixture]
|
|
public class SubsystemTests {
|
|
private IContainer _container;
|
|
|
|
[SetUp]
|
|
public void Init() {
|
|
var testFeature = new Feature
|
|
{
|
|
Descriptor = new FeatureDescriptor
|
|
{
|
|
Id = "Testing",
|
|
Extension = new ExtensionDescriptor
|
|
{
|
|
Id = "Testing",
|
|
ExtensionType = "Module",
|
|
}
|
|
}
|
|
};
|
|
|
|
var workContext = new DefaultDisplayManagerTests.TestWorkContext
|
|
{
|
|
CurrentTheme = new ExtensionDescriptor { Id = "Hello" }
|
|
};
|
|
|
|
var builder = new ContainerBuilder();
|
|
builder.RegisterModule(new ShapeAttributeBindingModule());
|
|
builder.RegisterType<ShapeAttributeBindingStrategy>().As<IShapeTableProvider>();
|
|
builder.RegisterType<DefaultDisplayManager>().As<IDisplayManager>();
|
|
builder.RegisterType<DefaultShapeFactory>().As<IShapeFactory>();
|
|
builder.RegisterType<DisplayHelperFactory>().As<IDisplayHelperFactory>();
|
|
builder.RegisterType<DefaultShapeTableManager>().As<IShapeTableManager>();
|
|
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>())
|
|
.Returns(_container);
|
|
}
|
|
|
|
public class SimpleShapes {
|
|
[Shape]
|
|
public IHtmlString Something() {
|
|
return new HtmlString("<br/>");
|
|
}
|
|
|
|
[Shape]
|
|
public IHtmlString Pager() {
|
|
return new HtmlString("<div>hello</div>");
|
|
}
|
|
}
|
|
|
|
[Test]
|
|
public void RenderingSomething() {
|
|
dynamic displayHelperFactory = _container.Resolve<IDisplayHelperFactory>().CreateHelper(new ViewContext(), null);
|
|
dynamic shapeHelperFactory = _container.Resolve<IShapeFactory>();
|
|
|
|
var result1 = displayHelperFactory.Something();
|
|
var result2 = ((DisplayHelper)displayHelperFactory).ShapeExecute((Shape)shapeHelperFactory.Pager());
|
|
|
|
displayHelperFactory(shapeHelperFactory.Pager());
|
|
|
|
Assert.That(result1.ToString(), Is.EqualTo("<br/>"));
|
|
Assert.That(result2.ToString(), Is.EqualTo("<div>hello</div>"));
|
|
}
|
|
}
|
|
} |