ServletTest: Make buildJson method more typesafe

Since Type is a raw type, the existing method doesn't actually provide
any compile time safety. All callers use either the Class<T> version
or the TypeToken<T> version; nobody depends on a raw Type.

Change-Id: I50f1504a48e5d1ffb29fb9ce2c66a41071d4c6ae
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/HostIndexServletTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/HostIndexServletTest.java
index 4bc26a2..9edfc26 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/HostIndexServletTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/HostIndexServletTest.java
@@ -38,6 +38,8 @@
 @RunWith(JUnit4.class)
 public class HostIndexServletTest extends ServletTest {
   private static final String NAME = "foo/bar/repo";
+  private static final TypeToken<Map<String, RepositoryDescription>> REPOS =
+      new TypeToken<Map<String, RepositoryDescription>>() {};
 
   @Override
   @Before
@@ -118,9 +120,7 @@
   @Test
   public void rootJson() throws Exception {
     String name = repo.getRepository().getDescription().getRepositoryName();
-    Map<String, RepositoryDescription> res = buildJson(
-        "/",
-        new TypeToken<Map<String, RepositoryDescription>>() {}.getType());
+    Map<String, RepositoryDescription> res = buildJson("/", REPOS);
 
     assertThat(res).hasSize(1);
     assertThat(res).containsKey(name);
@@ -130,9 +130,7 @@
 
   @Test
   public void fooSubdirJson() throws Exception {
-    Map<String, RepositoryDescription> res = buildJson(
-        "/foo/",
-        new TypeToken<Map<String, RepositoryDescription>>() {}.getType());
+    Map<String, RepositoryDescription> res = buildJson("/foo/", REPOS);
 
     assertThat(res).hasSize(1);
     assertThat(res).containsKey("bar/repo");
@@ -142,9 +140,7 @@
 
   @Test
   public void fooBarSubdirJson() throws Exception {
-    Map<String, RepositoryDescription> res = buildJson(
-        "/foo/bar/",
-        new TypeToken<Map<String, RepositoryDescription>>() {}.getType());
+    Map<String, RepositoryDescription> res = buildJson("/foo/bar/", REPOS);
 
     assertThat(res).hasSize(1);
     assertThat(res).containsKey("repo");
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/LogServletTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/LogServletTest.java
index 261afec..a7c9d70 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/LogServletTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/LogServletTest.java
@@ -37,7 +37,7 @@
   public void basicLog() throws Exception {
     RevCommit commit = repo.branch("HEAD").commit().create();
 
-    Log response = buildJson("/repo/+log", LOG.getType(), "");
+    Log response = buildJson("/repo/+log", LOG, "");
     assertThat(response.log).hasSize(1);
     verifyJsonCommit(response.log.get(0), commit);
     assertThat(response.log.get(0).treeDiff).isNull();
@@ -50,7 +50,7 @@
     RevCommit c1 = repo.update("master", repo.commit().add("foo", contents1));
     RevCommit c2 = repo.update("master", repo.commit().parent(c1).add("foo", contents2));
 
-    Log response = buildJson("/repo/+log/master", LOG.getType(), "&name-status=1");
+    Log response = buildJson("/repo/+log/master", LOG, "&name-status=1");
     assertThat(response.log).hasSize(2);
 
     Commit jc2 = response.log.get(0);
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/RefServletTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/RefServletTest.java
index 7d7816c..1cc33e5 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/RefServletTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/RefServletTest.java
@@ -200,9 +200,7 @@
   }
 
   private Map<String, RefJsonData> buildRefJson(String path) throws Exception {
-    return buildJson(
-        path,
-        new TypeToken<Map<String, RefJsonData>>() {}.getType());
+    return buildJson(path, new TypeToken<Map<String, RefJsonData>>() {});
   }
 
   @Test
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/ServletTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/ServletTest.java
index 83469a2..b0a1dd1 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/ServletTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/ServletTest.java
@@ -23,6 +23,7 @@
 import com.google.gson.FieldNamingPolicy;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
+import com.google.gson.reflect.TypeToken;
 
 import org.eclipse.jgit.internal.storage.dfs.DfsRepository;
 import org.eclipse.jgit.internal.storage.dfs.DfsRepositoryDescription;
@@ -30,7 +31,6 @@
 import org.eclipse.jgit.junit.TestRepository;
 import org.junit.Before;
 
-import java.lang.reflect.Type;
 import java.util.Map;
 
 /** Base class for servlet tests. */
@@ -110,12 +110,12 @@
     return buildJson(path, classOfT, "");
   }
 
-  protected <T> T buildJson(String path, Type typeOfT, String additionalQueryString)
+  protected <T> T buildJson(String path, TypeToken<T> typeOfT, String additionalQueryString)
       throws Exception {
-    return newGson().fromJson(buildJsonRaw(path, additionalQueryString), typeOfT);
+    return newGson().fromJson(buildJsonRaw(path, additionalQueryString), typeOfT.getType());
   }
 
-  protected <T> T buildJson(String path, Type typeOfT) throws Exception {
+  protected <T> T buildJson(String path, TypeToken<T> typeOfT) throws Exception {
     return buildJson(path, typeOfT, "");
   }
 
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/blame/BlameServletTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/blame/BlameServletTest.java
index a86ae83..dedbfde 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/blame/BlameServletTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/blame/BlameServletTest.java
@@ -71,6 +71,6 @@
   }
 
   private Map<String, List<RegionJsonData>> getBlameJson(String path) throws Exception {
-    return buildJson(path, new TypeToken<Map<String, List<RegionJsonData>>>() {}.getType());
+    return buildJson(path, new TypeToken<Map<String, List<RegionJsonData>>>() {});
   }
 }