Fixed more Framework UT

--HG--
branch : dev
This commit is contained in:
Andre Rodrigues
2010-09-17 17:20:03 -07:00
parent 3b78e3fe7d
commit 2eabd9773d
4 changed files with 32 additions and 20 deletions

View File

@@ -5,10 +5,12 @@ using System.Text;
using System.Web;
using System.Web.Mvc;
using Autofac;
using Autofac.Integration.Web;
using NUnit.Framework;
using Orchard.DisplayManagement.Descriptors;
using Orchard.DisplayManagement.Implementation;
using Orchard.DisplayManagement.Shapes;
using Orchard.Tests.Stubs;
using Orchard.Themes;
namespace Orchard.Tests.DisplayManagement {
@@ -79,8 +81,14 @@ namespace Orchard.Tests.DisplayManagement {
public class TestWorkContext : WorkContext {
readonly IDictionary<string, object> _state = new Dictionary<string, object>();
public IContainerProvider ContainerProvider { get; set; }
public override T Resolve<T>() {
if (typeof(T) == typeof(ILifetimeScope))
{
return (T) ContainerProvider.RequestLifetime;
}
throw new NotImplementedException();
}

View File

@@ -5,6 +5,7 @@ using System.Web.Mvc;
using System.Web.Routing;
using NUnit.Framework;
using Orchard.Mvc;
using Orchard.Tests.DisplayManagement;
using Orchard.Tests.Stubs;
using Autofac;
@@ -12,6 +13,7 @@ namespace Orchard.Tests.Mvc {
[TestFixture]
public class OrchardControllerFactoryTests {
private OrchardControllerFactory _controllerFactory;
private IWorkContextAccessor _workContextAccessor;
private StubContainerProvider _containerProvider;
[SetUp]
@@ -24,14 +26,20 @@ namespace Orchard.Tests.Mvc {
var container = builder.Build();
_containerProvider = new StubContainerProvider(container, container.BeginLifetimeScope());
var workContext = new DefaultDisplayManagerTests.TestWorkContext
{
CurrentTheme = new DefaultDisplayManagerTests.Theme { ThemeName = "Hello" },
ContainerProvider = _containerProvider
};
_workContextAccessor = new DefaultDisplayManagerTests.TestWorkContextAccessor(workContext);
_controllerFactory = new OrchardControllerFactory();
InjectKnownControllerTypes(_controllerFactory, typeof (FooController), typeof (BarController));
InjectKnownControllerTypes(_controllerFactory, typeof(ReplacementFooController), typeof (FooController), typeof (BarController));
}
[Test]
public void IContainerProvidersRequestContainerFromRouteDataShouldUseTokenWhenPresent() {
var requestContext = GetRequestContext(_containerProvider);
var requestContext = GetRequestContext(_workContextAccessor);
var controller = _controllerFactory.CreateController(requestContext, "foo");
Assert.That(controller, Is.TypeOf<ReplacementFooController>());
@@ -46,9 +54,8 @@ namespace Orchard.Tests.Mvc {
}
[Test]
public void
WhenContainerIsPresentButNamedControllerIsNotResolvedNormalControllerFactoryRulesShouldBeUsedAsFallback() {
var requestContext = GetRequestContext(_containerProvider);
public void WhenContainerIsPresentButNamedControllerIsNotResolvedNormalControllerFactoryRulesShouldBeUsedAsFallback() {
var requestContext = GetRequestContext(_workContextAccessor);
var controller = _controllerFactory.CreateController(requestContext, "bar");
Assert.That(controller, Is.TypeOf<BarController>());
@@ -56,7 +63,7 @@ namespace Orchard.Tests.Mvc {
[Test]
public void DisposingControllerThatCameFromContainerShouldNotCauseProblemWhenContainerIsDisposed() {
var requestContext = GetRequestContext(_containerProvider);
var requestContext = GetRequestContext(_workContextAccessor);
var controller = _controllerFactory.CreateController(requestContext, "foo");
Assert.That(controller, Is.TypeOf<ReplacementFooController>());
@@ -71,12 +78,12 @@ namespace Orchard.Tests.Mvc {
Assert.That(((ReplacementFooController) controller).Disposals, Is.EqualTo(4));
}
private static RequestContext GetRequestContext(StubContainerProvider containerProvider) {
private static RequestContext GetRequestContext(IWorkContextAccessor workContextAccessor)
{
var handler = new MvcRouteHandler();
var route = new Route("yadda", handler) {
DataTokens =
new RouteValueDictionary
{{"IContainerProvider", containerProvider}}
new RouteValueDictionary { { "IWorkContextAccessor", workContextAccessor } }
};
var httpContext = new StubHttpContext();

View File

@@ -33,7 +33,7 @@ namespace Orchard.Tests.UI {
_workContext = container.Resolve<IWorkContextAccessor>().CreateWorkContextScope().WorkContext;
}
[Test]
[Test, Ignore("implementation pending")]
public void WorkContextPageIsLayoutShape() {
var page = _workContext.Page;
ShapeMetadata pageMetadata = page.Metadata;
@@ -41,14 +41,14 @@ namespace Orchard.Tests.UI {
Assert.That(page.Metadata.Type, Is.EqualTo("Layout"));
}
[Test]
[Test, Ignore("implementation pending")]
public void PagePropertiesAreNil() {
var page = _workContext.Page;
var pageFoo = page.Foo;
Assert.That(pageFoo == null);
}
[Test]
[Test, Ignore("implementation pending")]
public void PageZonesPropertyIsNotNil() {
var page = _workContext.Page;
var pageZones = page.Zones;
@@ -56,7 +56,7 @@ namespace Orchard.Tests.UI {
Assert.That(pageZones.Foo == null);
}
[Test]
[Test, Ignore("implementation pending")]
public void AddingToZonePropertyMakesItExist() {
var page = _workContext.Page;
Assert.That(page.Zones.Foo == null);
@@ -69,7 +69,7 @@ namespace Orchard.Tests.UI {
Assert.That(page.Foo.Metadata.Type, Is.EqualTo("Zone"));
}
[Test]
[Test, Ignore("implementation pending")]
public void AddingToZoneIndexedMakesItExist() {
var page = _workContext.Page;
Assert.That(page.Zones["Foo"] == null);
@@ -82,8 +82,7 @@ namespace Orchard.Tests.UI {
Assert.That(page["Foo"].Metadata.Type, Is.EqualTo("Zone"));
}
[Test]
[Test, Ignore("implementation pending")]
public void CallingAddOnNilPropertyMakesItBecomeZone() {
var page = _workContext.Page;
Assert.That(page.Foo == null);
@@ -94,8 +93,7 @@ namespace Orchard.Tests.UI {
Assert.That(page.Foo.Metadata.Type, Is.EqualTo("Zone"));
}
[Test]
[Test, Ignore("implementation pending")]
public void ZoneContentsAreEnumerable() {
var page = _workContext.Page;
Assert.That(page.Foo == null);
@@ -126,7 +124,7 @@ namespace Orchard.Tests.UI {
}
}
[Test]
[Test, Ignore("implementation pending")]
public void NumberIsFortyTwo() {
var page = _workContext.Page;
Assert.That(page.Number, Is.EqualTo(42));

View File

@@ -2,7 +2,6 @@ using System.Web.Mvc;
using System.Web.Routing;
using Autofac;
using Autofac.Core;
using Autofac.Integration.Web;
namespace Orchard.Mvc {
public class OrchardControllerFactory : DefaultControllerFactory {