blob: 57bf0d88f71d94a274455923d9e308a721c58bb7 [file] [log] [blame]
package org.codehaus.jackson.version;
import org.codehaus.jackson.*;
import org.codehaus.jackson.impl.ReaderBasedParser;
import org.codehaus.jackson.impl.WriterBasedGenerator;
import org.codehaus.jackson.io.IOContext;
import org.codehaus.jackson.util.BufferRecycler;
import org.codehaus.jackson.jaxrs.JacksonJsonProvider;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.mrbean.AbstractTypeMaterializer;
import org.codehaus.jackson.smile.SmileFactory;
import org.codehaus.jackson.smile.SmileGenerator;
import org.codehaus.jackson.smile.SmileParser;
import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;
/**
* Tests to verify [JACKSON-278]
*
* @since 1.6
*/
public class TestVersions extends main.BaseTest
{
/**
* 18-Nov-2010, tatu: Not a good to do this, but has to do, for now...
*/
private final static int MAJOR_VERSION = 1;
private final static int MINOR_VERSION = 9;
public void testCoreVersions()
{
/* 01-Sep-2010, tatu: Somewhat of a dirty hack; let's only run when specific system
* property is set; and set that flag from Ant unit test. Why? To prevent running
* from Eclipse, where this would just fail
*/
if (runsFromAnt()) {
System.out.println("Note: running version tests (FROM_ANT=true)");
assertVersion(new JsonFactory().version(), MAJOR_VERSION, MINOR_VERSION);
assertVersion(new ReaderBasedParser(getIOContext(), 0, null, null, null).version(),
MAJOR_VERSION, MINOR_VERSION);
assertVersion(new WriterBasedGenerator(getIOContext(), 0, null, null).version(),
MAJOR_VERSION, MINOR_VERSION);
} else {
System.out.println("Skipping version test (FROM_ANT=false)");
}
}
public void testMapperVersions()
{
if (runsFromAnt()) {
ObjectMapper mapper = new ObjectMapper();
assertVersion(mapper.version(), MAJOR_VERSION, MINOR_VERSION);
assertVersion(mapper.writer().version(), MAJOR_VERSION, MINOR_VERSION);
assertVersion(mapper.reader().version(), MAJOR_VERSION, MINOR_VERSION);
}
}
public void testXcVersions()
{
if (runsFromAnt()) {
assertVersion(new JaxbAnnotationIntrospector().version(), MAJOR_VERSION, MINOR_VERSION);
}
}
public void testJaxRsVersions()
{
if (runsFromAnt()) {
assertVersion(new JacksonJsonProvider().version(), MAJOR_VERSION, MINOR_VERSION);
}
}
public void testSmileVersions()
{
if (runsFromAnt()) {
assertVersion(new SmileFactory().version(), MAJOR_VERSION, MINOR_VERSION);
assertVersion(new SmileGenerator(getIOContext(), 0, 0, null, null).version(),
MAJOR_VERSION, MINOR_VERSION);
assertVersion(new SmileParser(getIOContext(), 0, 0, null, null, null, null, 0, 0, false).version(),
MAJOR_VERSION, MINOR_VERSION);
}
}
public void testMrBeanVersions()
{
if (runsFromAnt()) {
assertVersion(new AbstractTypeMaterializer().version(), MAJOR_VERSION, MINOR_VERSION);
}
}
/*
/**********************************************************
/* Helper methods
/**********************************************************
*/
private void assertVersion(Version v, int major, int minor)
{
assertFalse("Should find version information (got "+v+")", v.isUknownVersion());
assertEquals(major, v.getMajorVersion());
assertEquals(minor, v.getMinorVersion());
// 07-Jan-2011, tatus: Check patch level initially, comment out for maint versions
//assertEquals(0, v.getPatchLevel());
}
private IOContext getIOContext() {
return new IOContext(new BufferRecycler(), null, false);
}
}