/** * @see org.openmrs.api.db.AdministrationDAO#saveGlobalProperty(org.openmrs.GlobalProperty) */ @Override public GlobalProperty saveGlobalProperty(GlobalProperty gp) throws DAOException { GlobalProperty gpObject = getGlobalPropertyObject(gp.getProperty()); if (gpObject != null) { gpObject.setPropertyValue(gp.getPropertyValue()); gpObject.setDescription(gp.getDescription()); sessionFactory.getCurrentSession().update(gpObject); return gpObject; } else { sessionFactory.getCurrentSession().save(gp); return gp; } }
@Test public void parse_shouldParseGlobalPropertyContainingElementsNotIncludedInGlobalProperty() throws IOException { GlobalProperty gp1 = new GlobalProperty("report.deleteReportsAgeInHours", "72", "delete reports after"); Document config = buildOnValidConfigXml() .withGlobalProperty(gp1.getProperty(), gp1.getPropertyValue(), gp1.getDescription(), null, null) .build(); config.getElementsByTagName("globalProperty").item(0).appendChild(config.createElement("ignoreMe")); Module module = parser.parse(writeConfigXmlToFile(config)); assertThat(module.getGlobalProperties().size(), is(1)); assertThat(module.getGlobalProperties().get(0).getProperty(), is(gp1.getProperty())); assertThat(module.getGlobalProperties().get(0).getPropertyValue(), is(gp1.getPropertyValue())); assertThat(module.getGlobalProperties().get(0).getDescription(), is(gp1.getDescription())); }
@Test public void parse_shouldParseGlobalPropertyWithoutDescriptionElement() throws IOException { Document config = buildOnValidConfigXml() .withGlobalProperty("report.deleteReportsAgeInHours", "72", null, null, null) .build(); Module module = parser.parse(writeConfigXmlToFile(config)); assertThat(module.getGlobalProperties().size(), is(1)); assertThat(module.getGlobalProperties().get(0).getProperty(), is("report.deleteReportsAgeInHours")); assertThat(module.getGlobalProperties().get(0).getDescription(), is("")); }
@Test public void parse_shouldParseGlobalPropertyAndTrimWhitespacesFromDescription() throws IOException { Document config = buildOnValidConfigXml() .withGlobalProperty("report.deleteReportsAgeInHours", "72", " \n\t delete reports after\t hours ", null, null) .build(); Module module = parser.parse(writeConfigXmlToFile(config)); assertThat(module.getGlobalProperties().size(), is(1)); assertThat(module.getGlobalProperties().get(0).getDescription(), is("delete reports after hours")); }
@Test public void parse_shouldParseGlobalProperty() throws IOException { GlobalProperty gp1 = new GlobalProperty("report.deleteReportsAgeInHours", "72", "delete reports after hours"); GlobalProperty gp2 = new GlobalProperty("report.validateInput", "2", "to validate input", RegexValidatedTextDatatype.class, "^\\d+$"); Document config = buildOnValidConfigXml() .withGlobalProperty(gp1.getProperty(), gp1.getPropertyValue(), gp1.getDescription(), null, null) .withGlobalProperty(gp2.getProperty(), gp2.getPropertyValue(), gp2.getDescription(), gp2.getDatatypeClassname(), gp2.getDatatypeConfig()) .build(); Module module = parser.parse(writeConfigXmlToFile(config)); assertThat(module.getGlobalProperties().size(), is(2)); assertThat(module.getGlobalProperties().get(0).getProperty(), is(gp1.getProperty())); assertThat(module.getGlobalProperties().get(0).getPropertyValue(), is(gp1.getPropertyValue())); assertThat(module.getGlobalProperties().get(0).getDescription(), is(gp1.getDescription())); assertThat(module.getGlobalProperties().get(0).getDatatypeClassname(), is(gp1.getDatatypeClassname())); assertThat(module.getGlobalProperties().get(0).getDatatypeConfig(), is(gp1.getDatatypeConfig())); assertThat(module.getGlobalProperties().get(1).getProperty(), is(gp2.getProperty())); assertThat(module.getGlobalProperties().get(1).getPropertyValue(), is(gp2.getPropertyValue())); assertThat(module.getGlobalProperties().get(1).getDescription(), is(gp2.getDescription())); assertThat(module.getGlobalProperties().get(1).getDatatypeClassname(), is(gp2.getDatatypeClassname())); assertThat(module.getGlobalProperties().get(1).getDatatypeConfig(), is(gp2.getDatatypeConfig())); }
for (GlobalProperty prop : Context.getAdministrationService().getAllGlobalProperties()) { currentPropNames.add(prop.getProperty().toUpperCase()); if (prop.getDescription() == null) { propsMissingDescription.put(prop.getProperty().toUpperCase(), prop); propToUpdate.setDescription(coreProp.getDescription()); Context.getAdministrationService().saveGlobalProperty(propToUpdate);
@Test public void shouldGetASystemSettingWithDotByName() throws Exception { final String name = "concept.defaultConceptMapType"; MockHttpServletRequest req = request(RequestMethod.GET, getURI() + "/" + name); SimpleObject result = deserialize(handle(req)); GlobalProperty gp = service.getGlobalPropertyObject(name); assertEquals(gp.getUuid(), PropertyUtils.getProperty(result, "uuid")); assertEquals(gp.getProperty(), PropertyUtils.getProperty(result, "property")); assertEquals(gp.getDescription(), PropertyUtils.getProperty(result, "description")); assertEquals(gp.getValue(), PropertyUtils.getProperty(result, "value")); } }
@Test public void shouldGetASystemSettingByName() throws Exception { final String name = service.getAllGlobalProperties().get(0).getProperty(); MockHttpServletRequest req = request(RequestMethod.GET, getURI() + "/" + name); SimpleObject result = deserialize(handle(req)); GlobalProperty gp = service.getGlobalPropertyObject(name); assertEquals(gp.getUuid(), PropertyUtils.getProperty(result, "uuid")); assertEquals(gp.getProperty(), PropertyUtils.getProperty(result, "property")); assertEquals(gp.getDescription(), PropertyUtils.getProperty(result, "description")); assertEquals(gp.getValue(), PropertyUtils.getProperty(result, "value")); }
@Test public void shouldEditASystemSetting() throws Exception { final String newValue = "Adding description by editing property"; GlobalProperty expectedProperty = service.getGlobalPropertyByUuid(getUuid()); assertNull(expectedProperty.getDescription()); String json = "{ \"description\":\"" + newValue + "\" }"; SimpleObject updatedProperty = deserialize(handle(newPostRequest(getURI() + "/" + getUuid(), json))); assertTrue(newValue.equals(PropertyUtils.getProperty(updatedProperty, "description"))); }