Index: dart/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/index/MemoryIndexStoreImplTest.java |
=================================================================== |
--- dart/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/index/MemoryIndexStoreImplTest.java (revision 30037) |
+++ dart/editor/tools/plugins/com.google.dart.engine_test/src/com/google/dart/engine/internal/index/MemoryIndexStoreImplTest.java (working copy) |
@@ -25,6 +25,8 @@ |
import com.google.dart.engine.index.Relationship; |
import com.google.dart.engine.internal.context.InstrumentedAnalysisContextImpl; |
import com.google.dart.engine.internal.element.ElementLocationImpl; |
+import com.google.dart.engine.internal.element.member.Member; |
+import com.google.dart.engine.source.DirectoryBasedSourceContainer; |
import com.google.dart.engine.source.Source; |
import com.google.dart.engine.source.SourceContainer; |
@@ -219,23 +221,59 @@ |
assertEquals(1, store.internalGetLocationCount()); |
} |
+ public void test_recordRelationship_member() throws Exception { |
+ Member member = mock(Member.class); |
+ when(member.getBaseElement()).thenReturn(elementA); |
+ // no relationships initially |
+ assertEquals(0, store.internalGetLocationCount()); |
+ // record relationship |
+ store.recordRelationship(member, relationship, location); |
+ // no location for "member" |
+ { |
+ Location[] locations = store.getRelationships(member, relationship); |
+ assertLocations(locations); |
+ } |
+ // has location for "elementA" |
+ { |
+ Location[] locations = store.getRelationships(elementA, relationship); |
+ assertLocations(locations, location); |
+ } |
+ } |
+ |
public void test_recordRelationship_noElement() throws Exception { |
store.recordRelationship(null, relationship, location); |
assertEquals(0, store.internalGetLocationCount()); |
} |
+ public void test_recordRelationship_noElementContext() throws Exception { |
+ when(elementA.getContext()).thenReturn(null); |
+ store.recordRelationship(elementA, relationship, location); |
+ assertEquals(0, store.internalGetLocationCount()); |
+ } |
+ |
+ public void test_recordRelationship_noElementSource() throws Exception { |
+ when(elementA.getSource()).thenReturn(null); |
+ store.recordRelationship(elementA, relationship, location); |
+ assertEquals(0, store.internalGetLocationCount()); |
+ } |
+ |
public void test_recordRelationship_noLocation() throws Exception { |
store.recordRelationship(elementA, relationship, null); |
assertEquals(0, store.internalGetLocationCount()); |
} |
- public void test_recordRelationship_noLocationElement() throws Exception { |
- Element elementWithoutEnclosing = mock(Element.class); |
- Location location = new Location(elementWithoutEnclosing, 0, 0); |
+ public void test_recordRelationship_noLocationContext() throws Exception { |
+ when(location.getElement().getContext()).thenReturn(null); |
store.recordRelationship(elementA, relationship, location); |
assertEquals(0, store.internalGetLocationCount()); |
} |
+ public void test_recordRelationship_noLocationSource() throws Exception { |
+ when(location.getElement().getSource()).thenReturn(null); |
+ store.recordRelationship(elementA, relationship, location); |
+ assertEquals(0, store.internalGetLocationCount()); |
+ } |
+ |
public void test_removeContext_instrumented() throws Exception { |
InstrumentedAnalysisContextImpl instrumentedContext = mock(InstrumentedAnalysisContextImpl.class); |
when(instrumentedContext.getBasis()).thenReturn(contextA); |
@@ -421,6 +459,18 @@ |
} |
} |
+ public void test_removeSources_nullContext() throws Exception { |
+ // record |
+ { |
+ store.recordRelationship(IndexConstants.UNIVERSE, relationship, location); |
+ assertEquals(1, store.internalGetLocationCount()); |
+ } |
+ // remove "null" context, should never happen - ignored |
+ SourceContainer sourceContainer = new DirectoryBasedSourceContainer("/path/"); |
+ store.removeSources(null, sourceContainer); |
+ assertEquals(1, store.internalGetLocationCount()); |
+ } |
+ |
public void test_removeSources_withDeclaration() throws Exception { |
Location locationB = mockLocation(elementB); |
Location locationC = mockLocation(elementC); |