private ContentKey storeSimpleContent(String title) { ContentEntity content = factory.createContent("MyCategory", "en", "testuser", "0", new Date()); ContentVersionEntity version = factory.createContentVersion("0", "testuser"); ContentTypeConfig contentTypeConfig = ContentTypeConfigParser.parse(ContentHandlerName.CUSTOM, createSimpleContentTypeConfig()); CustomContentData contentData = new CustomContentData(contentTypeConfig); TextDataEntryConfig titleConfig = new TextDataEntryConfig("myTitle", true, title, "contentdata/mytitle"); contentData.add(new TextDataEntry(titleConfig, "relatedconfig")); version.setContentData(contentData); UserEntity runningUser = fixture.findUserByName("testuser"); CreateContentCommand createContentCommand = new CreateContentCommand(); createContentCommand.setCreator(runningUser); createContentCommand.populateCommandWithContentValues(content); createContentCommand.populateCommandWithContentVersionValues(version); createContentCommand.setBinaryDatas(new ArrayList<BinaryDataAndBinary>()); createContentCommand.setUseCommandsBinaryDataToAdd(true); ContentKey contentKey = contentService.createContent(createContentCommand); hibernateTemplate.flush(); hibernateTemplate.clear(); return contentKey; }
private void createUpdateContentWithBinary() { UserEntity runningUser = fixture.findUserByName("testuser"); // prepare: save a new content ContentEntity content = new ContentEntity(); content.setPriority(0); content.setAvailableFrom(null); content.setAvailableTo(null); content.setCategory(fixture.findCategoryByName("MyCategory")); content.setLanguage(fixture.findLanguageByCode("en")); content.setName("testcontentwithbinary"); ContentVersionEntity version = new ContentVersionEntity(); version.setContent(content); version.setModifiedBy(runningUser); version.setStatus(com.enonic.cms.core.content.ContentStatus.DRAFT); version.setContent(content); CustomContentData contentData = new CustomContentData( fixture.findContentTypeByName("MyContentType").getContentTypeConfig()); TextDataEntryConfig titleConfig = (TextDataEntryConfig) contentData.getContentTypeConfig().getForm().getInputConfig("myTitle"); TextDataEntryConfig updateFieldConfig = (TextDataEntryConfig) contentData.getContentTypeConfig().getForm().getInputConfig("fieldToUpdate"); BinaryDataEntryConfig binaryConfig = (BinaryDataEntryConfig) contentData.getContentTypeConfig().getForm().getInputConfig("myBinaryfile"); contentData.add(new TextDataEntry(titleConfig, "testitle")); contentData.add(new TextDataEntry(updateFieldConfig, "foobar")); contentData.add(new BinaryDataEntry(binaryConfig, "%0")); version.setContentData(contentData); version.setTitle(contentData.getTitle()); CreateContentCommand createContentCommand = new CreateContentCommand(); createContentCommand.setCreator(runningUser); createContentCommand.populateCommandWithContentValues(content); createContentCommand.populateCommandWithContentVersionValues(version); List<BinaryDataAndBinary> binaryDatas = new ArrayList<BinaryDataAndBinary>(); binaryDatas.add(factory.createBinaryDataAndBinary("dummyBinary", dummyBinary)); createContentCommand.setBinaryDatas(binaryDatas); createContentCommand.setUseCommandsBinaryDataToAdd(true); contentWithBinaryKey = contentService.createContent(createContentCommand); fixture.flushAndClearHibernateSession(); }
private void createUpdateContent() { UserEntity runningUser = fixture.findUserByName("testuser"); // prepare: save a new content ContentEntity content = new ContentEntity(); content.setPriority(0); content.setAvailableFrom(new Date()); content.setAvailableTo(null); content.setCategory(fixture.findCategoryByName("MyCategory")); content.setLanguage(fixture.findLanguageByCode("en")); content.setName("testcontent"); ContentVersionEntity version = new ContentVersionEntity(); version.setContent(content); version.setModifiedBy(runningUser); version.setStatus(com.enonic.cms.core.content.ContentStatus.APPROVED); version.setContent(content); CustomContentData contentData = new CustomContentData( fixture.findContentTypeByName("MyContentType").getContentTypeConfig()); TextDataEntryConfig titleConfig = (TextDataEntryConfig) contentData.getContentTypeConfig().getForm().getInputConfig("myTitle"); TextDataEntryConfig updateFieldConfig = (TextDataEntryConfig) contentData.getContentTypeConfig().getForm().getInputConfig("fieldToUpdate"); contentData.add(new TextDataEntry(titleConfig, "testitle")); contentData.add(new TextDataEntry(updateFieldConfig, "foobar")); version.setContentData(contentData); version.setTitle(contentData.getTitle()); CreateContentCommand createContentCommand = new CreateContentCommand(); createContentCommand.setCreator(runningUser); createContentCommand.setAccessRightsStrategy(AccessRightsStrategy.USE_GIVEN); createContentCommand.populateCommandWithContentValues(content); createContentCommand.populateCommandWithContentVersionValues(version); updateContentKey = contentService.createContent(createContentCommand); fixture.flushAndClearHibernateSession(); }
@Test public void testUpdateCurrentVersion() { ContentKey relatedContentKey1 = storeSimpleContent("rel1"); ContentKey relatedContentKey2 = storeSimpleContent("rel2"); ContentKey relatedContentKey3 = storeSimpleContent("rel3"); ContentKey relatedContentKey4 = storeSimpleContent("rel4"); ContentKey relatedContentKey5 = storeSimpleContent("rel5"); ContentEntity content = factory.createContent("MyCategory", "en", "testuser", "0", new Date()); ContentVersionEntity version = factory.createContentVersion("0", "testuser"); ContentTypeConfig contentTypeConfig = ContentTypeConfigParser.parse(ContentHandlerName.CUSTOM, configEl); CustomContentData contentData = new CustomContentData(contentTypeConfig); TextDataEntryConfig titleConfig = new TextDataEntryConfig("myTitle", true, "Tittel", "contentdata/mytitle"); contentData.add(new TextDataEntry(titleConfig, "test title")); RelatedContentDataEntryConfig multipleRelatedContentsConfig = (RelatedContentDataEntryConfig) contentTypeConfig.getInputConfig("myMultipleRelatedContent"); contentData.add( new RelatedContentsDataEntry(multipleRelatedContentsConfig) .add(new RelatedContentDataEntry(multipleRelatedContentsConfig, relatedContentKey1)) .add(new RelatedContentDataEntry(multipleRelatedContentsConfig, relatedContentKey2))); RelatedContentDataEntryConfig soleRelatedConfig = (RelatedContentDataEntryConfig) contentTypeConfig.getInputConfig("mySoleRelatedContent"); contentData.add(new RelatedContentDataEntry(soleRelatedConfig, relatedContentKey3)); version.setContentData(contentData); UserEntity runningUser = fixture.findUserByName("testuser"); CreateContentCommand createContentCommand = new CreateContentCommand(); createContentCommand.setCreator(runningUser); createContentCommand.populateCommandWithContentValues(content); createContentCommand.populateCommandWithContentVersionValues(version); createContentCommand.setBinaryDatas(new ArrayList<BinaryDataAndBinary>()); createContentCommand.setUseCommandsBinaryDataToAdd(true); ContentKey contentKey = contentService.createContent(createContentCommand); hibernateTemplate.flush(); hibernateTemplate.clear(); ContentEntity persistedContent = contentDao.findByKey(contentKey); assertNotNull(persistedContent); ContentVersionEntity persistedVersion = persistedContent.getMainVersion(); assertNotNull(persistedVersion); assertEquals(3, persistedVersion.getRelatedChildren(true).size()); ContentEntity changedContent = factory.createContent("MyCategory", "en", "testuser", "0", new Date()); changedContent.setKey(contentKey); ContentVersionEntity changedVersion = factory.createContentVersion("0", "testuser"); changedVersion.setKey(persistedVersion.getKey()); CustomContentData changedCD = new CustomContentData(contentTypeConfig); TextDataEntryConfig changedTitleConfig = new TextDataEntryConfig("myTitle", true, "Tittel", "contentdata/mytitle"); changedCD.add(new TextDataEntry(changedTitleConfig, "changed title")); changedCD.add( new RelatedContentsDataEntry(multipleRelatedContentsConfig) .add(new RelatedContentDataEntry(multipleRelatedContentsConfig, relatedContentKey3)) .add(new RelatedContentDataEntry(multipleRelatedContentsConfig, relatedContentKey5))); changedCD.add(new RelatedContentDataEntry(soleRelatedConfig, relatedContentKey4)); changedVersion.setContentData(changedCD); UpdateContentCommand updateContentCommand = UpdateContentCommand.updateExistingVersion2(persistedVersion.getKey()); updateContentCommand.setModifier(runningUser); updateContentCommand.setUpdateAsMainVersion(false); updateContentCommand.populateContentValuesFromContent(persistedContent); updateContentCommand.populateContentVersionValuesFromContentVersion(changedVersion); contentService.updateContent(updateContentCommand); hibernateTemplate.flush(); hibernateTemplate.clear(); ContentEntity contentAfterUpdate = contentDao.findByKey(contentKey); ContentVersionEntity versionAfterUpdate = contentVersionDao.findByKey(persistedVersion.getKey()); Document contentDataXmlAfterUpdate = versionAfterUpdate.getContentDataAsJDomDocument(); AssertTool.assertXPathEquals( "/contentdata/mysolerelatedcontent/@key", contentDataXmlAfterUpdate, relatedContentKey4.toString()); AssertTool.assertXPathEquals( "/contentdata/myrelatedcontents/content[1]/@key", contentDataXmlAfterUpdate, relatedContentKey3.toString()); AssertTool.assertXPathEquals( "/contentdata/myrelatedcontents/content[2]/@key", contentDataXmlAfterUpdate, relatedContentKey5.toString()); assertEquals(3, versionAfterUpdate.getRelatedChildren(true).size()); }