blob: 51ec604846f89703fde763919a9ba4d7bb5273d5 [file] [log] [blame]
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;
import org.eclipse.epf.common.serviceability.EPFVersions;
import org.eclipse.epf.common.serviceability.VersionUtil;
import org.eclipse.epf.common.utils.FileUtil;
public class VersionUtilTest extends TestCase {
public VersionUtilTest(String name) {
super(name);
}
public void testGetAllToolIDs() {
Set toolIDs = VersionUtil.getAllToolIDs();
for (Iterator iter = toolIDs.iterator();iter.hasNext();) {
String toolID = (String)iter.next();
assertTrue(toolID.equals("epf") || toolID.equals("rmc"));
}
}
public void testGetVersions() {
EPFVersions versions = VersionUtil.getVersions(EPFVersions.TOOL_ID);
assertNotNull(versions);
}
public void testIsVersionCheckingEnabled() {
assertTrue(VersionUtil.isVersionCheckingEnabled());
}
public void testReadVersionsFromFile() {
// test no-versions-in-file case
File xmiFile = createTestXMIFile("");
if (xmiFile == null) {
fail();
}
Map versions = VersionUtil.readVersionsFromFile(xmiFile,
VersionUtil.XMI_ELEMENT_START_TAG, VersionUtil.XML_ELEMENT_END_TAG,
VersionUtil.XMI_ATTRIBUTE_TAG);
assertNull(versions);
// xmiFile.delete();
// test epf-only case
xmiFile = createTestXMIFile("epf:version=\"1.0.0\"");
if (xmiFile == null) {
fail();
}
versions = VersionUtil.readVersionsFromFile(xmiFile,
VersionUtil.XMI_ELEMENT_START_TAG, VersionUtil.XML_ELEMENT_END_TAG,
VersionUtil.XMI_ATTRIBUTE_TAG);
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.readVersionsFromFile(xmiFile,
VersionUtil.XMI_ELEMENT_START_TAG, VersionUtil.XML_ELEMENT_END_TAG,
VersionUtil.XMI_ATTRIBUTE_TAG);
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;
}
}
}