示例#1
0
        private void configureServices(ServiceRegistry services)
        {
            services.ReplaceService <ITemplateRegistry <IRazorTemplate> >(_templateRegistry);
            services.SetServiceIfNone <IRazorTemplateGenerator, RazorTemplateGenerator>();
            services.SetServiceIfNone <ITemplateCompiler, TemplateCompiler>();
            services.SetServiceIfNone <ITemplateFactory, TemplateFactoryCache>();
            services.ReplaceService <IParsingRegistrations <IRazorTemplate> >(_parsings);
            services.SetServiceIfNone <ITemplateDirectoryProvider <IRazorTemplate>, TemplateDirectoryProvider <IRazorTemplate> >();
            services.SetServiceIfNone <ISharedPathBuilder>(new SharedPathBuilder());
            services.SetServiceIfNone <IPartialRenderer, PartialRenderer>();

            var graph = new SharingGraph();

            services.SetServiceIfNone(graph);
            services.SetServiceIfNone <ISharingGraph>(graph);

            services.FillType <ISharedTemplateLocator <IRazorTemplate>, SharedTemplateLocator <IRazorTemplate> >();
            services.FillType <ISharingAttacher <IRazorTemplate>, MasterAttacher <IRazorTemplate> >();
            services.FillType <ITemplateSelector <IRazorTemplate>, RazorTemplateSelector>();
            services.FillType <Bottles.IActivator, SharingAttacherActivator <IRazorTemplate> >();
            services.FillType <IRenderStrategy, AjaxRenderStrategy>();
            services.FillType <IRenderStrategy, DefaultRenderStrategy>();

            services.SetServiceIfNone <IViewModifierService <IFubuRazorView>, ViewModifierService <IFubuRazorView> >();

            services.FillType <IViewModifier <IFubuRazorView>, FubuPartialRendering>();
        }
