@Override public void setNode (final @Nonnull SiteNode node) { nodeHolder.set(node); dynamicNodePropertiesHolder.set(modelFactory.createProperties().build()); }
@Override public void apply (final @Nonnull ResourceFile folder, final @Nonnull ResourcePath relativePath) { documentMapByRelativePath.put(relativePath.asString(), modelFactory.createContent().withFolder(folder).build()); } });
@Override @Nonnull public Finder<SiteNode> findChildren() { return new ResourceFinder<>(getResource().getFile(), folder -> modelFactory.createSiteNode(site, folder)); } }
when(resource.getFile()).thenReturn(resourceFile); when(modelFactory.createResource()).thenReturn(new Resource.Builder(modelFactory, new Resource.Builder.CallBack() when(modelFactory.createLayout()).thenReturn(new Layout.Builder(modelFactory, new Layout.Builder.CallBack()
/******************************************************************************************************************* * ******************************************************************************************************************/ @Nonnull private DefaultLayout loadLayout (final @Nonnull ResourceFile layoutFile) throws IOException { log.trace(">>>> reading layout from {}...", layoutFile.getPath().asString()); final @Cleanup InputStream is = layoutFile.getInputStream(); return modelFactory.createLayout().build().as(Unmarshallable).unmarshal(is); } }
/******************************************************************************************************************* * ******************************************************************************************************************/ @BeforeMethod public void setupFixture() { context = new ClassPathXmlApplicationContext("DefaultSiteProviderTestBeans.xml"); executor = context.getBean(WaitingTaskExecutor.class); servletContext = context.getBean(ServletContext.class); site = mock(DefaultSite.class); siteBuilderCallback = mock(Site.Builder.CallBack.class); when(siteBuilderCallback.build(any(Site.Builder.class))).thenReturn(site); final ModelFactory modelFactory = context.getBean(ModelFactory.class); final Site.Builder builder = new Site.Builder(modelFactory, siteBuilderCallback); when(modelFactory.createSite()).thenReturn(builder); when(servletContext.getContextPath()).thenReturn("thecontextpath"); }
@Override public void apply (final @Nonnull ResourceFile file, final @Nonnull ResourcePath relativePath) { libraryMapByRelativePath.put(relativePath.asString(), modelFactory.createResource().withFile(file).build()); } });
layout = (layout != null) ? layout : modelFactory.createLayout() .withId(new Id("")) .withType("emptyPlaceholder")
siteAvailable = false; site = (DefaultSite)modelFactory.createSite().withContextPath(getContextPath()) .withDocumentPath(documentPath) .withMediaPath(mediaPath)
@Override @Nonnull public ResourceProperties getContentProperties() { if (contentHolder.get() == null) // FIXME: should never occur { log.warn("NO CONTENT IN CONTEXT"); // Thread.dumpStack(); // FIXME return modelFactory.createProperties().build(); } return contentHolder.get().getProperties(); }
@Override @Nonnull public Finder<Content> findChildren() { return new ResourceFinder<>( getResource().getFile(), folder -> modelFactory.createContent().withFolder(folder).build()); }
@Override public void apply (final @Nonnull ResourceFile folder, final @Nonnull ResourcePath relativePath) { try { final SiteNode siteNode = modelFactory.createSiteNode(DefaultSite.this, folder); nodeMapByRelativePath.put(relativePath.asString(), siteNode); if (!siteNode.isPlaceHolder()) { final ResourcePath relativeUri = siteNode.getRelativeUri(); // Nodes which manage path params are registered with a relativeUri having a wildcard suffix if ("true".equals(siteNode.getProperties().getProperty(SiteNode.PROPERTY_MANAGES_PATH_PARAMS, "false"))) { final String suffix = relativeUri.asString().endsWith("/") ? "(|.*$)" : "(|/.*$)"; nodeMapByRelativeUri.putRegex("^" + RegexTreeMap.escape(relativeUri.asString()) + suffix, siteNode); } else { nodeMapByRelativeUri.put(relativeUri.asString(), siteNode); } } } catch (IOException | NotFoundException e) { throw new RuntimeException(e); } } });
/******************************************************************************************************************* * * {@inheritDoc} * ******************************************************************************************************************/ @Override @Nonnull public ResourceProperties getExtraViewProperties (final @Nonnull Id viewId) { return modelFactory.createProperties().withId(viewId).build(); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @BeforeMethod public void setup() { ContextManager.Locator.set(null); context = new ClassPathXmlApplicationContext("DefaultContentExplorerPresentationControlTestBeans.xml"); underTest = context.getBean(DefaultContentExplorerPresentationControl.class); presentation = context.getBean(ContentExplorerPresentation.class); messageBus = context.getBean(MessageBus.class); modelFactory = context.getBean(ModelFactory.class); openSiteEvent = mock(OpenSiteEvent.class); fileSystem = mock(ResourceFileSystem.class); root = mock(ResourceFile.class); content = mockWithAsSupport(Content.class, (RoleFactory<Content>)(c -> new SimpleCompositePresentable(c))); when(fileSystem.findFileByPath(eq(ROOT_DOCUMENT_PATH))).thenReturn(root); when(openSiteEvent.getFileSystem()).thenReturn(fileSystem); // FIXME: this is cumbersome // when(modelFactory.createContent(eq(root))).thenReturn(content); FIXME!!! final Content.Builder.CallBack callBack = mock(Content.Builder.CallBack.class); when(callBack.build(any(Content.Builder.class))).thenReturn(content); when(modelFactory.createContent()).thenReturn(new Content.Builder(modelFactory, callBack)); }
/******************************************************************************************************************* * ******************************************************************************************************************/ @BeforeMethod public void setup() throws Exception { ContextManager.Locator.set(null); context = new ClassPathXmlApplicationContext("DefaultStructureExplorerPresentationControlTestBeans.xml"); underTest = context.getBean(DefaultStructureExplorerPresentationControl.class); presentation = context.getBean(StructureExplorerPresentation.class); messageBus = context.getBean(MessageBus.class); modelFactory = context.getBean(ModelFactory.class); openSiteEvent = mock(OpenSiteEvent.class); fileSystem = mock(ResourceFileSystem.class); root = mock(ResourceFile.class); node = mockWithAsSupport(SiteNode.class, (RoleFactory<SiteNode>)(n -> new SimpleCompositePresentable(n))); when(fileSystem.findFileByPath(eq(ROOT_SITE_NODE_PATH))).thenReturn(root); when(openSiteEvent.getFileSystem()).thenReturn(fileSystem); when(modelFactory.createSiteNode(any(Site.class), eq(root))).thenReturn(node); }
@BeforeClass public void prepareProperties() { factory = new AdminModelFactory(); properties = factory.createProperties().build() .withProperty(Properties.PROPERTY_CREATION_TIME2, new DateTime(1342536534636L)) .withProperty(Properties.PROPERTY_TITLE, "the title"); PropertyUtilities.setLocale(Locale.UK); PropertyUtilities.setZone(DateTimeZone.forID("CET")); }
/* visible for testing */ void onOpenSite (final @ListensTo @Nonnull OpenSiteEvent event) { log.debug("onOpenSite({})", event); final ResourceFile root = event.getFileSystem().findFileByPath(ROOT_DOCUMENT_PATH); final Content rootContent = modelFactory.createContent().withFolder(root).build(); presentation.populate(rootContent.as(Presentable).createPresentationModel()); presentation.expandFirstLevel(); messageBus.publish(emptySelectionEvent()); } }
/* visible for testing */ void onOpenSite (final @ListensTo @Nonnull OpenSiteEvent event) { try { log.debug("onOpenSite({})", event); final ResourceFile root = event.getFileSystem().findFileByPath(ROOT_SITE_NODE_PATH); final SiteNode rootSiteNode = modelFactory.createSiteNode(site, root); presentation.populate(rootSiteNode.as(Presentable).createPresentationModel()); presentation.expandFirstLevel(); messageBus.publish(emptySelectionEvent()); } catch (IOException | NotFoundException e) { log.warn("", e); } } }
ResourceProperties properties = modelFactory.createProperties().withPropertyResolver(propertyResolver).build(); @Cleanup final InputStream is = propertyFile.getInputStream(); final ResourceProperties tempProperties = modelFactory.createProperties().build().as(Unmarshallable).unmarshal(is);
/******************************************************************************************************************* * * ******************************************************************************************************************/ @Nonnull private ResourceProperties loadProperties() throws IOException { final ResourceFile file = getFile(); log.debug("loadProperties() for {}", file.getPath().asString()); ResourceProperties properties = modelFactory.createProperties().withPropertyResolver(propertyResolver).build(); try { final ResourceFile propertyFile = file.findChildren().withName("Properties.xml").result(); // FIXME reuse the inheritance helper // log.trace(">>>> reading properties from {} ({})...", propertyFile.getPath().asString(), locale); @Cleanup final InputStream is = propertyFile.getInputStream(); final ResourceProperties tempProperties = // modelFactory.createProperties().build().as(Unmarshallable).unmarshal(is); modelFactory.createProperties().withPropertyResolver(propertyResolver).build().as(Unmarshallable).unmarshal(is); // log.trace(">>>>>>>> read properties: {} ({})", tempProperties, locale); properties = properties.merged(tempProperties); } catch (NotFoundException e) { // ok, no properties } return properties; } }