Jdk8HandlersStdImplTest.java

package tools.jackson.databind.ext.jdk8;

import org.junit.jupiter.api.Test;

import tools.jackson.databind.testutil.DatabindTestUtil;
import tools.jackson.databind.util.ClassUtil;

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

// [modules-base#355]: built-in JDK 8 handlers must be recognized as standard
// implementations, so that optimization modules (like Blackbird) do not revert
// optimized properties to reflection when one of these handlers is resolved.
public class Jdk8HandlersStdImplTest
    extends DatabindTestUtil
{
    @Test
    public void jdk8HandlersMarkedAsStdImpl() {
        Class<?>[] handlers = new Class<?>[] {
                Jdk8OptionalDeserializer.class,
                OptionalIntDeserializer.class,
                OptionalLongDeserializer.class,
                OptionalDoubleDeserializer.class,
                Jdk8OptionalSerializer.class,
                OptionalIntSerializer.class,
                OptionalLongSerializer.class,
                OptionalDoubleSerializer.class,
                Jdk8StreamSerializer.class,
                IntStreamSerializer.class,
                LongStreamSerializer.class,
                DoubleStreamSerializer.class,
        };
        for (Class<?> handler : handlers) {
            assertTrue(ClassUtil.isJacksonStdImpl(handler),
                    "Expected @JacksonStdImpl on "+handler.getName());
        }
    }
}