示例#2
0
        private void configureServices(IServiceRegistry services)
        {
            var configuration = new TemplateServiceConfiguration {
                BaseTemplateType = typeof(FubuRazorView)
            };

            services.ReplaceService <ITemplateRegistry <IRazorTemplate> >(_templateRegistry);
            services.ReplaceService <IFubuTemplateService>(new FubuTemplateService(_templateRegistry, new TemplateService(configuration), new FileSystem()));
            services.ReplaceService <ITemplateServiceConfiguration>(configuration);
            services.ReplaceService <IParsingRegistrations <IRazorTemplate> >(_parsings);
            services.SetServiceIfNone <ITemplateDirectoryProvider <IRazorTemplate>, TemplateDirectoryProvider <IRazorTemplate> >();
            services.SetServiceIfNone <ISharedPathBuilder>(new SharedPathBuilder());

            var graph = new SharingGraph();

            services.SetServiceIfNone(graph);
            services.SetServiceIfNone <ISharingGraph>(graph);


            services.FillType <IActivator, RazorActivator>();

            services.FillType <ISharedTemplateLocator <IRazorTemplate>, SharedTemplateLocator <IRazorTemplate> >();
            services.FillType <ISharingAttacher <IRazorTemplate>, MasterAttacher <IRazorTemplate> >();
            services.FillType <ITemplateSelector <IRazorTemplate>, RazorTemplateSelector>();
            services.FillType <IActivator, SharingAttacherActivator <IRazorTemplate> >();
            services.FillType <IRenderStrategy, AjaxRenderStrategy>();
            services.FillType <IRenderStrategy, DefaultRenderStrategy>();

            services.SetServiceIfNone <IViewModifierService <IFubuRazorView>, ViewModifierService <IFubuRazorView> >();

            services.FillType <IViewModifier <IFubuRazorView>, LayoutActivation>();
            services.FillType <IViewModifier <IFubuRazorView>, PartialRendering>();
            services.FillType <IViewModifier <IFubuRazorView>, FubuPartialRendering>();
        }
        public ExtendedTester()
        {
            var testRoot = Path.Combine(Directory.GetCurrentDirectory(), "Templates");

            var pathApp      = Path.Combine(testRoot, "App");
            var pathPackage1 = Path.Combine(pathApp, "fubu-packages", "Package1", "WebContent");
            var pathPackage2 = Path.Combine(testRoot, "Package2");

            var allTemplates = new TemplateRegistry <IRazorTemplate>();

            var razorSettings = new RazorEngineSettings();
            var razorSet      = razorSettings.Search;

            new ContentFolder(TemplateConstants.HostOrigin, pathApp).FindFiles(razorSet)
            .Union(new ContentFolder("Package1", pathPackage1).FindFiles(razorSet)
                   .Union(new ContentFolder("Package2", pathPackage2).FindFiles(razorSet)))
            .Each(x =>
            {
                if (x.Provenance == TemplateConstants.HostOrigin && x.Path.StartsWith(pathPackage1))
                {
                    return;
                }
                allTemplates.Register(new Template(x.Path, x.ProvenancePath, x.Provenance));
            });

            var viewPathPolicy = new ViewPathPolicy <IRazorTemplate>();

            allTemplates.Each(x =>
            {
                viewPathPolicy.Apply(x);
                x.Descriptor = new ViewDescriptor <IRazorTemplate>(x);
            });

            var commonNamespaces = new CommonViewNamespaces();

            commonNamespaces.AddForType <string>();
            _templateFactory = new TemplateFactoryCache(commonNamespaces, razorSettings, new TemplateCompiler(), new RazorTemplateGenerator());

            _pak1TemplateRegistry = new TemplateRegistry <IRazorTemplate>(allTemplates.ByOrigin(Package1));
            _pak2TemplateRegistry = new TemplateRegistry <IRazorTemplate>(allTemplates.ByOrigin(Package2));
            _appTemplateRegistry  = new TemplateRegistry <IRazorTemplate>(allTemplates.FromHost());

            _serviceLocator = MockRepository.GenerateMock <IServiceLocator>();

            var sharingGraph = new SharingGraph();

            sharingGraph.Dependency("Package1", ContentFolder.Application);
            sharingGraph.Dependency("Package2", ContentFolder.Application);
            var templateDirectory = new TemplateDirectoryProvider <IRazorTemplate>(new SharedPathBuilder(), allTemplates,
                                                                                   sharingGraph);

            _sharedTemplateLocator = new SharedTemplateLocator <IRazorTemplate>(templateDirectory, allTemplates,
                                                                                new RazorTemplateSelector());

            var partialRenderer = new PartialRenderer(_sharedTemplateLocator, _templateFactory);

            _serviceLocator.Expect(x => x.GetInstance(Arg.Is(typeof(IPartialRenderer)))).Return(partialRenderer);
            _serviceLocator.Expect(x => x.GetInstance(typeof(IOutputWriter))).Return(MockRepository.GenerateMock <IOutputWriter>());
        }
示例#4
0
 public void beforeEach()
 {
     _policies = new List <ISharingPolicy> {
         MockRepository.GenerateMock <ISharingPolicy>()
     };
     _graph       = new SharingGraph();
     _packageLog  = MockRepository.GenerateMock <IPackageLog>();
     _sharingLogs = new SharingLogsCache();
     _activator   = new SharingPolicyActivator(_graph, _sharingLogs, _policies);
 }
        public void beforeEach()
        {
            Directory.GetFiles(".", "*view.config").Each(File.Delete);

            _graph       = new SharingGraph();
            _fileSystem  = new FileSystem();
            _packageLog  = new PackageLog();
            _sharingLogs = new SharingLogsCache();

            _activator = new SharingConfigActivator(_graph, _sharingLogs, new FubuApplicationFiles());
        }
