List of usage examples for org.apache.commons.lang StringUtils deleteWhitespace
public static String deleteWhitespace(String str)
Deletes all whitespaces from a String as defined by Character#isWhitespace(char) .
From source file:org.betaconceptframework.astroboa.console.jsf.edit.ContentObjectPropertyWrapper.java
public List<ContentObjectUIWrapper> findContentObjects_UIAction(Object event) { try {/*w ww . j a v a 2s.com*/ String selectedContentObjectTitle = event.toString(); //Do not proceed if selected topic label is empty if (StringUtils.isBlank(selectedContentObjectTitle)) return null; //Reset criteria contentObjectCriteria.reset(); //Profile Title criterion if (StringUtils.deleteWhitespace(selectedContentObjectTitle).equals(selectedContentObjectTitle) && !selectedContentObjectTitle.contains("\"") && !selectedContentObjectTitle.contains("'") && !selectedContentObjectTitle.contains("*")) { //If Search Text contains only one word and not any special search character then Append * at the end contentObjectCriteria.addCriterion(CriterionFactory.contains("profile.title", CmsConstants.ANY_NAME + selectedContentObjectTitle + CmsConstants.ANY_NAME)); } else { contentObjectCriteria .addCriterion(CriterionFactory.contains("profile.title", selectedContentObjectTitle)); } //ContentObject Types criterion if (CollectionUtils.isNotEmpty(acceptedContentTypes)) { contentObjectCriteria.addContentObjectTypesEqualsAnyCriterion(acceptedContentTypes); } CmsOutcome<ContentObject> cmsOutcome = contentService.searchContentObjects(contentObjectCriteria, ResourceRepresentationType.CONTENT_OBJECT_LIST); List<ContentObjectUIWrapper> wrappedContentObjects = new ArrayList<ContentObjectUIWrapper>(); if (cmsOutcome.getCount() > 0) { List<ContentObject> objects = cmsOutcome.getResults(); for (ContentObject object : objects) { wrappedContentObjects.add(contentObjectUIWrapperFactory.getInstance(object)); } } return wrappedContentObjects; } catch (Exception e) { logger.error("Error while loading Content Objects ", e); return null; } }
From source file:org.betaconceptframework.astroboa.engine.cache.regions.JcrQueryCacheRegion.java
public static Fqn<String> constructJcrQueryFQN(String jcrQuery, CacheRegion cacheRegion) { //replace all '/' and spaces with empty string String jcrQueryWithoutForwardSlashes = StringUtils.remove(jcrQuery, CmsConstants.FORWARD_SLASH); if (cacheRegion == null) { cacheRegion = CmsCriteria.DEFAULT_CACHE_REGION; }//from www . j a v a 2s .c o m //Create Cache Region FQN Fqn<String> cacheRegionFqn = Fqn.fromRelativeElements(JCR_QUERY_NODE_FQN, cacheRegion.getRegionName()); //Create FQN for authentication token String authenticationToken = AstroboaClientContextHolder.getActiveAuthenticationToken(); if (authenticationToken == null) { throw new CmsException( "No active authenticationToken found. Could not construct appropriate FQN for query " + jcrQuery); } Fqn<String> autheticationTokenFqn = Fqn.fromRelativeElements(cacheRegionFqn, authenticationToken); return Fqn.fromRelativeElements(autheticationTokenFqn, StringUtils.deleteWhitespace(jcrQueryWithoutForwardSlashes)); }
From source file:org.betaconceptframework.astroboa.engine.jcr.dao.RepositoryUserDao.java
private void populateSpace(RepositoryUser repositoryUser, Node repositoryUserNode, Session session, Context context) throws RepositoryException { Space repositoryUserSpace = repositoryUser.getSpace(); if (repositoryUserSpace == null) { ((RepositoryUserImpl) repositoryUser).setSpace(cmsRepositoryEntityFactoryForActiveClient.newSpace()); repositoryUserSpace = repositoryUser.getSpace(); }/*from ww w.j a va 2 s. c om*/ if (!repositoryUser.getSpace().hasLocalizedLabels() && MapUtils.isNotEmpty(defaultSpaceLocalization.getLocalizedLabels())) { repositoryUser.getSpace().getLocalizedLabels().putAll(defaultSpaceLocalization.getLocalizedLabels()); } if (repositoryUserSpace.getName() == null) { repositoryUserSpace.setName("spaceForUser" + repositoryUser.getExternalId()); } //Since Space name must follow a specific pattern, check if repository user space name is valid. //if not then issue a warning and replace value with a default value. if (!cmsRepositoryEntityUtils.isValidSystemName(repositoryUserSpace.getName())) { //First try to remove all white spaces, in case space name has not changed since it was first created by the //following line of code //repositoryUserSpace.setName("Space for user"+ repositoryUser.getExternalId()); String nameWithoutWhiteSpaces = StringUtils.deleteWhitespace(repositoryUserSpace.getName()); if (!cmsRepositoryEntityUtils.isValidSystemName(nameWithoutWhiteSpaces)) { //Name is still invalid. Issue a warning and replace name so that save can continue safely logger.warn( "Repository User's '{}' Space name '{}' does not follow pattern {} and to will change to 'spaceForUser'. " + " In order to provide a different name you must explicitly save RepositotyUser Space by using SpaceService.", new Object[] { repositoryUser.getLabel(), repositoryUserSpace.getName(), CmsConstants.SYSTEM_NAME_REG_EXP }); } else { repositoryUserSpace.setName(nameWithoutWhiteSpaces); } } //Create Space if it does not exist Node spaceNode = null; if (!repositoryUserNode.hasNode(CmsBuiltInItem.Space.getJcrName())) { repositoryUserSpace.setOwner(repositoryUser); repositoryUserSpace.setOrder(Long.valueOf(1)); //Create new node spaceNode = JcrNodeUtils.addSpaceNode(repositoryUserNode, CmsBuiltInItem.Space.getJcrName()); //Create a Astroboa identifier for space or use the one provided cmsRepositoryEntityUtils.createCmsIdentifier(spaceNode, repositoryUserSpace, true); //Set Owner //Inform associations about relation between new space and repository user EntityAssociationUpdateHelper<RepositoryUser> repositoryUserAssociationUpdateHelper = new EntityAssociationUpdateHelper<RepositoryUser>( session, cmsRepositoryEntityAssociationDao, context); repositoryUserAssociationUpdateHelper.setReferrerCmsRepositoryEntityNode(spaceNode); repositoryUserAssociationUpdateHelper.setReferrerPropertyName(CmsBuiltInItem.OwnerCmsIdentifier); repositoryUserAssociationUpdateHelper.setValuesToBeAdded(Arrays.asList(repositoryUser)); repositoryUserAssociationUpdateHelper.update(); } else { spaceNode = repositoryUserNode.getNode(CmsBuiltInItem.Space.getJcrName()); if (!repositoryUser.getSpace().hasLocalizedLabels() && MapUtils.isNotEmpty(defaultSpaceLocalization.getLocalizedLabels())) { repositoryUser.getSpace().getLocalizedLabels() .putAll(defaultSpaceLocalization.getLocalizedLabels()); } //Space node is not new. Check that an identifier exists if (!cmsRepositoryEntityUtils.hasCmsIdentifier(spaceNode)) { cmsRepositoryEntityUtils.createCmsIdentifier(spaceNode, repositoryUserSpace, true); } else { String spaceIdentifier = cmsRepositoryEntityUtils.getCmsIdentifier(spaceNode); //User has provided an identifier for space //Check if it matches with the one in space jcr node only if space does not represent SYSTEM's space if (repositoryUserSpace.getId() != null) { if (!repositoryUserSpace.getId().equals(spaceIdentifier) && !StringUtils.equals(CmsApiConstants.SYSTEM_REPOSITORY_USER_EXTRENAL_ID, repositoryUser.getExternalId())) { throw new CmsException("Space identifier " + spaceIdentifier + " for repository user " + repositoryUser.getLabel() + " does not match with the provided identifier " + repositoryUserSpace.getId()); } } else { //User does not have an identifier for space. Update its value repositoryUserSpace.setId(spaceIdentifier); } } } //Update localization for repository user space spaceUtils.updateLocalizedLabels(repositoryUser.getSpace(), spaceNode); //Populate Node with default values spaceUtils.updateOrder(repositoryUser.getSpace(), spaceNode); spaceUtils.updateName(repositoryUser.getSpace(), spaceNode); }
From source file:org.betaconceptframework.astroboa.test.engine.AbstractRepositoryTest.java
protected String removeWhitespacesIfNecessary(CmsCriteria cmsCriteria, String xmlOrJson) { if (xmlOrJson != null && cmsCriteria.getRenderProperties().isPrettyPrintEnabled()) { return StringUtils.deleteWhitespace(xmlOrJson); }/* ww w .j a v a 2 s . c o m*/ return xmlOrJson; }
From source file:org.betaconceptframework.astroboa.test.engine.AbstractRepositoryTest.java
protected String removeWhitespacesIfNecessary(String xmlOrJson) { if (xmlOrJson != null && prettyPrint) { return StringUtils.deleteWhitespace(xmlOrJson); }//w w w . ja v a 2 s . co m return xmlOrJson; }
From source file:org.betaconceptframework.astroboa.test.engine.security.ContentObjectSecurityTest.java
@Test public void testContentObjectAccessForAnonymousUser() { loginToTestRepositoryAsSystem();// w w w .java2 s . co m //Create content objects for test RepositoryUser systemUser = getSystemUser(); ContentObject contentObject = createContentObject(systemUser, "secureContentObject"); //Provide empty value for string ((StringProperty) contentObject.getCmsProperty("profile.contentObjectStatus")) .setSimpleTypeValue(ContentObjectStatus.submitted.toString()); contentObject = contentService.save(contentObject, false, true, null); markObjectForRemoval(contentObject); //Login as anonymous loginToTestRepositoryAsAnonymous(); ContentObjectCriteria contentObjectCriteria = CmsCriteriaFactory .newContentObjectCriteria(TEST_CONTENT_TYPE); contentObjectCriteria.addIdEqualsCriterion(contentObject.getId()); contentObjectCriteria.doNotCacheResults(); CmsOutcome<ContentObject> outcome = contentService.searchContentObjects(contentObjectCriteria, ResourceRepresentationType.CONTENT_OBJECT_LIST); Assert.assertEquals(outcome.getCount(), 0, "Found " + outcome.getCount() + " content objects matching criteria where none should have matched"); String resultsExportedAsXml = contentService.searchContentObjects(contentObjectCriteria, ResourceRepresentationType.XML); Assert.assertTrue( StringUtils.isNotBlank(resultsExportedAsXml) && StringUtils.contains(resultsExportedAsXml, CmsConstants.TOTAL_RESOURCE_COUNT + "=\"0\""), "Found " + resultsExportedAsXml + " content objects matching criteria where none should have matched"); String resultsExportedAsJson = contentService.searchContentObjects(contentObjectCriteria, ResourceRepresentationType.JSON); final String expected = "{\"" + CmsConstants.TOTAL_RESOURCE_COUNT + "\":\"0\",\"" + CmsConstants.OFFSET + "\":\"0\"}"; Assert.assertTrue( StringUtils.isNotBlank(resultsExportedAsJson) && StringUtils.contains(StringUtils.deleteWhitespace(resultsExportedAsJson), expected), "Search returned the following results " + resultsExportedAsJson + " but no results expected, that is \n" + expected); outcome = contentService.searchContentObjects(contentObjectCriteria, ResourceRepresentationType.CONTENT_OBJECT_LIST); //Change status to published loginToTestRepositoryAsSystem(); ((StringProperty) contentObject.getCmsProperty("profile.contentObjectStatus")) .setSimpleTypeValue(ContentObjectStatus.published.toString()); contentObject = contentService.save(contentObject, false, true, null); loginToTestRepositoryAsAnonymous(); outcome = contentService.searchContentObjects(contentObjectCriteria, ResourceRepresentationType.CONTENT_OBJECT_LIST); Assert.assertEquals(outcome.getCount(), 1, "Could not find content objects matching criteria for anonymous user"); loginToTestRepositoryAsSystem(); }
From source file:org.betaconceptframework.astroboa.test.engine.service.ContentServiceTest.java
@Test public void testContentObjectExportOfComplexWithCommonAttributes() throws Exception { //Create content objects for test RepositoryUser systemUser = getSystemUser(); Topic topic = JAXBTestUtils.createTopic("co3Topic", CmsRepositoryEntityFactoryForActiveClient.INSTANCE.getFactory().newTopic(), systemUser); topic.setTaxonomy(getSubjectTaxonomy()); ContentObject contentObject = createContentObject(systemUser, "test-export-with-complex-with-id"); ((StringProperty) contentObject.getCmsProperty("singleComplexNotAspectWithCommonAttributes.additionalName")) .setSimpleTypeValue("Test"); ((TopicReferenceProperty) contentObject .getCmsProperty("singleComplexNotAspectWithCommonAttributes.testTopic")).addSimpleTypeValue(topic); contentObject = contentService.save(contentObject, false, true, null); markTopicForRemoval(topicService.getTopic(topic.getName(), ResourceRepresentationType.TOPIC_INSTANCE, FetchLevel.ENTITY, false));/* ww w . j a va 2 s . c om*/ markObjectForRemoval(contentObject); //Retrieve content object contentObject = contentService.getContentObject(contentObject.getId(), ResourceRepresentationType.CONTENT_OBJECT_INSTANCE, FetchLevel.FULL, CacheRegion.NONE, Arrays.asList("singleComplexNotAspectWithCommonAttributes.additionalName", "singleComplexNotAspectWithCommonAttributes.testTopic"), false); ComplexCmsProperty singleComplexNotAspectWithCommonAttributesProperty = (ComplexCmsProperty) contentObject .getCmsProperty("singleComplexNotAspectWithCommonAttributes"); //Export to xml and JSON using all possible methods and check if common attributes are exported String xmlExportExpectedToBeFound = "<singleComplexNotAspectWithCommonAttributes cmsIdentifier=\"" + singleComplexNotAspectWithCommonAttributesProperty.getId() + "\""; String xmlExportExpectedToBeFoundWithoutWhitespaces = removeWhitespacesIfNecessary( xmlExportExpectedToBeFound); String jsonExportExpectedToBeFound = "\"singleComplexNotAspectWithCommonAttributes\":{\"cmsIdentifier\":\"" + singleComplexNotAspectWithCommonAttributesProperty.getId() + "\""; String jsonExportExpectedToBeFoundWithoutWhitespaces = removeWhitespacesIfNecessary( jsonExportExpectedToBeFound); String xmlFromService = contentService.getContentObject(contentObject.getId(), ResourceRepresentationType.XML, FetchLevel.FULL, CacheRegion.NONE, Arrays.asList("singleComplexNotAspectWithCommonAttributes", "singleComplexNotAspectWithCommonAttributes"), false); String xmlFromServiceWithoutWhitespaces = removeWhitespacesIfNecessary(xmlFromService); Assert.assertTrue(xmlFromServiceWithoutWhitespaces.contains(xmlExportExpectedToBeFoundWithoutWhitespaces), "Found common attributes in XML export from the ContentService of a complex property which does not define them in its schema\n" + xmlFromService); String xmlFromObject = contentObject.xml(prettyPrint); String xmlFromObjectWithoutWhitespaces = removeWhitespacesIfNecessary(xmlFromObject); Assert.assertTrue(xmlFromObjectWithoutWhitespaces.contains(xmlExportExpectedToBeFoundWithoutWhitespaces), "Found common attributes in XML export from method ContentObject.xml() of a complex property which does not define them in its schema\n" + xmlFromObject); String jsonFromService = contentService.getContentObject(contentObject.getId(), ResourceRepresentationType.JSON, FetchLevel.FULL, CacheRegion.NONE, Arrays.asList("singleComplexNotAspectWithCommonAttributes", "singleComplexNotAspectWithCommonAttributes"), false); String jsonFromServiceWithoutWhitespaces = removeWhitespacesIfNecessary(jsonFromService); Assert.assertTrue(jsonFromServiceWithoutWhitespaces.contains(jsonExportExpectedToBeFoundWithoutWhitespaces), "Found common attributes in JSON export from the ContentService of a complex property which does not define them in its schema\n" + jsonFromService); String jsonFromObject = contentObject.json(prettyPrint); Assert.assertTrue( StringUtils.deleteWhitespace(jsonFromObject) .contains(jsonExportExpectedToBeFoundWithoutWhitespaces), "Found common attributes in JSON export from method ContentObject.json() of a complex property which does not define them in its schema\n" + jsonFromObject); }
From source file:org.betaconceptframework.astroboa.test.engine.service.ContentServiceTest.java
private void assertStringRepresentationHasTheProperPropertiesLoaded(String xmlOrJson, ContentObject contentObject, ResourceRepresentationType<String> resourceRepresentationType, FetchLevel fetchLevel, List<String> propertiesToExport) throws Exception { xmlOrJson = removeWhitespacesIfNecessary(xmlOrJson); String expectedURL = contentObject.getResourceApiURL(resourceRepresentationType, false, contentObject.getSystemName() != null); if (resourceRepresentationType.equals(ResourceRepresentationType.XML)) { String expectedProperty = "cmsIdentifier=\"" + contentObject.getId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object identifier " + contentObject.getId()); expectedProperty = "systemName=\"" + contentObject.getSystemName() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object system name " + contentObject.getSystemName()); expectedProperty = "contentObjectTypeName=\"" + contentObject.getContentObjectType() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object type " + contentObject.getContentObjectType()); expectedProperty = "url=\"" + expectedURL + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object url " + expectedURL); if ((fetchLevel == null || fetchLevel == FetchLevel.ENTITY) && CollectionUtils.isEmpty(propertiesToExport)) { expectedProperty = "<profile"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's profile "); expectedProperty = "<title>" + StringUtils.deleteWhitespace( ((StringProperty) contentObject.getCmsProperty("profile.title")).getSimpleTypeValue()) + "</title>"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's profile.title"); expectedProperty = "<created>" + convertCalendarToXMLFormat( ((CalendarProperty) contentObject.getCmsProperty("profile.created")).getSimpleTypeValue(), true) + "</created>"; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n contains content object's profile.created"); expectedProperty = "<accessibility"; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n contains content object's accessibility"); expectedProperty = "<canBeReadBy>" + ((StringProperty) contentObject.getCmsProperty("accessibility.canBeReadBy")) .getFirstValue() + "</canBeReadBy>"; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n contains content object's accessibility.canBeReadBy"); expectedProperty = "<owner"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object owner "); expectedProperty = "cmsIdentifier=\"" + contentObject.getOwner().getId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's owner identifier " + contentObject.getOwner().getId()); expectedProperty = "externalId=\"" + contentObject.getOwner().getExternalId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's owner external id " + contentObject.getOwner().getExternalId()); //Since user is SYSTEM User , she has by default the label 'ACCOUNT SYSTEM'. If pretty print //has been enabled, then xmlOrJson will processed to remove all whitespaces //and therefore label wil be ACCOUNTSYSTEM. In this case we need to remove the whitespaces from the value //in contentObject.getOwner().getLabel() expectedProperty = "label=\"" + removeWhitespacesIfNecessary(contentObject.getOwner().getLabel()) + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's owner external id " + contentObject.getOwner().getLabel()); for (CmsPropertyPath cmsPropertyPath : CmsPropertyPath.values()) { String propertyName = cmsPropertyPath.getPeriodDelimitedPath(); expectedProperty = "<" + PropertyPath.getLastDescendant(propertyName); Assert.assertFalse(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n contains content object property " + propertyName); }//from ww w .jav a 2 s .com } else if (fetchLevel == FetchLevel.FULL) { expectedProperty = "<profile"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's profile "); expectedProperty = "<title>" + StringUtils.deleteWhitespace( ((StringProperty) contentObject.getCmsProperty("profile.title")).getSimpleTypeValue()) + "</title>"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's profile.title"); expectedProperty = "<created>" + convertCalendarToXMLFormat( ((CalendarProperty) contentObject.getCmsProperty("profile.created")).getSimpleTypeValue(), true) + "</created>"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's profile.created"); expectedProperty = "<accessibility"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's accessibility"); expectedProperty = "<canBeReadBy>" + ((StringProperty) contentObject.getCmsProperty("accessibility.canBeReadBy")) .getFirstValue() + "</canBeReadBy>"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's accessibility.canBeReadBy"); expectedProperty = "<owner"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object owner "); expectedProperty = "cmsIdentifier=\"" + contentObject.getOwner().getId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's owner identifier " + contentObject.getOwner().getId()); expectedProperty = "externalId=\"" + contentObject.getOwner().getExternalId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's owner external id " + contentObject.getOwner().getExternalId()); //Since user is SYSTEM User , she has by default the label 'ACCOUNT SYSTEM'. If pretty print //has been enabled, then xmlOrJson will processed to remove all whitespaces //and therefore label wil be ACCOUNTSYSTEM. In this case we need to remove the whitespaces from the value //in contentObject.getOwner().getLabel() expectedProperty = "label=\"" + removeWhitespacesIfNecessary(contentObject.getOwner().getLabel()) + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's owner external id " + contentObject.getOwner().getLabel()); for (CmsPropertyPath cmsPropertyPath : CmsPropertyPath.values()) { String propertyName = cmsPropertyPath.getPeriodDelimitedPath(); expectedProperty = "<" + PropertyPath.getLastDescendant(propertyName); Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object property " + propertyName); } } else { if (propertiesToExport != null && propertiesToExport.size() > 0) { if (!propertiesToExport.contains("profile") && !propertiesToExport.contains("profile.title")) { expectedProperty = "<title>" + StringUtils .deleteWhitespace(((StringProperty) contentObject.getCmsProperty("profile.title")) .getSimpleTypeValue()) + "</title>"; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n contains content object's profile.title"); expectedProperty = "<owner"; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n contains content object owner "); expectedProperty = "cmsIdentifier=\"" + contentObject.getOwner().getId() + "\""; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n contains content object's owner identifier " + contentObject.getOwner().getId()); expectedProperty = "externalId=\"" + contentObject.getOwner().getExternalId() + "\""; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n contains content object's owner external id " + contentObject.getOwner().getExternalId()); expectedProperty = "label=\"" + contentObject.getOwner().getLabel() + "\""; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n contains content object's owner external id " + contentObject.getOwner().getLabel()); } for (String propertyToExport : propertiesToExport) { String propertyName = PropertyPath.getLastDescendant(propertyToExport); Assert.assertTrue(xmlOrJson.contains(propertyName), "XML export \n" + xmlOrJson + " \n does not contain content object property " + propertyName); } } else { expectedProperty = "<title>" + StringUtils.deleteWhitespace( ((StringProperty) contentObject.getCmsProperty("profile.title")).getSimpleTypeValue()) + "</title>"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not contain content object's profile.title"); expectedProperty = "<owner"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not content object owner "); expectedProperty = "cmsIdentifier=\"" + contentObject.getOwner().getId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not content object's owner identifier " + contentObject.getOwner().getId()); expectedProperty = "externalId=\"" + contentObject.getOwner().getExternalId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not content object's owner external id " + contentObject.getOwner().getExternalId()); expectedProperty = "label=\"" + contentObject.getOwner().getLabel() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "XML export \n" + xmlOrJson + " \n does not content object's owner external id " + contentObject.getOwner().getLabel()); } } } else if (resourceRepresentationType.equals(ResourceRepresentationType.JSON)) { String expectedProperty = "\"cmsIdentifier\":\"" + contentObject.getId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object identifier " + contentObject.getId()); expectedProperty = "\"systemName\":\"" + contentObject.getSystemName() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object system name " + contentObject.getSystemName()); expectedProperty = "\"contentObjectTypeName\":\"" + contentObject.getContentObjectType() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object type " + contentObject.getContentObjectType()); expectedProperty = "\"url\":\"" + expectedURL + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object url " + expectedURL); if ((fetchLevel == null || fetchLevel == FetchLevel.ENTITY) && CollectionUtils.isEmpty(propertiesToExport)) { expectedProperty = "\"profile\":{"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's profile "); expectedProperty = "\"title\":\"" + StringUtils.deleteWhitespace( ((StringProperty) contentObject.getCmsProperty("profile.title")).getSimpleTypeValue()) + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's profile.title"); expectedProperty = "\"created\":\"" + convertCalendarToXMLFormat( ((CalendarProperty) contentObject.getCmsProperty("profile.created")).getSimpleTypeValue(), true) + "\""; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n contains content object's profile.created"); expectedProperty = "\"accessibility\":{"; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n contains content object's accessibility"); expectedProperty = "\"canBeReadBy\":\"" + ((StringProperty) contentObject.getCmsProperty("accessibility.canBeReadBy")) .getFirstValue() + "\""; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n contains content object's accessibility.canBeReadBy"); expectedProperty = "\"owner\":{"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object owner "); expectedProperty = "\"cmsIdentifier\":\"" + contentObject.getOwner().getId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's owner identifier " + contentObject.getOwner().getId()); expectedProperty = "\"externalId\":\"" + contentObject.getOwner().getExternalId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's owner external id " + contentObject.getOwner().getExternalId()); //Since user is SYSTEM User , she has by default the label 'ACCOUNT SYSTEM'. If pretty print //has been enabled, then xmlOrJson will processed to remove all whitespaces //and therefore label wil be ACCOUNTSYSTEM. In this case we need to remove the whitespaces from the value //in contentObject.getOwner().getLabel() expectedProperty = "\"label\":\"" + removeWhitespacesIfNecessary(contentObject.getOwner().getLabel()) + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's owner external id " + contentObject.getOwner().getLabel()); for (CmsPropertyPath cmsPropertyPath : CmsPropertyPath.values()) { final String propertyName = cmsPropertyPath.getPeriodDelimitedPath(); expectedProperty = PropertyPath.getLastDescendant(propertyName); Assert.assertFalse(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n contains content object property " + propertyName); } } else if (fetchLevel == FetchLevel.FULL) { expectedProperty = "\"profile\":{"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's profile "); expectedProperty = "\"title\":\"" + StringUtils.deleteWhitespace( ((StringProperty) contentObject.getCmsProperty("profile.title")).getSimpleTypeValue()) + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's profile.title"); expectedProperty = "\"created\":\"" + convertCalendarToXMLFormat( ((CalendarProperty) contentObject.getCmsProperty("profile.created")).getSimpleTypeValue(), true) + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's profile.created"); expectedProperty = "\"accessibility\":{"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's accessibility"); expectedProperty = "\"canBeReadBy\":[\"" + ((StringProperty) contentObject.getCmsProperty("accessibility.canBeReadBy")) .getFirstValue() + "\"]"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's accessibility.canBeReadBy"); expectedProperty = "\"owner\":{"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object owner "); expectedProperty = "\"cmsIdentifier\":\"" + contentObject.getOwner().getId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's owner identifier " + contentObject.getOwner().getId()); expectedProperty = "\"externalId\":\"" + contentObject.getOwner().getExternalId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's owner external id " + contentObject.getOwner().getExternalId()); //Since user is SYSTEM User , she has by default the label 'ACCOUNT SYSTEM'. If pretty print //has been enabled, then xmlOrJson will processed to remove all whitespaces //and therefore label wil be ACCOUNTSYSTEM. In this case we need to remove the whitespaces from the value //in contentObject.getOwner().getLabel() expectedProperty = "\"label\":\"" + removeWhitespacesIfNecessary(contentObject.getOwner().getLabel()) + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's owner external id " + contentObject.getOwner().getLabel()); for (CmsPropertyPath cmsPropertyPath : CmsPropertyPath.values()) { final String propertyName = cmsPropertyPath.getPeriodDelimitedPath(); expectedProperty = PropertyPath.getLastDescendant(propertyName); Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object property " + propertyName); } } else { if (propertiesToExport != null && propertiesToExport.size() > 0) { if (!propertiesToExport.contains("profile") && !propertiesToExport.contains("profile.title")) { expectedProperty = "\"title\":\"" + StringUtils .deleteWhitespace(((StringProperty) contentObject.getCmsProperty("profile.title")) .getSimpleTypeValue()) + "\""; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n contains content object's profile.title"); expectedProperty = "\"owner\":{"; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n contains content object owner "); expectedProperty = "\"cmsIdentifier\":\"" + contentObject.getOwner().getId() + "\""; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n contains content object's owner identifier " + contentObject.getOwner().getId()); expectedProperty = "\"externalId\":\"" + contentObject.getOwner().getExternalId() + "\""; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n contains content object's owner external id " + contentObject.getOwner().getExternalId()); //Since user is SYSTEM User , she has by default the label 'ACCOUNT SYSTEM'. If pretty print //has been enabled, then xmlOrJson will processed to remove all whitespaces //and therefore label will be ACCOUNTSYSTEM. In this case we need to remove the whitespaces from the value //in contentObject.getOwner().getLabel() expectedProperty = "\"label\":\"" + removeWhitespacesIfNecessary(contentObject.getOwner().getLabel()) + "\""; Assert.assertFalse(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n contains content object's owner external id " + contentObject.getOwner().getLabel()); } for (String propertyToExport : propertiesToExport) { String propertyName = PropertyPath.getLastDescendant(propertyToExport); Assert.assertTrue(xmlOrJson.contains(propertyName), "JSON export \n" + xmlOrJson + " \n does not contain content object property " + propertyName); } } else { expectedProperty = "\"title\":\"" + StringUtils.deleteWhitespace( ((StringProperty) contentObject.getCmsProperty("profile.title")).getSimpleTypeValue()) + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's profile.title " + expectedProperty); expectedProperty = "\"owner\":{"; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object owner "); expectedProperty = "\"cmsIdentifier\":\"" + contentObject.getOwner().getId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's owner identifier " + contentObject.getOwner().getId()); expectedProperty = "\"externalId\":\"" + contentObject.getOwner().getExternalId() + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's owner external id " + contentObject.getOwner().getExternalId()); //Since user is SYSTEM User , she has by default the label 'ACCOUNT SYSTEM'. If pretty print //has been enabled, then xmlOrJson will processed to remove all whitespaces //and therefore label will be ACCOUNTSYSTEM. In this case we need to remove the whitespaces from the value //in contentObject.getOwner().getLabel() expectedProperty = "\"label\":\"" + removeWhitespacesIfNecessary(contentObject.getOwner().getLabel()) + "\""; Assert.assertTrue(xmlOrJson.contains(expectedProperty), "JSON export \n" + xmlOrJson + " \n does not contain content object's owner external id " + contentObject.getOwner().getLabel()); } } } else { throw new Exception("Invalid resource representation type " + resourceRepresentationType); } }
From source file:org.betaconceptframework.astroboa.test.engine.service.RepositoryServiceTest.java
private void assertCriterionEquals(ContentObjectCriteria parserContentOjectCriteria, ContentObjectCriteria expectedContentOjectCriteria) { Assert.assertNotNull(parserContentOjectCriteria, "No criteria provided by parser"); Assert.assertNotNull(expectedContentOjectCriteria, "No criteria provided by user"); Assert.assertEquals(StringUtils.deleteWhitespace(parserContentOjectCriteria.getXPathQuery()), StringUtils.deleteWhitespace(expectedContentOjectCriteria.getXPathQuery())); }
From source file:org.betaconceptframework.astroboa.test.engine.service.TaxonomyServiceTest.java
@Test public void testGetAllTaxonomiesXmlorJSON() throws Throwable { Taxonomy newTaxonomy = JAXBTestUtils.createTaxonomy("newTaxonomyForXML", cmsRepositoryEntityFactory.newTaxonomy()); newTaxonomy.clearLocalizedLabels();/*from w w w .j a va 2s . c o m*/ newTaxonomy = taxonomyService.save(newTaxonomy); markTaxonomyForRemoval(newTaxonomy); String allTaxonomies = null; ResourceRepresentationType<?> resourceRepresentationTypeForLogger = null; try { final List<ResourceRepresentationType<String>> asList = Arrays.asList(ResourceRepresentationType.XML, ResourceRepresentationType.JSON); for (ResourceRepresentationType<?> resourceRepresentationType : asList) { resourceRepresentationTypeForLogger = resourceRepresentationType; if (resourceRepresentationType.equals(ResourceRepresentationType.JSON)) { allTaxonomies = taxonomyService.getAllTaxonomies(ResourceRepresentationType.JSON, FetchLevel.ENTITY, false); } else if (resourceRepresentationType.equals(ResourceRepresentationType.XML)) { allTaxonomies = taxonomyService.getAllTaxonomies(ResourceRepresentationType.XML, FetchLevel.ENTITY, false); } Assert.assertNotNull(allTaxonomies, "Taxonomies were not exported"); allTaxonomies = StringUtils.deleteWhitespace(allTaxonomies); final String expectedRepresentationOfNewTaxonomyName = generateExpectedValueForOutputFormat( CmsBuiltInItem.Name.getLocalPart(), newTaxonomy.getName(), resourceRepresentationType); Assert.assertTrue(allTaxonomies.contains(expectedRepresentationOfNewTaxonomyName), "Taxonomy " + newTaxonomy.getName() + " was not exported. Did not find \n " + expectedRepresentationOfNewTaxonomyName + "in result \n" + allTaxonomies); final String expectedRepresentationOfSubjectTaxonomyName = generateExpectedValueForOutputFormat( CmsBuiltInItem.Name.getLocalPart(), getSubjectTaxonomy().getName(), resourceRepresentationType); Assert.assertTrue(allTaxonomies.contains(expectedRepresentationOfSubjectTaxonomyName), "Taxonomy " + getSubjectTaxonomy().getName() + " was not exported. Did not find \n " + expectedRepresentationOfSubjectTaxonomyName + "in result \n" + allTaxonomies); } } catch (Throwable e) { try { logger.error(resourceRepresentationTypeForLogger + " - Initial \n{}", TestUtils.prettyPrintXml(allTaxonomies)); } catch (Exception e1) { logger.error(resourceRepresentationTypeForLogger + "Initial \n{}", allTaxonomies); } logger.error("All taxonomies XML \n{}", taxonomyService.getAllTaxonomies(ResourceRepresentationType.XML, FetchLevel.ENTITY, prettyPrint)); throw e; } }