Versioning support
diff --git a/org.eclipse.epf.common.tests/src/org/eclipse/epf/common/tests/VersionUtilTest.java b/org.eclipse.epf.common.tests/src/org/eclipse/epf/common/tests/VersionUtilTest.java
index cf65107..5465e5d 100644
--- a/org.eclipse.epf.common.tests/src/org/eclipse/epf/common/tests/VersionUtilTest.java
+++ b/org.eclipse.epf.common.tests/src/org/eclipse/epf/common/tests/VersionUtilTest.java
@@ -1,6 +1,9 @@
package org.eclipse.epf.common.tests;
+import java.io.File;
+import java.io.IOException;
import java.util.Iterator;
+import java.util.Map;
import java.util.Set;
import junit.framework.TestCase;
@@ -8,6 +11,7 @@
import org.eclipse.epf.common.serviceability.EPFVersions;
import org.eclipse.epf.common.serviceability.VersionUtil;
import org.eclipse.epf.common.serviceability.Versions;
+import org.eclipse.epf.common.utils.FileUtil;
public class VersionUtilTest extends TestCase {
@@ -31,5 +35,54 @@
public void testIsVersionCheckingEnabled() {
assertTrue(VersionUtil.isVersionCheckingEnabled());
}
+
+ public void testReadVersionsFromXMIFile() {
+ // test no-versions-in-file case
+ File xmiFile = createTestXMIFile("");
+ if (xmiFile == null) {
+ fail();
+ }
+ Map versions = VersionUtil.readVersionsFromXMIFile(xmiFile);
+ assertNull(versions);
+// xmiFile.delete();
+
+ // test epf-only case
+ xmiFile = createTestXMIFile("epf:version=\"1.0.0\"");
+ if (xmiFile == null) {
+ fail();
+ }
+ versions = VersionUtil.readVersionsFromXMIFile(xmiFile);
+ String epfVer = (String)versions.get("epf");
+ assertTrue(epfVer.equals("1.0.0"));
+// xmiFile.delete();
+
+ // test multiple versions case
+ xmiFile = createTestXMIFile("epf:version=\"1.0.0\" rmc:version=\"7.1.0\"");
+ if (xmiFile == null) {
+ fail();
+ }
+ versions = VersionUtil.readVersionsFromXMIFile(xmiFile);
+ epfVer = (String)versions.get("epf");
+ String rmcVer = (String)versions.get("rmc");
+ assertTrue(epfVer.equals("1.0.0"));
+ assertTrue(rmcVer.equals("7.1.0"));
+// xmiFile.delete();
+ }
+
+ private File createTestXMIFile(String versionAttributes) {
+ try {
+ File xmiFile = File.createTempFile("EPF_JUNIT_", ".xmi");
+ String xmiText = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
+ "\n<xmi:XMI xmi:version=\"2.0\" xmlns:xmi=\"http://www.omg.org/XMI\"" +
+ " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" +
+ " xmlns:org.eclipse.epf.uma=\"http://www.eclipse.org/epf/uma/1.0.3/uma.ecore\"" +
+ " xmlns:org.eclipse.epf.uma.resourcemanager=\"http:///org/eclipse/epf/uma/resourcemanager.ecore\" " +
+ versionAttributes + ">\n...\n</xmi:XMI>\n";
+ FileUtil.writeUTF8File(xmiFile.getAbsolutePath(), xmiText);
+ return xmiFile;
+ } catch (IOException ex) {
+ return null;
+ }
+ }
}