示例#6
0
        private void configureServices(IServiceRegistry services)
        {
            services.ReplaceService <ISparkTemplateRegistry>(_templateRegistry);
            services.ReplaceService <ITemplateRegistry <ITemplate> >(_templateRegistry);
            services.ReplaceService <IParsingRegistrations <ITemplate> >(_parsings);

            var graph = new SharingGraph();

            services.SetServiceIfNone(graph);
            services.SetServiceIfNone <ISharingGraph>(graph);

            services.SetServiceIfNone <ISparkViewEngine>(new SparkViewEngine());
            services.SetServiceIfNone <ICacheService>(new DefaultCacheService(HttpRuntime.Cache));

            services.SetServiceIfNone(new SharingLogsCache());

            services.FillType <IActivator, SharingConfigActivator>();
            services.FillType <IActivator, SharingPolicyActivator>();
            services.FillType <IActivator, SharingAttacherActivator <ITemplate> >();
            services.FillType <IActivator, SparkActivator>();
            services.FillType <IActivator, SparkPrecompiler>();

            services.FillType <ISharingAttacher <ITemplate>, MasterAttacher <ITemplate> >();
            services.FillType <ISharingAttacher <ITemplate>, BindingsAttacher>();

            services.SetServiceIfNone <ISharedPathBuilder>(new SharedPathBuilder());
            services.SetServiceIfNone <ITemplateDirectoryProvider <ITemplate>, TemplateDirectoryProvider <ITemplate> >();
            services.SetServiceIfNone <ISharedTemplateLocator, SharedTemplateLocator>();
            services.FillType <ISharedTemplateLocator <ITemplate>, SharedTemplateLocator>();

            services.FillType <IRenderStrategy, NestedRenderStrategy>();
            services.FillType <IRenderStrategy, AjaxRenderStrategy>();
            services.FillType <IRenderStrategy, DefaultRenderStrategy>();

            services.FillType <ITemplateSelector <ITemplate>, SparkTemplateSelector>();

            services.SetServiceIfNone <IViewEntryProviderCache, ViewEntryProviderCache>();
            services.SetServiceIfNone <IViewModifierService <IFubuSparkView>, ViewModifierService <IFubuSparkView> >();

            services.FillType <IViewModifier <IFubuSparkView>, PageActivation <IFubuSparkView> >();
            services.FillType <IViewModifier <IFubuSparkView>, SiteResourceAttacher>();
            services.FillType <IViewModifier <IFubuSparkView>, ContentActivation>();
            services.FillType <IViewModifier <IFubuSparkView>, OnceTableActivation>();
            services.FillType <IViewModifier <IFubuSparkView>, OuterViewOutputActivator>();
            services.FillType <IViewModifier <IFubuSparkView>, NestedViewOutputActivator>();
            services.FillType <IViewModifier <IFubuSparkView>, ViewContentDisposer>();
            services.FillType <IViewModifier <IFubuSparkView>, NestedOutputActivation>();

            services.SetServiceIfNone <IHtmlEncoder, DefaultHtmlEncoder>();

            services.SetServiceIfNone(new DefaultViewDefinitionPolicy());
            services.SetServiceIfNone <IViewDefinitionResolver, ViewDefinitionResolver>();
        }
        public ExtendedTester()
        {
            var testRoot = Path.Combine(Directory.GetCurrentDirectory(), "Templates");

            var pathApp      = Path.Combine(testRoot, "App");
            var pathPackage1 = Path.Combine(pathApp, "fubu-packages", "Package1", "WebContent");
            var pathPackage2 = Path.Combine(testRoot, "Package2");

            var allTemplates = new TemplateRegistry <IRazorTemplate>();

            var razorSet = new RazorEngineSettings().Search;

            new ContentFolder(TemplateConstants.HostOrigin, pathApp).FindFiles(razorSet)
            .Union(new ContentFolder("Package1", pathPackage1).FindFiles(razorSet)
                   .Union(new ContentFolder("Package2", pathPackage2).FindFiles(razorSet)))
            .Each(x =>
            {
                if (x.Provenance == TemplateConstants.HostOrigin && x.Path.StartsWith(pathPackage1))
                {
                    return;
                }
                allTemplates.Register(new Template(x.Path, x.ProvenancePath, x.Provenance));
            });

            var viewPathPolicy = new ViewPathPolicy <IRazorTemplate>();

            allTemplates.Each(viewPathPolicy.Apply);

            var config = new TemplateServiceConfiguration
            {
                BaseTemplateType = typeof(FubuRazorView)
            };

            _templateService = new FubuTemplateService(allTemplates, new TemplateService(config), new FileSystem());

            _pak1TemplateRegistry = new TemplateRegistry <IRazorTemplate>(allTemplates.ByOrigin(Package1));
            _pak2TemplateRegistry = new TemplateRegistry <IRazorTemplate>(allTemplates.ByOrigin(Package2));
            _appTemplateRegistry  = new TemplateRegistry <IRazorTemplate>(allTemplates.FromHost());

            _serviceLocator = MockRepository.GenerateMock <IServiceLocator>();

            var sharingGraph = new SharingGraph();

            sharingGraph.Dependency("Package1", ContentFolder.Application);
            sharingGraph.Dependency("Package2", ContentFolder.Application);
            var templateDirectory = new TemplateDirectoryProvider <IRazorTemplate>(new SharedPathBuilder(), allTemplates,
                                                                                   sharingGraph);

            _sharedTemplateLocator = new SharedTemplateLocator <IRazorTemplate>(templateDirectory, allTemplates,
                                                                                new RazorTemplateSelector());
        }
        public ExtendedTester()
        {
            var testRoot = Path.Combine(Directory.GetCurrentDirectory(), "Templates");

            var pathApp       = Path.Combine(testRoot, "App");
            var pathPackage1  = Path.Combine(pathApp, "fubu-packages", "Package1", "WebContent");
            var pathPackage2  = Path.Combine(testRoot, "Package2");
            var globalPackage = Path.Combine(testRoot, "Global");

            var templateRegistry = new TemplateRegistry <ITemplate>();
            var sparkSet         = new SparkEngineSettings().Search;

            _sharingGraph = new SharingGraph();
            _sharingGraph.Global("Global");
            _sharingGraph.CompileDependencies("Package1", "Package2");

            new ContentFolder(TemplateConstants.HostOrigin, pathApp).FindFiles(sparkSet)
            .Union(new ContentFolder("Package1", pathPackage1).FindFiles(sparkSet)
                   .Union(new ContentFolder("Package2", pathPackage2).FindFiles(sparkSet)
                          .Union(new ContentFolder("Global", globalPackage).FindFiles(sparkSet))))
            .Each(x =>
            {
                if (x.Provenance == TemplateConstants.HostOrigin && x.Path.StartsWith(pathPackage1))
                {
                    return;
                }
                templateRegistry.Register(new Template(x.Path, x.ProvenancePath, x.Provenance));
            });

            var viewPathPolicy = new ViewPathPolicy <ITemplate>();

            templateRegistry.Each(viewPathPolicy.Apply);

            _viewFolder = new TemplateViewFolder(templateRegistry);
            _templateDirectoryProvider = new TemplateDirectoryProvider <ITemplate>(new SharedPathBuilder(), templateRegistry, _sharingGraph);
            _engine = new SparkViewEngine
            {
                ViewFolder      = _viewFolder,
                BindingProvider = new FubuBindingProvider(new SparkTemplateRegistry(templateRegistry)),
                PartialProvider = new FubuPartialProvider(_templateDirectoryProvider)
            };

            _pak1TemplateRegistry   = new TemplateRegistry <ITemplate>(templateRegistry.ByOrigin(Package1));
            _pak2TemplateRegistry   = new TemplateRegistry <ITemplate>(templateRegistry.ByOrigin(Package2));
            _appTemplateRegistry    = new TemplateRegistry <ITemplate>(templateRegistry.FromHost());
            _globalTemplateRegistry = new TemplateRegistry <ITemplate>(templateRegistry.ByOrigin(Global));
        }
        protected override void beforeEach()
        {
            _root     = AppDomain.CurrentDomain.BaseDirectory;
            _pak1Root = FileSystem.Combine(_root, "Packs", "Pak1");
            _pak2Root = FileSystem.Combine(_root, "Packs", "Pak2");

            _templates = new TemplateRegistry
            {
                new Template(FileSystem.Combine(_root, "Actions", "Home", "home.spark"), _root, FubuSparkConstants.HostOrigin),
                new Template(FileSystem.Combine(_pak1Root, "Actions", "Home", "home.spark"), _pak1Root, "Pak1"),
                new Template(FileSystem.Combine(_pak2Root, "Home", "home.spark"), _pak2Root, "Pak2")
            };

            _graph = new SharingGraph();
            _graph.Dependency("Pak1", "Pak2");
            _graph.Dependency("Pak2", FubuSparkConstants.HostOrigin);
            _graph.Dependency(FubuSparkConstants.HostOrigin, "Pak3");

            Container.Inject <ISharedPathBuilder>(new SharedPathBuilder(new [] { Shared }));
            Container.Inject <ISharingGraph>(_graph);
            Container.Inject <ITemplateRegistry>(_templates);
        }