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>>>() {}); } }