package org.javers.core.cases; import org.javers.core.Javers; import org.javers.core.JaversBuilder; import org.javers.core.diff.Diff; import org.javers.core.diff.changetype.ValueChange; import org.junit.Test; import static org.fest.assertions.api.Assertions.assertThat; /** * see https://github.com/javers/javers/issues/250 * @author Rick Schertz */ public class Case250CharSequence { private static class AvroAddress { private final CharSequence city; private final CharSequence street; public AvroAddress(CharSequence city, CharSequence street) { this.city = city; this.street = street; } public CharSequence getCity() { return city; } public CharSequence getStreet() { return street; } } @Test public void shouldCompareTwoObjectsWithCharSequencePropertiesOfString() { //given Javers javers = JaversBuilder.javers().build(); AvroAddress oldVersion = new AvroAddress("New York", "First Avenue"); AvroAddress currentVersion = new AvroAddress("New York", "Second Avenue"); //when Diff diff = javers.compare(oldVersion, currentVersion); System.out.println(diff); //then ValueChange change = diff.getChangesByType(ValueChange.class).get(0); assertThat(diff.getChanges()).hasSize(1); assertThat(change.getPropertyName()).isEqualTo("street"); assertThat(change.getLeft()).isEqualTo(oldVersion.getStreet()); assertThat(change.getRight()).isEqualTo(currentVersion.getStreet()); } }