package japicmp.test; import japicmp.cmp.JarArchiveComparator; import japicmp.cmp.JarArchiveComparatorOptions; import japicmp.model.AccessModifier; import japicmp.model.JApiClass; import japicmp.model.JApiMethod; import org.junit.BeforeClass; import org.junit.Test; import java.util.List; import static japicmp.test.util.Helper.*; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; public class LineNumberTest { private static List<JApiClass> jApiClasses; @BeforeClass public static void beforeClass() { JarArchiveComparatorOptions options = new JarArchiveComparatorOptions(); options.setAccessModifier(AccessModifier.PRIVATE); JarArchiveComparator jarArchiveComparator = new JarArchiveComparator(options); jApiClasses = jarArchiveComparator.compare(getArchive("japicmp-test-v1.jar"), getArchive("japicmp-test-v2.jar")); } @Test public void testLineNumberDoesNotChange() { JApiClass jApiClass = getJApiClass(jApiClasses, LineNumbers.class.getName()); JApiMethod jApiMethod = getJApiMethod(jApiClass.getMethods(), "lineNumberDoesNotChange"); assertThat(jApiMethod.getOldLineNumber().isPresent(), is(true)); assertThat(jApiMethod.getOldLineNumber().get(), is(7)); assertThat(jApiMethod.geNewLineNumber().isPresent(), is(true)); assertThat(jApiMethod.geNewLineNumber().get(), is(7)); } @Test public void testLineNumberChanges() { JApiClass jApiClass = getJApiClass(jApiClasses, LineNumbers.class.getName()); JApiMethod jApiMethod = getJApiMethod(jApiClass.getMethods(), "lineNumberChanges"); assertThat(jApiMethod.getOldLineNumber().isPresent(), is(true)); assertThat(jApiMethod.getOldLineNumber().get(), is(11)); assertThat(jApiMethod.geNewLineNumber().isPresent(), is(true)); assertThat(jApiMethod.geNewLineNumber().get(), is(12)); } @Test public void testMethodRemoved() { JApiClass jApiClass = getJApiClass(jApiClasses, LineNumbers.class.getName()); JApiMethod jApiMethod = getJApiMethod(jApiClass.getMethods(), "methodRemoved"); assertThat(jApiMethod.getOldLineNumber().isPresent(), is(true)); assertThat(jApiMethod.getOldLineNumber().get(), is(15)); assertThat(jApiMethod.geNewLineNumber().isPresent(), is(false)); } @Test public void testMethodAdded() { JApiClass jApiClass = getJApiClass(jApiClasses, LineNumbers.class.getName()); JApiMethod jApiMethod = getJApiMethod(jApiClass.getMethods(), "methodAdded"); assertThat(jApiMethod.getOldLineNumber().isPresent(), is(false)); assertThat(jApiMethod.geNewLineNumber().isPresent(), is(true)); assertThat(jApiMethod.geNewLineNumber().get(), is(16)); } }