Clean up test "load resources" methods and classes

There is a big mix of different "load Resources" from different libraries
depending on where you were and what type of resource you want. Now there is a
clear hirarchy:

ResourceUtils:
  for use in actual (non-test) code, reads a file from a context directory

TestDataHelper (uses ResourceUtils):
  for use in tests, reads a file from a context directory + "/testdata". Also
  caches the resource so calling it multiple times with the same file will
  not read the file multiple times.

Library specific helpers (e.g. ToolsTestData) (uses TestDataHelper):
  for use in that library's tests only, reads from a specific testdata directory.

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=177027533
This commit is contained in:
guyben 2017-11-27 09:30:46 -08:00 committed by jianglai
parent bbe2584da4
commit 95647528b8
12 changed files with 66 additions and 75 deletions

View file

@ -14,11 +14,8 @@
package google.registry.tools.server;
import com.google.common.collect.ImmutableMap;
import com.google.common.io.ByteSource;
import com.google.common.io.Resources;
import google.registry.testing.TestDataHelper;
import java.net.URL;
import java.util.Map;
/** Utility class providing easy access to contents of the {@code testdata/} directory. */
@ -26,14 +23,14 @@ public final class ToolsTestData {
/** Returns {@link ByteSource} for file in {@code tools/server/testdata/} directory. */
public static ByteSource get(String filename) {
return Resources.asByteSource(getUrl(filename));
return TestDataHelper.loadBytes(ToolsTestData.class, filename);
}
/**
* Loads data from file in {@code tools/server/testdata/} as a UTF-8 String.
*/
public static String loadUtf8(String filename) {
return loadUtf8(filename, ImmutableMap.of());
return TestDataHelper.loadFile(ToolsTestData.class, filename);
}
/**
@ -42,8 +39,4 @@ public final class ToolsTestData {
public static String loadUtf8(String filename, Map<String, String> substitutions) {
return TestDataHelper.loadFileWithSubstitutions(ToolsTestData.class, filename, substitutions);
}
private static URL getUrl(String filename) {
return Resources.getResource(ToolsTestData.class, "testdata/" + filename);
}
}