blob: 7e98aaa0f9695b404c2d9a90a3ad1afc0eb3abe4 [file] [log] [blame]
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 {
}