package org.org.eclipse.dws.ui.maven2.internal.xml;
import java.io.InputStream;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.junit.Assert;
import org.junit.Test;
import org.org.eclipse.dws.core.internal.PomFileSaxHandler;
import org.org.eclipse.dws.core.internal.model.Pom;
import org.org.eclipse.dws.core.internal.model.PomPropertiesSet;
import org.org.eclipse.dws.core.internal.model.PomProperty;
import org.org.eclipse.dws.core.internal.xml.IXmlPomFileBinder;
import org.org.eclipse.dws.core.internal.xml.StaxPomFileBinder;
public class IXmlPomFileBinderTest {
/**
* This test is meant to be pruned when Sax handler is completely deprecated.
*/
@Test
public void testPropertiesParsing() {
try {
// New Stax Binder parsing
InputStream inputStream2 = Thread.currentThread().getContextClassLoader().getResourceAsStream("test-pom.xml");
IXmlPomFileBinder xmlPomFileBinder = new StaxPomFileBinder();
final Pom newResult = xmlPomFileBinder.parsePomFile(inputStream2);
PomProperty property = new PomProperty("prop1", "prop1Value");
PomProperty property2 = new PomProperty("prop2", "prop2Value", "prop4Value");
PomProperty property3 = new PomProperty("prop3", "prop5Value");
PomPropertiesSet expectedProperties = new PomPropertiesSet();
expectedProperties.addProperty(property);
expectedProperties.addProperty(property2);
expectedProperties.addProperty(property3);
// ASSERT THAT RESULT IS THE SAME
Assert.assertEquals(expectedProperties, newResult.getProperties());
} catch (Exception e) {
Assert.fail("An exception should not occur there: " + e.getMessage());
}
}
@SuppressWarnings("deprecation")
@Test
public void testStaxParserForNonRegression() {
try {
// Former Sax Handler parsing
InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("test-pom.xml");
PomFileSaxHandler pomFileSaxHandler = new PomFileSaxHandler();
SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
parser.parse(inputStream, pomFileSaxHandler);
final Pom formerResult = pomFileSaxHandler.getPomParsingDescription();
// New Stax Binder parsing
InputStream inputStream2 = Thread.currentThread().getContextClassLoader().getResourceAsStream("test-pom.xml");
IXmlPomFileBinder xmlPomFileBinder = new StaxPomFileBinder();
final Pom newResult = xmlPomFileBinder.parsePomFile(inputStream2);
// ASSERT THAT RESULT IS THE SAME
Assert.assertEquals(formerResult, newResult);
Assert.assertEquals(formerResult.getParentPom(), newResult.getParentPom());
Assert.assertEquals(formerResult.toString(), newResult.toString());
Assert.assertEquals(formerResult.getRepositories(), newResult.getRepositories());
} catch (Exception e) {
Assert.fail("An exception should not occur there: " + e.getMessage());
}
}
}