Adding unit tests.
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
new file mode 100644
index 0000000..63c843e
--- /dev/null
+++ b/com.google.eclipse.protobuf.ui.test/src/com/google/eclipse/protobuf/ui/util/Properties_isPrimitive_Test.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2011 Google Inc.
+ *
+ * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse
+ * Public License v1.0 which accompanies this distribution, and is available at
+ *
+ * http://www.eclipse.org/legal/epl-v10.html
+ */
+package com.google.eclipse.protobuf.ui.util;
+
+import static org.eclipse.xtext.EcoreUtil2.getAllContentsOfType;
+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;
+import com.google.eclipse.protobuf.protobuf.Property;
+import com.google.eclipse.protobuf.protobuf.Protobuf;
+
+/**
+ * Tests for <code>{@link Properties#isPrimitive(Property)}</code>.
+ *
+ * @author alruiz@google.com (Alex Ruiz)
+ */
+public class Properties_isPrimitive_Test {
+
+  @Rule public XtextRule xtext = new XtextRule();
+
+  private Properties properties;
+
+  @Before public void setUp() {
+    properties = xtext.getInstanceOf(Properties.class);
+  }
+
+  @Test public void should_return_true_if_property_is_primitive() {
+    StringBuilder proto = new StringBuilder();
+    proto.append("message Primitives {             ")
+         .append("  optional float float_1 = 1;    ")
+         .append("  optional int32 int32_1 = 2;    ")
+         .append("  optional int64 int64_1 = 3;    ")
+         .append("  optional uint32 uint32_1 = 4;  ")
+         .append("  optional uint64 uint64_1 = 5;  ")
+         .append("  optional sint32 sint32_1 = 6;  ")
+         .append("  optional sint64 sint64_1 = 7;  ")
+         .append("  optional fixed32 fixed32_1 = 8;")
+         .append("  optional fixed64 fixed64_1 = 9;")
+         .append("  optional bool bool_1 = 10;     ")
+         .append("}                                ");
+    Protobuf root = xtext.parse(proto);
+    List<Property> allProperties = getAllContentsOfType(root, Property.class);
+    for (Property p : allProperties)
+      assertThat(properties.isPrimitive(p), equalTo(true));
+  }
+
+  @Test public void should_return_false_if_property_is_not_primitive() {
+    StringBuilder proto = new StringBuilder();
+    proto.append("message Types {                  ")
+         .append("  optional string string_1 = 1;  ")
+         .append("  optional bytes bytes_1 = 2;    ")
+         .append("  optional Person person = 3;    ")
+         .append("}                                ")
+         .append("                                 ")
+         .append("message Person {                 ")
+         .append("  optional string name = 1       ")
+         .append("}                                ");
+    Protobuf root = xtext.parse(proto);
+    List<Property> allProperties = getAllContentsOfType(root, Property.class);
+    for (Property p : allProperties)
+      assertThat(properties.isPrimitive(p), equalTo(false));
+  }
+}
diff --git a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Properties.java b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Properties.java
index 5e20379..6f0523c 100644
--- a/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Properties.java
+++ b/com.google.eclipse.protobuf.ui/src/com/google/eclipse/protobuf/ui/util/Properties.java
@@ -28,6 +28,13 @@
 
   @Inject private Keywords keywords;
 
+  /**
+   * Indicates whether the type of the given property is primitive. Primitive types include: {@code double}, 
+   * {@code float}, {@code int32}, {@code int64}, {@code uint32}, {@code uint64}, {@code sint32}, {@code sint64},
+   * {@code fixed32}, {@code fixed64}, {@code sfixed32}, {@code sfixed64} and {@code bool}.
+   * @param p the given property.
+   * @return {@code true} if the type of the given property is primitive, {@code false} otherwise.
+   */
   public boolean isPrimitive(Property p) {
     AbstractTypeReference r = p.getType();
     if (!(r instanceof ScalarTypeReference)) return false;
@@ -41,7 +48,7 @@
    * @return {@code true} if the given property is of type {@code bool}, {@code false} otherwise.
    */
   public boolean isBool(Property p) {
-    return isOfScalarType(p, keywords.bool());
+    return isScalarType(p, keywords.bool());
   }
 
   /**
@@ -50,10 +57,10 @@
    * @return {@code true} if the given property is of type {@code string}, {@code false} otherwise.
    */
   public boolean isString(Property p) {
-    return isOfScalarType(p, keywords.string());
+    return isScalarType(p, keywords.string());
   }
   
-  private boolean isOfScalarType(Property p, Keyword typeKeyword) {
+  private boolean isScalarType(Property p, Keyword typeKeyword) {
     return typeKeyword.getValue().equals(typeNameOf(p));
   }