@Test public void shouldCompareInterfaces() throws Exception { Comparator<Object> comparator = new InstanceComparator<>(I1.class, I2.class); assertThat(comparator.compare(c1, c1), is(0)); assertThat(comparator.compare(c1, c2), is(0)); assertThat(comparator.compare(c2, c1), is(0)); assertThat(comparator.compare(c1, c3), is(-1)); assertThat(comparator.compare(c3, c1), is(1)); assertThat(comparator.compare(c3, c4), is(0)); }
@Test public void shouldCompareMix() throws Exception { Comparator<Object> comparator = new InstanceComparator<>(I1.class, C3.class); assertThat(comparator.compare(c1, c1), is(0)); assertThat(comparator.compare(c3, c4), is(-1)); assertThat(comparator.compare(c3, null), is(-1)); assertThat(comparator.compare(c4, null), is(0)); }
@Test public void shouldCompareClasses() throws Exception { Comparator<Object> comparator = new InstanceComparator<>(C1.class, C2.class); assertThat(comparator.compare(c1, c1), is(0)); assertThat(comparator.compare(c1, c2), is(-1)); assertThat(comparator.compare(c2, c1), is(1)); assertThat(comparator.compare(c2, c3), is(-1)); assertThat(comparator.compare(c2, c4), is(-1)); assertThat(comparator.compare(c3, c4), is(0)); }
CompoundComparator<Method> comparator = new CompoundComparator<Method>(); comparator.addComparator(new ConvertingComparator<Method, Annotation>( new InstanceComparator<Annotation>( Around.class, Before.class, After.class, AfterReturning.class, AfterThrowing.class), new Converter<Method, Annotation>() {