/** * Criado em 22/11/2006 */ package org.objectstyle.woproject.maven2.wobootstrap.utils; import java.io.File; import java.util.List; import java.util.Properties; import org.apache.commons.io.FileUtils; import org.apache.maven.model.Dependency; import org.apache.maven.model.Model; import org.custommonkey.xmlunit.XMLTestCase; /** * @author <a href="mailto:hprange@moleque.com.br">Henrique Prange</a> */ public class TestPomGenerator extends XMLTestCase { protected PomGenerator generator; protected static final String ARTIFACT_ID = "JavaEOAccess"; protected static final String GROUP_ID = "com.webobjects"; protected static final String VERSION = "5.3"; /* * (non-Javadoc) * * @see junit.framework.TestCase#setUp() */ @Override protected void setUp() throws Exception { super.setUp(); Properties properties = new Properties(); properties.setProperty("artifactId", ARTIFACT_ID); properties.setProperty("groupId", GROUP_ID); properties.setProperty("version", VERSION); generator = new PomGenerator(properties); } public void testModelGeneration() throws Exception { Model model = generator.generateModel(); assertEquals(ARTIFACT_ID, model.getArtifactId()); assertEquals(GROUP_ID, model.getGroupId()); assertEquals(VERSION, model.getVersion()); assertEquals("4.0.0", model.getModelVersion()); } public void testModelWithDependencies() throws Exception { Model model = generator.generateModel(); List dependencies = model.getDependencies(); assertEquals(2, dependencies.size()); String[] expectedDependencies = { "JavaFoundation", "JavaEOControl" }; for (int i = 0; i < expectedDependencies.length; i++) { Dependency dependency = (Dependency) dependencies.get(i); assertEquals(GROUP_ID, dependency.getGroupId()); assertEquals(expectedDependencies[i], dependency.getArtifactId()); assertEquals(VERSION, dependency.getVersion()); } } public void testNullProperties() throws Exception { try { generator = new PomGenerator(null); fail("Must throw an IllegalArgumentException"); } catch (IllegalArgumentException exception) { assertEquals("The properties must not be null", exception.getMessage()); } } public void testWriteToFile() throws Exception { File expectedFile = FileUtils.toFile(getClass().getResource("/example.pom")); File createdFile = File.createTempFile("pom-", "xml"); createdFile.deleteOnExit(); generator.writeModel(createdFile); assertXMLEqual(FileUtils.readFileToString(expectedFile, null), FileUtils.readFileToString(createdFile, null)); } public void testWriteToNullFile() throws Exception { try { generator.writeModel(null); fail("Writing to a null file. Must throw an exception."); } catch (NullPointerException exception) { assertEquals("Cannot write to a null file.", exception.getMessage()); } } }