package org.javersion.object; import static org.assertj.core.api.Assertions.assertThat; import static org.javersion.object.TestUtil.properties; import static org.javersion.reflect.TypeDescriptors.getTypeDescriptor; import java.util.Map; import org.javersion.core.Persistent; import org.javersion.path.PropertyPath; import org.junit.Test; public class PropertyIgnoreTest { @Versionable public static class Ignoramus { public transient Long transientField; @VersionIgnore public Long ignoredField; public Long field; } private final ObjectSerializer<Ignoramus> serializer = new ObjectSerializer<>(Ignoramus.class); @Test public void Ignored_And_Transient_Fields() { Ignoramus ig = new Ignoramus(); ig.transientField = 123l; ig.ignoredField = 567l; ig.field = 890l; Map<PropertyPath, Object> properties = serializer.toPropertyMap(ig); assertThat(properties).isEqualTo(properties( "", Persistent.object(getTypeDescriptor(Ignoramus.class).getSimpleName()), "field", 890l )); ig = serializer.fromPropertyMap(properties); assertThat(ig.transientField).isNull(); assertThat(ig.ignoredField).isNull(); assertThat(ig.field).isEqualTo(890l); } }