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