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 { 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(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); 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()) .Returns(_container); } public class SimpleShapes { [Shape] public IHtmlString Something() { return new HtmlString("
"); } [Shape] public IHtmlString Pager() { return new HtmlString("
hello
"); } } [Test] public void RenderingSomething() { dynamic displayHelperFactory = _container.Resolve().CreateHelper(new ViewContext(), null); dynamic shapeHelperFactory = _container.Resolve().CreateHelper(); var result1 = displayHelperFactory.Something(); var result2 = ((DisplayHelper)displayHelperFactory).ShapeExecute((Shape)shapeHelperFactory.Pager()); displayHelperFactory(shapeHelperFactory.Pager()); Assert.That(result1.ToString(), Is.EqualTo("
")); Assert.That(result2.ToString(), Is.EqualTo("
hello
")); } } }