public void SetUp()
        {
            var placeholder1        = new Placeholder("area 1");
            var placeholder2        = new Placeholder("area 2");
            var widgetSpecification = new WidgetSpecification("widget");

            widgetSpecification.Insert(0, placeholder1);
            widgetSpecification.Insert(1, placeholder2);

            var area   = new Area("area 1");
            var widget = new Widget("widget", new[] { area });

            var buildContext = new BuildData(Enumerable.Empty <IContextItem>());

            var builder = new Builder(RenderingInstructions.BuildForPreview(), w => widgetSpecification, null);

            var instance = widget.Build(builder, new[] { 0 }, buildContext);

            var rendererFactory = MockRepository.GenerateStub <IRendererFactory>();

            this.viewHelper = MockRepository.GenerateStub <IViewHelper>();
            var multiRenderer = new MultiRenderer(rendererFactory);

            KolaConfigurationRegistry.RegisterRenderer(multiRenderer);

            this.result = instance.Render(multiRenderer);
        }
Пример #2
0
        public KolaNancyBootstrapper()
        {
            var plugins = new PluginFinder().FindPlugins().ToArray();

            this.ConfigureNamespaces(plugins);

            KolaConfigurationRegistry.RegisterPlugins(plugins);
        }
Пример #3
0
        public void SetUp()
        {
            var atom1Specification     = MockRepository.GenerateStub <IPluginComponentSpecification <IComponentWithProperties> >();
            var atom2Specification     = MockRepository.GenerateStub <IPluginComponentSpecification <IComponentWithProperties> >();
            var atom3Specification     = MockRepository.GenerateStub <IPluginComponentSpecification <IComponentWithProperties> >();
            var containerSpecification = MockRepository.GenerateStub <IPluginComponentSpecification <IComponentWithProperties> >();

            var renderingInstructions = MockRepository.GenerateStub <IRenderingInstructions>();

            atom1Specification.ViewName     = "Atom1View";
            atom2Specification.ViewName     = "Atom2View";
            atom3Specification.ViewName     = "Atom3View";
            containerSpecification.ViewName = "Container1View";

            var handlerFactory = MockRepository.GenerateStub <IRendererFactory>();

            handlerFactory.Stub(h => h.GetAtomRenderer("atom1")).Return(new DefaultRenderer(atom1Specification));
            handlerFactory.Stub(h => h.GetAtomRenderer("atom2")).Return(new DefaultRenderer(atom2Specification));
            handlerFactory.Stub(h => h.GetAtomRenderer("atom3")).Return(new DefaultRenderer(atom3Specification));
            handlerFactory.Stub(h => h.GetContainerRenderer("container1")).Return(new DefaultRenderer(containerSpecification));

            var renderer = new MultiRenderer(handlerFactory);

            KolaConfigurationRegistry.RegisterRenderer(renderer);

            var page =
                new PageInstance(
                    new ComponentInstance[]
            {
                new AtomInstance(new[] { 0 }, renderingInstructions, "atom1", Enumerable.Empty <PropertyInstance>()),
                new AtomInstance(new[] { 1 }, renderingInstructions, "atom2", Enumerable.Empty <PropertyInstance>()),
                new ContainerInstance(new[] { 2 }, renderingInstructions, "container1", null, new[] { new AtomInstance(new[] { 2, 0 }, renderingInstructions, "atom3", Enumerable.Empty <PropertyInstance>()) })
            }, renderingInstructions);

            var viewFactory = new TestViewFactory(renderer);
            var viewHelper  = new TestViewHelper(viewFactory);


            var renderedPage = renderer.Render(page);

            this.result = renderedPage.ToHtml(viewHelper);
        }
Пример #4
0
        protected override void ConfigureRequestContainer(TinyIoCContainer tinyIoCContainer, NancyContext context)
        {
            tinyIoCContainer.Register(this.GetAccessToken(context), "access_token");

            tinyIoCContainer.Register <ITemplateService, TemplateService>();
            tinyIoCContainer.Register <IRenderingService, RenderingService>();

            var sitemapDomainName = ConfigurationManager.AppSettings["SitemapDomainName"];

            tinyIoCContainer.Register <ISitemapService>((c, o) => new SitemapService(c.Resolve <IContentRepository>(), c.Resolve <IPathInstanceBuilder>(), sitemapDomainName));

            tinyIoCContainer.Register <IContentRepository, ContentRepository>();

            tinyIoCContainer.Register <IContentFinder, ContentFinder>();

            tinyIoCContainer.Register <IPathInstanceBuilder, PathInstanceBuilder>();
            tinyIoCContainer.Register <IDynamicSourceProvider, DynamicSourceProvider>();
            tinyIoCContainer.Register <IPluginContextProvider, PluginContextProvider>();

            var sourceTypes = KolaConfigurationRegistry.Plugins.SelectMany(plugin => plugin.SourceTypes).ToArray();

            tinyIoCContainer.Register((c, o) => sourceTypes.Select(c.Resolve).Cast <IDynamicSource>());

            var contentProviderTypes = KolaConfigurationRegistry.Plugins.SelectMany(plugin => plugin.ContextProviderTypes).ToArray();

            tinyIoCContainer.Register((c, o) => contentProviderTypes.Select(c.Resolve).Cast <IContextProvider>());

            var container = new TinyIoCAdapter(tinyIoCContainer);

            var componentSpecifications = KolaConfigurationRegistry.Plugins.SelectMany(plugin => plugin.ComponentTypeSpecifications);

            KolaConfigurationRegistry.RegisterRenderer(new MultiRenderer(new RendererFactory(componentSpecifications, container)));

            foreach (var plugin in KolaConfigurationRegistry.Plugins)
            {
                plugin.ConfigureContainer(container);
            }
        }
Пример #5
0
        public void SetUpBase()
        {
            this.ContentRepository     = MockRepository.GenerateMock <IContentRepository>();
            this.ComponentLibrary      = MockRepository.GenerateMock <IComponentSpecificationLibrary>();
            this.WidgetRepository      = MockRepository.GenerateMock <IWidgetSpecificationRepository>();
            this.RendererFactory       = MockRepository.GenerateMock <IRendererFactory>();
            this.PluginContextProvider = MockRepository.GenerateStub <IPluginContextProvider>();

            this.SetUpAtom("atom1");
            this.SetUpContainer("container1");


            var bootstrapper = new ConfigurableBootstrapper(
                with =>
            {
                with.Dependency(this.ContentRepository);
                with.Dependency(this.ComponentLibrary);
                with.Dependency(this.WidgetRepository);
                with.Dependency(this.PluginContextProvider);
                with.ResponseProcessor <PageInstanceResultProcessor>();
                with.ResponseProcessor <ComponentInstanceResultProcessor>();
                with.Dependency <RenderingService>();
                with.Module <RenderingModule>();
                with.ViewEngine <RazorViewEngine>();
                with.ViewLocationProvider <ResourceViewLocationProvider>();

                ResourceViewLocationProvider.RootNamespaces.Clear();
                ResourceViewLocationProvider.RootNamespaces.Add(typeof(KolaNancyBootstrapper).Assembly, "Kola.Nancy");
                ResourceViewLocationProvider.RootNamespaces.Add(typeof(ContextBase).Assembly, "Integration.Tests.Nancy.Modules.RenderingModuleTests.Views");
            });

            KolaConfigurationRegistry.RegisterRenderer(new MultiRenderer(this.RendererFactory));

            bootstrapper.BeforeRequest = FakeOwinEnvironment();

            this.Browser = new Browser(bootstrapper);
        }