diff --git a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/Finder.java b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/Finder.java
index 42533d9..e90e253 100644
--- a/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/Finder.java
+++ b/com.google.eclipse.protobuf.junit/src/com/google/eclipse/protobuf/junit/Finder.java
@@ -33,5 +33,9 @@
     return null;
   }
   
+  public static List<Property> allProperties(Protobuf root) {
+    return getAllContentsOfType(root, Property.class);
+  }
+  
   private Finder() {}
 }
diff --git a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isPrimitive_Test.java b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isPrimitive_Test.java
index 63c843e..22d390a 100644
--- a/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isPrimitive_Test.java
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isPrimitive_Test.java
@@ -8,12 +8,10 @@
  */
 package com.google.eclipse.protobuf.ui.util;
 
-import static org.eclipse.xtext.EcoreUtil2.getAllContentsOfType;
+import static com.google.eclipse.protobuf.junit.Finder.allProperties;
 import static org.hamcrest.core.IsEqual.equalTo;
 import static org.junit.Assert.assertThat;
 
-import java.util.List;
-
 import org.junit.*;
 
 import com.google.eclipse.protobuf.junit.XtextRule;
@@ -50,8 +48,7 @@
          .append("  optional bool bool_1 = 10;     ")
          .append("}                                ");
     Protobuf root = xtext.parse(proto);
-    List<Property> allProperties = getAllContentsOfType(root, Property.class);
-    for (Property p : allProperties)
+    for (Property p : allProperties(root))
       assertThat(properties.isPrimitive(p), equalTo(true));
   }
 
@@ -67,8 +64,7 @@
          .append("  optional string name = 1       ")
          .append("}                                ");
     Protobuf root = xtext.parse(proto);
-    List<Property> allProperties = getAllContentsOfType(root, Property.class);
-    for (Property p : allProperties)
+    for (Property p : allProperties(root))
       assertThat(properties.isPrimitive(p), equalTo(false));
   }
 }
