| package org.robolectric.internal.bytecode; |
| |
| import org.junit.Test; |
| import org.robolectric.shadows.ShadowCursorAdapter; |
| |
| import static org.assertj.core.api.Assertions.assertThat; |
| |
| public class ShadowMapTest { |
| @Test public void shouldLookUpShadowClassesByNamingConvention() throws Exception { |
| ShadowMap map = new ShadowMap.Builder().build(); |
| assertThat(map.get(CursorAdapter.class)).isNull(); |
| } |
| |
| @Test public void shouldNotReturnMismatchedClassesJustBecauseTheSimpleNameMatches() throws Exception { |
| ShadowMap map = new ShadowMap.Builder().build(); |
| assertThat(map.get(android.widget.CursorAdapter.class).shadowClassName).isEqualTo(ShadowCursorAdapter.class.getName()); |
| } |
| |
| @Test public void getInvalidatedClasses_disjoin() { |
| ShadowMap current = new ShadowMap.Builder().addShadowClass("a1", "a2", true, false, false).build(); |
| ShadowMap previous = new ShadowMap.Builder().addShadowClass("b1", "b2", true, false, false).build(); |
| |
| assertThat(current.getInvalidatedClasses(previous)).containsOnly("a1", "b1"); |
| } |
| |
| @Test public void getInvalidatedClasses_overlap() { |
| ShadowMap current = new ShadowMap.Builder() |
| .addShadowClass("a1", "a2", true, false, false) |
| .addShadowClass("c1", "c2", true, false, false) |
| .build(); |
| ShadowMap previous = new ShadowMap.Builder() |
| .addShadowClass("a1", "a2", true, false, false) |
| .addShadowClass("c1", "c3", true, false, false) |
| .build(); |
| |
| assertThat(current.getInvalidatedClasses(previous)).containsExactly("c1"); |
| } |
| |
| @Test public void equalsHashCode() throws Exception { |
| ShadowMap a = new ShadowMap.Builder().addShadowClass("a", "b", true, false, false).build(); |
| ShadowMap b = new ShadowMap.Builder().addShadowClass("a", "b", true, false, false).build(); |
| assertThat(a).isEqualTo(b); |
| assertThat(a.hashCode()).isEqualTo(b.hashCode()); |
| |
| ShadowMap c = b.newBuilder().build(); |
| assertThat(c).isEqualTo(b); |
| assertThat(c.hashCode()).isEqualTo(b.hashCode()); |
| |
| ShadowMap d = new ShadowMap.Builder().addShadowClass("a", "x", true, false, false).build(); |
| assertThat(d).isNotEqualTo(a); |
| assertThat(d.hashCode()).isNotEqualTo(b.hashCode()); |
| } |
| } |
| |
| class CursorAdapter { |
| |
| } |