In progress: [ Issue 40 ] Add support for import resolution across multiple folders
https://code.google.com/p/protobuf-dt/issues/detail?id=40

Cleaning up tests.
diff --git a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/ImportUriFixer_fixUri_Test.java b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/ImportUriFixer_fixUri_Test.java
index b17ba32..d16bb57 100644
--- a/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/ImportUriFixer_fixUri_Test.java
+++ b/com.google.eclipse.protobuf.test/src/com/google/eclipse/protobuf/scoping/ImportUriFixer_fixUri_Test.java
@@ -11,7 +11,6 @@
 import static org.eclipse.emf.common.util.URI.createURI;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.*;
 
 import org.eclipse.emf.common.util.URI;
 import org.junit.Before;
@@ -25,32 +24,46 @@
 public class ImportUriFixer_fixUri_Test {
 
   private URI resourceUri;
-  private ResourceChecker resourceChecker;
+  private ResourceCheckerStub resourceChecker;
   private ImportUriFixer fixer;
 
   @Before public void setUp() {
-    resourceUri = createURI("platform:/resource/testing/src/test.proto");
-    resourceChecker = mock(ResourceChecker.class);
+    resourceUri = createURI("platform:/resource/src/proto/person.proto");
+    resourceChecker = new ResourceCheckerStub();
+    resourceChecker.resourceShouldAlwaysExist = true;
     fixer = new ImportUriFixer();
   }
 
   @Test public void should_fix_import_URI_if_missing_scheme() {
-    String expected = "platform:/resource/testing/src/folder1/test.proto";
-    when(resourceChecker.resourceExists(expected)).thenReturn(true);
-    String fixed = fixer.fixUri("folder1/test.proto", resourceUri, resourceChecker);
-    assertThat(fixed, equalTo(expected));  
+    String uri = fixer.fixUri("folder1/address.proto", resourceUri, resourceChecker);
+    assertThat(uri, equalTo("platform:/resource/src/proto/folder1/address.proto"));  
   }
 
   @Test public void should_not_fix_import_URI_if_not_missing_scheme() {
-    String importUri = "platform:/resource/testing/src/folder1/test.proto";
-    String fixed = fixer.fixUri(importUri, resourceUri, resourceChecker);
-    assertThat(fixed, equalTo(importUri));
+    String originalUri = "platform:/resource/src/proto/folder1/address.proto";
+    String uri = fixer.fixUri(originalUri, resourceUri, resourceChecker);
+    assertThat(uri, equalTo(originalUri));
   }
   
   @Test public void should_fix_import_URI_even_if_overlapping_folders_with_resource_URI() {
-    String expected = "platform:/resource/testing/src/folder1/test.proto";
-    when(resourceChecker.resourceExists(expected)).thenReturn(true);
-    String fixed = fixer.fixUri("testing/src/folder1/test.proto", resourceUri, resourceChecker);
-    assertThat(fixed, equalTo(expected));  
+    String uri = fixer.fixUri("src/proto/folder1/address.proto", resourceUri, resourceChecker);
+    assertThat(uri, equalTo("platform:/resource/src/proto/folder1/address.proto"));  
+  }
+
+  @Test public void should_fix_import_URI_even_if_overlapping_one_folder_only_with_resource_URI() {
+    String fixed = fixer.fixUri("src/proto/read-only/address.proto", resourceUri, resourceChecker);
+    assertThat(fixed, equalTo("platform:/resource/src/proto/read-only/address.proto"));  
+  }
+  
+  private static class ResourceCheckerStub extends ResourceChecker {
+    boolean resourceShouldAlwaysExist;
+    
+    ResourceCheckerStub() {
+      super(null);
+    }
+
+    @Override boolean resourceExists(String uri) {
+      return resourceShouldAlwaysExist;
+    }
   }
 }