ComponentVersionsTest.java

package tools.jackson.core.unittest;

import java.io.*;

import org.junit.jupiter.api.Test;

import tools.jackson.core.*;
import tools.jackson.core.json.JsonFactory;
import tools.jackson.core.json.PackageVersion;

import static org.junit.jupiter.api.Assertions.assertEquals;

/**
 * Tests to verify functioning of {@link Version} class.
 */
class ComponentVersionsTest
    extends JacksonCoreTestBase
{
    @Test
    void coreVersions() throws Exception
    {
        final JsonFactory f = new JsonFactory();
        assertVersion(f.version());
        try (JsonParser jp =  f.createParser(ObjectReadContext.empty(),
                new StringReader("true"))) {
            assertVersion(jp.version());
        }
        try (JsonGenerator jg = f.createGenerator(ObjectWriteContext.empty(),
                new ByteArrayOutputStream())) {
            assertVersion(jg.version());
        }
    }

    @Test
    void equality() {
        Version unk = Version.unknownVersion();
        assertEquals("0.0.0", unk.toString());
        assertEquals("//0.0.0", unk.toFullString());
        assertEquals(unk, unk);

        Version other = new Version(2, 8, 4, "",
                "groupId", "artifactId");
        assertEquals("2.8.4", other.toString());
        assertEquals("groupId/artifactId/2.8.4", other.toFullString());

        // [core#1141]: Avoid NPE for snapshot-info
        Version unk2 = new Version(0, 0, 0, null, null, null);
        assertEquals(unk, unk2);
    }

    @Test
    void misc() {
        Version unk = Version.unknownVersion();
        int hash = unk.hashCode();
        // Happens to be 0 at this point (Jackson 2.16)
        assertEquals(0, hash);
    }

    /*
    /**********************************************************************
    /* Helper methods
    /**********************************************************************
     */

    private void assertVersion(Version v)
    {
        assertEquals(PackageVersion.VERSION, v);
    }
}