Advertisement
Guest User

Untitled

a guest
Jan 13th, 2013
24
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.97 KB | None | 0 0
  1. /**
  2. * The contents of this file are subject to the OpenMRS Public License
  3. * Version 1.0 (the "License"); you may not use this file except in
  4. * compliance with the License. You may obtain a copy of the License at
  5. * http://license.openmrs.org
  6. *
  7. * Software distributed under the License is distributed on an "AS IS"
  8. * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
  9. * License for the specific language governing rights and limitations
  10. * under the License.
  11. *
  12. * Copyright (C) OpenMRS, LLC. All Rights Reserved.
  13. */
  14. package org.openmrs.module;
  15.  
  16. import java.io.File;
  17. import java.net.URL;
  18.  
  19. import junit.framework.Assert;
  20.  
  21. import org.junit.Ignore;
  22. import org.junit.Test;
  23. import org.openmrs.test.BaseContextSensitiveTest;
  24. import org.openmrs.test.Verifies;
  25. import org.openmrs.util.OpenmrsUtil;
  26.  
  27. /**
  28. * Tests methods on the {@link ModuleUtil} class
  29. */
  30. public class ModuleUtilTest extends BaseContextSensitiveTest {
  31.  
  32. /**
  33. * This test requires a connection to the internet to pass
  34. *
  35. * @see {@link ModuleUtil#getURLStream(URL)}
  36. */
  37. @Test
  38. @Verifies(value = "should return a valid input stream for old module urls", method = "getURLStream(URL)")
  39. public void getURLStream_shouldReturnAValidInputStreamForOldModuleUrls() throws Exception {
  40. ModuleUtil.getURLStream(new URL("https://dev.openmrs.org/modules/download/formentry/update.rdf"));
  41. }
  42.  
  43. /**
  44. * This test requires a connection to the internet to pass
  45. *
  46. * @see {@link ModuleUtil#getURL(URL)}
  47. */
  48. @Test
  49. @Ignore
  50. @Verifies(value = "should return an update rdf page for old https dev urls", method = "getURL(URL)")
  51. public void getURL_shouldReturnAnUpdateRdfPageForOldHttpsDevUrls() throws Exception {
  52. String url = "https://dev.openmrs.org/modules/download/formentry/update.rdf";
  53. String updateRdf = ModuleUtil.getURL(new URL(url));
  54. Assert.assertTrue("Unable to fetch module update url: " + url, updateRdf.contains("<updates"));
  55. }
  56.  
  57. /**
  58. * This test requires a connection to the internet to pass
  59. *
  60. * @see {@link ModuleUtil#getURL(URL)}
  61. */
  62. @Test
  63. @Ignore
  64. @Verifies(value = "should return an update rdf page for old https module urls", method = "getURL(URL)")
  65. public void getURL_shouldReturnAnUpdateRdfPageForOldHttpsModuleUrls() throws Exception {
  66. String url = "https://modules.openmrs.org/modules/download/formentry/update.rdf";
  67. String updateRdf = ModuleUtil.getURL(new URL(url));
  68. Assert.assertTrue("Unable to fetch module update url: " + url, updateRdf.contains("<updates"));
  69. }
  70.  
  71. /**
  72. * This test requires a connection to the internet to pass
  73. *
  74. * @see {@link ModuleUtil#getURL(URL)}
  75. */
  76. @Test
  77. @Ignore
  78. @Verifies(value = "should return an update rdf page for module urls", method = "getURL(URL)")
  79. public void getURL_shouldReturnAnUpdateRdfPageForModuleUrls() throws Exception {
  80. String url = "http://modules.openmrs.org/modules/download/formentry/update.rdf";
  81. String updateRdf = ModuleUtil.getURL(new URL(url));
  82. Assert.assertTrue("Unable to fetch module update url: " + url, updateRdf.contains("<updates"));
  83. }
  84.  
  85. /**
  86. * @see {@link ModuleUtil#checkMandatoryModulesStarted()}
  87. */
  88. @Test(expected = MandatoryModuleException.class)
  89. @Verifies(value = "should throw ModuleException if a mandatory module is not started", method = "checkMandatoryModulesStarted()")
  90. public void checkMandatoryModulesStarted_shouldThrowModuleExceptionIfAMandatoryModuleIsNotStarted() throws Exception {
  91. executeDataSet("org/openmrs/module/include/mandatoryModulesGlobalProperties.xml");
  92. ModuleUtil.checkMandatoryModulesStarted();
  93. }
  94.  
  95. /**
  96. * @see {@link ModuleUtil#checkOpenmrsCoreModulesStarted()}
  97. */
  98. @Test(expected = OpenmrsCoreModuleException.class)
  99. @Verifies(value = "should throw ModuleException if a core module is not started", method = "checkOpenmrsCoreModulesStarted()")
  100. public void checkMandatoryModulesStarted_shouldThrowModuleExceptionIfACoreModuleIsNotStarted() throws Exception {
  101.  
  102. runtimeProperties.setProperty(ModuleConstants.IGNORE_CORE_MODULES_PROPERTY, "false");
  103. try {
  104. ModuleUtil.checkOpenmrsCoreModulesStarted();
  105. }
  106. finally {
  107. runtimeProperties.setProperty(ModuleConstants.IGNORE_CORE_MODULES_PROPERTY, "true");
  108. }
  109. }
  110.  
  111. /**
  112. * @see {@link ModuleUtil#getMandatoryModules()}
  113. */
  114. @Test
  115. @Verifies(value = "should return mandatory module ids", method = "getMandatoryModules()")
  116. public void getMandatoryModules_shouldReturnMandatoryModuleIds() throws Exception {
  117. executeDataSet("org/openmrs/module/include/mandatoryModulesGlobalProperties.xml");
  118. Assert.assertEquals(1, ModuleUtil.getMandatoryModules().size());
  119. Assert.assertEquals("firstmodule", ModuleUtil.getMandatoryModules().get(0));
  120. }
  121.  
  122. /**
  123. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  124. */
  125. @Test
  126. @Verifies(value = "should allow ranged required version", method = "matchRequiredVersions(String,String)")
  127. public void matchRequiredVersions_shouldAllowRangedRequiredVersion() throws Exception {
  128. String openmrsVersion = "1.4.3";
  129. String requiredOpenmrsVersion = "1.2.3 - 1.4.4";
  130. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  131. }
  132.  
  133. /**
  134. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  135. */
  136. @Test
  137. @Verifies(value = "should allow ranged required version with wild card", method = "matchRequiredVersions(String,String)")
  138. public void matchRequiredVersions_shouldAllowRangedRequiredVersionWithWildCard() throws Exception {
  139. String openmrsVersion = "1.4.3";
  140. String requiredOpenmrsVersion = "1.2.* - 1.4.*";
  141. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  142. }
  143.  
  144. /**
  145. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  146. */
  147. @Test
  148. @Verifies(value = "should allow ranged required version with wild card on one end", method = "matchRequiredVersions(String,String)")
  149. public void matchRequiredVersions_shouldAllowRangedRequiredVersionWithWildCardOnOneEnd() throws Exception {
  150. String openmrsVersion = "1.4.3";
  151. String requiredOpenmrsVersion = "1.2.3 - 1.4.*";
  152. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  153. requiredOpenmrsVersion = "1.4.* - 1.4.5";
  154. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  155. }
  156.  
  157. /**
  158. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  159. */
  160. @Test
  161. @Verifies(value = "should allow single entry for required version", method = "matchRequiredVersions(String,String)")
  162. public void matchRequiredVersions_shouldAllowSingleEntryForRequiredVersion() throws Exception {
  163. String openmrsVersion = "1.4.3";
  164. String requiredOpenmrsVersion = "1.4.2";
  165. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  166. }
  167.  
  168. /**
  169. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  170. */
  171. @Test
  172. @Verifies(value = "should allow required version with wild card", method = "matchRequiredVersions(String,String)")
  173. public void matchRequiredVersions_shouldAllowRequiredVersionWithWildCard() throws Exception {
  174. String openmrsVersion = "1.4.3";
  175. String requiredOpenmrsVersion = "1.4.*";
  176. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  177. }
  178.  
  179. /**
  180. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  181. */
  182. @Test
  183. @Verifies(value = "should allow non numeric character required version", method = "matchRequiredVersions(String,String)")
  184. public void matchRequiredVersions_shouldAllowNonNumericCharacterRequiredVersion() throws Exception {
  185. String openmrsVersion = "1.4.3";
  186. String requiredOpenmrsVersion = "1.4.3a";
  187. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  188. }
  189.  
  190. /**
  191. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  192. */
  193. @Test
  194. @Verifies(value = "should allow ranged non numeric character required version", method = "matchRequiredVersions(String,String)")
  195. public void matchRequiredVersions_shouldAllowRangedNonNumericCharacterRequiredVersion() throws Exception {
  196. String openmrsVersion = "1.4.3";
  197. String requiredOpenmrsVersion = "1.4.1a - 1.4.3a";
  198. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  199. }
  200.  
  201. /**
  202. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  203. */
  204. @Test
  205. @Verifies(value = "should allow ranged non numeric character with wild card", method = "matchRequiredVersions(String,String)")
  206. public void matchRequiredVersions_shouldAllowRangedNonNumericCharacterWithWildCard() throws Exception {
  207. String openmrsVersion = "1.4.3";
  208. String requiredOpenmrsVersion = "1.3.*a - 1.4.*a";
  209. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  210. }
  211.  
  212. /**
  213. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  214. */
  215. @Test
  216. @Verifies(value = "should allow ranged non numeric character with wild card on one end", method = "matchRequiredVersions(String,String)")
  217. public void matchRequiredVersions_shouldAllowRangedNonNumericCharacterWithWildCardOnOneEnd() throws Exception {
  218. String openmrsVersion = "1.4.3";
  219. String requiredOpenmrsVersion = "1.2.3 - 1.4.*a";
  220. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  221. requiredOpenmrsVersion = "1.4.*a - 1.4.5a";
  222. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  223. }
  224.  
  225. /**
  226. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  227. */
  228. @Test
  229. @Verifies(value = "should return false when openmrs version beyond wild card range", method = "matchRequiredVersions(String,String)")
  230. public void matchRequiredVersions_shouldReturnFalseWhenOpenmrsVersionBeyondWildCardRange() throws Exception {
  231. String openmrsVersion = "1.4.3";
  232. String requiredOpenmrsVersion = "1.3.*";
  233. Assert.assertFalse(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  234. requiredOpenmrsVersion = "1.5.*";
  235. Assert.assertFalse(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  236. }
  237.  
  238. /**
  239. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  240. */
  241. @Test
  242. @Verifies(value = "should return false when required version beyond openmrs version", method = "matchRequiredVersions(String,String)")
  243. public void matchRequiredVersions_shouldReturnFalseWhenRequiredVersionBeyondOpenmrsVersion() throws Exception {
  244. String openmrsVersion = "1.4.3";
  245. String requiredOpenmrsVersion = "1.5.*";
  246. Assert.assertFalse(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  247. }
  248.  
  249. /**
  250. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  251. */
  252. @Test
  253. @Verifies(value = "should return false when required version with wild card beyond openmrs version", method = "matchRequiredVersions(String,String)")
  254. public void matchRequiredVersions_shouldReturnFalseWhenRequiredVersionWithWildCardBeyondOpenmrsVersion()
  255. throws Exception {
  256. String openmrsVersion = "1.4.3";
  257. String requiredOpenmrsVersion = "1.5.* - 1.6.*";
  258. Assert.assertFalse(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  259. }
  260.  
  261. /**
  262. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  263. */
  264. @Test
  265. @Verifies(value = "should return false when required version with wild card on one end beyond openmrs version", method = "matchRequiredVersions(String,String)")
  266. public void matchRequiredVersions_shouldReturnFalseWhenRequiredVersionWithWildCardOnOneEndBeyondOpenmrsVersion()
  267. throws Exception {
  268. String openmrsVersion = "1.4.3";
  269. String requiredOpenmrsVersion = "1.4.5 - 1.5.*";
  270. Assert.assertFalse(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  271. requiredOpenmrsVersion = "1.5.* - 1.6.0";
  272. Assert.assertFalse(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  273. }
  274.  
  275. /**
  276. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  277. */
  278. @Test
  279. @Verifies(value = "should return false when single entry required version beyond openmrs version", method = "matchRequiredVersions(String,String)")
  280. public void matchRequiredVersions_shouldReturnFalseWhenSingleEntryRequiredVersionBeyondOpenmrsVersion() throws Exception {
  281. String openmrsVersion = "1.4.3";
  282. String requiredOpenmrsVersion = "1.5.0";
  283. Assert.assertFalse(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  284. }
  285.  
  286. /**
  287. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  288. */
  289. @Test
  290. @Verifies(value = "should allow release type in the version", method = "matchRequiredVersions(String,String)")
  291. public void matchRequiredVersions_shouldAllowReleaseTypeInTheVersion() throws Exception {
  292. String openmrsVersion = "1.4.3";
  293. String requiredOpenmrsVersion = "1.4.1-dev - 1.5.*-alpha";
  294. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  295. requiredOpenmrsVersion = "1.5.*-dev - 1.6.0-dev";
  296. Assert.assertFalse(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  297. }
  298.  
  299. /**
  300. * @see {@link ModuleUtil#matchRequiredVersions(String,String)}
  301. */
  302. @Test
  303. @Verifies(value = "should handle the special-case of '-SNAPSHOT' nicely.", method = "matchRequiredVersions(String,String)")
  304. public void matchRequiredVersions_handleTheSpecialcaseOfSNAPSHOTNicely() throws Exception {
  305. String openmrsVersion = "1.9.2";
  306. String requiredOpenmrsVersion = "1.9.2-SNAPSHOT";
  307. Assert.assertTrue(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  308. requiredOpenmrsVersion = "1.1.10-1.9.2-SNAPSHOT";
  309. Assert.assertFalse(ModuleUtil.matchRequiredVersions(openmrsVersion, requiredOpenmrsVersion));
  310. }
  311.  
  312. /**
  313. * @see {@link ModuleUtil#getPathForResource(Module,String)}
  314. */
  315. @Test
  316. @Verifies(value = "should handle ui springmvc css ui dot css example", method = "getPathForResource(Module,String)")
  317. public void getPathForResource_shouldHandleUiSpringmvcCssUiDotCssExample() throws Exception {
  318. Module module = new Module("Unit test");
  319. module.setModuleId("ui.springmvc");
  320. String path = "/ui/springmvc/css/ui.css";
  321. Assert.assertEquals("/css/ui.css", ModuleUtil.getPathForResource(module, path));
  322. }
  323.  
  324. /**
  325. * @see {@link ModuleUtil#getModuleForPath(String)}
  326. */
  327. @Test
  328. @Verifies(value = "should handle ui springmvc css ui dot css when ui dot springmvc module is running", method = "getModuleForPath(String)")
  329. public void getModuleForPath_shouldHandleUiSpringmvcCssUiDotCssWhenUiDotSpringmvcModuleIsRunning() throws Exception {
  330. ModuleFactory.getStartedModulesMap().clear();
  331. Module module = new Module("For Unit Test");
  332. module.setModuleId("ui.springmvc");
  333. ModuleFactory.getStartedModulesMap().put(module.getModuleId(), module);
  334.  
  335. String path = "/ui/springmvc/css/ui.css";
  336. Assert.assertEquals(module, ModuleUtil.getModuleForPath(path));
  337. }
  338.  
  339. /**
  340. * @see {@link ModuleUtil#getModuleForPath(String)}
  341. */
  342. @Test
  343. @Verifies(value = "should handle ui springmvc css ui dot css when ui module is running", method = "getModuleForPath(String)")
  344. public void getModuleForPath_shouldHandleUiSpringmvcCssUiDotCssWhenUiModuleIsRunning() throws Exception {
  345. ModuleFactory.getStartedModulesMap().clear();
  346. Module module = new Module("For Unit Test");
  347. module.setModuleId("ui");
  348. ModuleFactory.getStartedModulesMap().put(module.getModuleId(), module);
  349.  
  350. String path = "/ui/springmvc/css/ui.css";
  351. Assert.assertEquals(module, ModuleUtil.getModuleForPath(path));
  352. }
  353.  
  354. /**
  355. * @see {@link ModuleUtil#getModuleForPath(String)}
  356. */
  357. @Test
  358. @Verifies(value = "should return null for ui springmvc css ui dot css when no relevant module is running", method = "getModuleForPath(String)")
  359. public void getModuleForPath_shouldReturnNullForUiSpringmvcCssUiDotCssWhenNoRelevantModuleIsRunning() throws Exception {
  360. ModuleFactory.getStartedModulesMap().clear();
  361. String path = "/ui/springmvc/css/ui.css";
  362. Assert.assertNull(ModuleUtil.getModuleForPath(path));
  363. }
  364.  
  365. /**
  366. * @see {@link ModuleUtil#checkRequiredVersion(String, String)}
  367. */
  368. @Test(expected = ModuleException.class)
  369. @Verifies(value = "should throw ModuleException if openmrs version beyond wild card range", method = "checkRequiredVersion(String, String)")
  370. public void checkRequiredVersion_shouldThrowModuleExceptionIfOpenmrsVersionBeyondWildCardRange() throws Exception {
  371. String openmrsVersion = "1.4.3";
  372. String requiredOpenmrsVersion = "1.3.*";
  373. ModuleUtil.checkRequiredVersion(openmrsVersion, requiredOpenmrsVersion);
  374. }
  375.  
  376. /**
  377. * @see {@link ModuleUtil#checkRequiredVersion(String, String)}
  378. */
  379. @Test(expected = ModuleException.class)
  380. @Verifies(value = "should throw ModuleException if openmrs version and required version are equal ", method = "checkRequiredVersion(String, String)")
  381. public void checkRequiredVersion_shouldThrowModuleExceptionIfOpenmrsVersionAndRequireVersionAreEqual() throws Exception {
  382. String openmrsVersion = "1.9.2-SNAPSHOT";
  383. String requiredOpenmrsVersion = "1.9.2-SNAPSHOT";
  384. ModuleUtil.checkRequiredVersion(openmrsVersion, requiredOpenmrsVersion);
  385. }
  386.  
  387. /**
  388. * @see {@link ModuleUtil#checkRequiredVersion(String, String)}
  389. */
  390. @Test(expected = ModuleException.class)
  391. @Verifies(value = "should throw ModuleException if required version beyond openmrs version", method = "checkRequiredVersion(String, String)")
  392. public void checkRequiredVersion_shouldThrowModuleExceptionIfRequiredVersionBeyondOpenmrsVersion() throws Exception {
  393. String openmrsVersion = "1.4.3";
  394. String requiredOpenmrsVersion = "1.5.*";
  395. ModuleUtil.checkRequiredVersion(openmrsVersion, requiredOpenmrsVersion);
  396. }
  397.  
  398. /**
  399. * @see {@link ModuleUtil#checkRequiredVersion(String, String)}
  400. */
  401. @Test(expected = ModuleException.class)
  402. @Verifies(value = "should throw ModuleException if required version with wild card beyond openmrs version", method = "checkRequiredVersion(String, String)")
  403. public void checkRequiredVersion_shouldThrowModuleExceptionIfRequiredVersionWithWildCardBeyondOpenmrsVersion()
  404. throws Exception {
  405. String openmrsVersion = "1.4.3";
  406. String requiredOpenmrsVersion = "1.5.* - 1.6.*";
  407. ModuleUtil.checkRequiredVersion(openmrsVersion, requiredOpenmrsVersion);
  408. }
  409.  
  410. /**
  411. * @see {@link ModuleUtil#checkRequiredVersion(String, String)}
  412. */
  413. @Test(expected = ModuleException.class)
  414. @Verifies(value = "should throw ModuleException if required version with wild card on one end beyond openmrs version", method = "checkRequiredVersion(String, String)")
  415. public void checkRequiredVersion_shouldThrowModuleExceptionIfRequiredVersionWithWildCardOnOneEndBeyondOpenmrsVersion()
  416. throws Exception {
  417. String openmrsVersion = "1.4.3";
  418. String requiredOpenmrsVersion = "1.4.5 - 1.5.*";
  419. ModuleUtil.checkRequiredVersion(openmrsVersion, requiredOpenmrsVersion);
  420. }
  421.  
  422. /**
  423. * @see {@link ModuleUtil#checkRequiredVersion(String, String)}
  424. */
  425. @Test(expected = ModuleException.class)
  426. @Verifies(value = "should throw ModuleException if single entry required version beyond openmrs version", method = "checkRequiredVersion(String, String)")
  427. public void checkRequiredVersion_shouldThrowModuleExceptionIfSingleEntryRequiredVersionBeyondOpenmrsVersion()
  428. throws Exception {
  429. String openmrsVersion = "1.4.3";
  430. String requiredOpenmrsVersion = "1.5.0";
  431. ModuleUtil.checkRequiredVersion(openmrsVersion, requiredOpenmrsVersion);
  432. }
  433.  
  434. /**
  435. * @see {@link ModuleUtil#compareVersion(String,String)}
  436. */
  437. @Test
  438. @Verifies(value = "should correctly comparing two version numbers", method = "compareVersion(String,String)")
  439. public void compareVersion_shouldCorrectlyComparingTwoVersionNumbers() throws Exception {
  440. String olderVersion = "2.1.1";
  441. String newerVersion = "2.1.10";
  442. Assert.assertTrue(ModuleUtil.compareVersion(olderVersion, newerVersion) < 0);
  443. }
  444.  
  445. /**
  446. * @see {@link ModuleUtil#compareVersion(String,String)}
  447. */
  448. @Test
  449. @Verifies(value = "treat SNAPSHOT as earliest version", method = "compareVersion(String,String)")
  450. public void compareVersion_shouldTreatSNAPSHOTAsEarliestVersion() throws Exception {
  451. String olderVersion = "1.8.3";
  452. String newerVersion = "1.8.4-SNAPSHOT";
  453. Assert.assertTrue(ModuleUtil.compareVersion(newerVersion, olderVersion) > 0);
  454. //should still return the correct value if the arguments are switched
  455. Assert.assertTrue(ModuleUtil.compareVersion(olderVersion, newerVersion) < 0);
  456. }
  457.  
  458. /**
  459. * @see {@link ModuleUtil#getModuleRepository()}
  460. */
  461. @Test
  462. @Verifies(value = "should use the runtime property as the first choice if specified", method = "getModuleRepository()")
  463. public void getModuleRepository_shouldUseTheRuntimePropertyAsTheFirstChoiceIfSpecified() throws Exception {
  464. final String folderName = "test_folder";
  465. File testFolder = null;
  466. runtimeProperties.setProperty(ModuleConstants.REPOSITORY_FOLDER_RUNTIME_PROPERTY, folderName);
  467. try {
  468. testFolder = ModuleUtil.getModuleRepository();
  469. Assert.assertNotNull(testFolder);
  470. Assert.assertEquals(new File(OpenmrsUtil.getApplicationDataDirectory(), folderName), ModuleUtil
  471. .getModuleRepository());
  472. }
  473. finally {
  474. if (testFolder != null)
  475. testFolder.deleteOnExit();
  476. runtimeProperties.setProperty(ModuleConstants.REPOSITORY_FOLDER_RUNTIME_PROPERTY, "");
  477. }
  478. }
  479.  
  480. /**
  481. * @see {@link ModuleUtil#getModuleRepository()}
  482. */
  483. @Test
  484. @Verifies(value = "should return the correct file if the runtime property is an absolute path", method = "getModuleRepository()")
  485. public void getModuleRepository_shouldReturnTheCorrectFileIfTheRuntimePropertyIsAnAbsolutePath() throws Exception {
  486. final File expectedModuleRepo = new File(System.getProperty("java.io.tmpdir"), "test_folder");
  487. expectedModuleRepo.mkdirs();
  488.  
  489. runtimeProperties.setProperty(ModuleConstants.REPOSITORY_FOLDER_RUNTIME_PROPERTY, expectedModuleRepo
  490. .getAbsolutePath());
  491. try {
  492. File testFolder = ModuleUtil.getModuleRepository();
  493. Assert.assertNotNull(testFolder);
  494. Assert.assertEquals(expectedModuleRepo, testFolder);
  495. }
  496. finally {
  497. runtimeProperties.setProperty(ModuleConstants.REPOSITORY_FOLDER_RUNTIME_PROPERTY, "");
  498. expectedModuleRepo.deleteOnExit();
  499. }
  500. }
  501. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement