package com.fasterxml.jackson.databind.introspect; import com.fasterxml.jackson.annotation.Nulls; import com.fasterxml.jackson.databind.*; public class PropertyMetadataTest extends BaseMapTest { public void testPropertyName() { PropertyName name = PropertyName.NO_NAME; assertFalse(name.hasSimpleName()); assertFalse(name.hasNamespace()); assertSame(name, name.internSimpleName()); assertSame(name, name.withSimpleName(null)); assertSame(name, name.withSimpleName("")); assertSame(name, name.withNamespace(null)); assertEquals("", name.toString()); assertTrue(name.isEmpty()); assertFalse(name.hasSimpleName("foo")); // just to trigger it, ensure to exception name.hashCode(); PropertyName newName = name.withNamespace(""); assertNotSame(name, newName); assertTrue(name.equals(name)); assertFalse(name.equals(newName)); assertFalse(newName.equals(name)); name = name.withSimpleName("foo"); assertEquals("foo", name.toString()); assertTrue(name.hasSimpleName("foo")); assertFalse(name.isEmpty()); newName = name.withNamespace("ns"); assertEquals("{ns}foo", newName.toString()); assertFalse(newName.equals(name)); assertFalse(name.equals(newName)); // just to trigger it, ensure to exception name.hashCode(); } public void testPropertyMetadata() { PropertyMetadata md = PropertyMetadata.STD_OPTIONAL; assertNull(md.getValueNulls()); assertNull(md.getContentNulls()); assertNull(md.getDefaultValue()); assertEquals(Boolean.FALSE, md.getRequired()); md = md.withNulls(Nulls.AS_EMPTY, Nulls.FAIL); assertEquals(Nulls.AS_EMPTY, md.getValueNulls()); assertEquals(Nulls.FAIL, md.getContentNulls()); assertFalse(md.hasDefaultValue()); assertSame(md, md.withDefaultValue(null)); assertSame(md, md.withDefaultValue("")); md = md.withDefaultValue("foo"); assertEquals("foo", md.getDefaultValue()); assertTrue(md.hasDefaultValue()); assertSame(md, md.withDefaultValue("foo")); md = md.withDefaultValue(null); assertFalse(md.hasDefaultValue()); assertNull(md.getDefaultValue()); md = md.withRequired(null); assertNull(md.getRequired()); assertFalse(md.isRequired()); md = md.withRequired(Boolean.TRUE); assertTrue(md.isRequired()); assertSame(md, md.withRequired(Boolean.TRUE)); md = md.withRequired(null); assertNull(md.getRequired()); assertFalse(md.isRequired()); assertFalse(md.hasIndex()); md = md.withIndex(Integer.valueOf(3)); assertTrue(md.hasIndex()); assertEquals(Integer.valueOf(3), md.getIndex()); } }