teleivo
(Ivo Ulrich)
1
Hi there,
I am adding a new method to ModuleUtil see
and the PR https://github.com/openmrs/openmrs-core/pull/1836
Im having issues with testing.
My method calls static method
ModuleUtil.matchRequiredVersions(OpenmrsConstants.OPENMRS_VERSION_SHORT, version))
Constant OpenmrsConstants.OPENMRS_VERSION_SHORT is constructed from openmrs.properties file
see
https://github.com/openmrs/openmrs-core/blob/master/api/src/main/java/org/openmrs/util/OpenmrsConstants.java#L102
which contains variables which are replaced by maven on build, but when testing the are just something like “${openmrs.version}”
What I would like is to set the OpenmrsConstants.OPENMRS_VERSION_SHORT to something known, control it during my tests.
My tests are in a BaseContextSensitiveTest class.
Any suggestions ?
dkayiwa
(Daniel Kayiwa)
2
Just hack it as below: 
Field versionField = OpenmrsConstants.class.getDeclaredField(“OPENMRS_VERSION_SHORT”);
Field modifiersField = Field.class.getDeclaredField(“modifiers”);
modifiersField.setAccessible(true);
modifiersField.setInt(versionField, versionField.getModifiers() & ~Modifier.FINAL);
versionField.set(null, “3.0”); //replace 3.0 with any version you want.
1 Like