public void CreateControllerCreatesAndReturnsANewInstanceEachRequest() { var factory = new MefControllerFactory { Container = Container }; Assert.AreNotSame(factory.CreateController(null, "EditorController"), factory.CreateController(null, "EditorController")); }
public void CreateControllerReturnsNullWhenNotAController() { var instance = new MefControllerFactory { Container = Container }.CreateController(null, "IDatabaseFactory"); Assert.IsNull(instance); }
public void CreateControllerReturnsNullWhenNoInstanceExists() { var instance = new MefControllerFactory { Container = Container }.CreateController(null, "NonexistentController"); Assert.IsNull(instance); }
public void CreateControllerCreatesAndReturnsAnInstanceOfTheRequestedController() { var instance = new MefControllerFactory { Container = Container }.CreateController(null, "EditorController"); Assert.IsNotNull(instance); Assert.IsInstanceOfType(instance, typeof(EditorController)); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); var catalog = new AggregateCatalog(); catalog.Catalogs.Add(new AssemblyCatalog(Assembly.GetExecutingAssembly())); CompositionContainer container = MEFLoader.Init(catalog.Catalogs); ObjectBase.Container = container; IControllerFactory mefControllerFactory = new MefControllerFactory(container); ControllerBuilder.Current.SetControllerFactory(mefControllerFactory); }