### Question:
PostProcessingBlock implements ProguardFilesProvider { @NonNull @Override public Collection<File> getProguardFiles(@NonNull ProguardFileType type) { switch (type) { case EXPLICIT: return proguardFiles; case TEST: return testProguardFiles; case CONSUMER: return consumerProguardFiles; default: throw new AssertionError("Invalid ProguardFileType: " + type); } } @Inject  PostProcessingBlock(@NonNull Project project); @VisibleForTesting  PostProcessingBlock(@NonNull Project project, List<File> proguardFiles); void initWith(PostProcessingBlock that); boolean isRemoveUnusedCode(); void setRemoveUnusedCode(boolean removeUnusedCode); boolean isRemoveUnusedResources(); void setRemoveUnusedResources(boolean removeUnusedResources); boolean isObfuscate(); void setObfuscate(boolean obfuscate); boolean isOptimizeCode(); void setOptimizeCode(boolean optimizeCode); void setProguardFiles(List<Object> proguardFiles); void proguardFile(Object file); void proguardFiles(Object... files); void setTestProguardFiles(List<Object> testProguardFiles); void testProguardFile(Object file); void testProguardFiles(Object... files); void setConsumerProguardFiles(List<Object> consumerProguardFiles); void consumerProguardFile(Object file); void consumerProguardFiles(Object... files); @NonNull String getCodeShrinker(); void setCodeShrinker(@NonNull String name); @Nullable CodeShrinker getCodeShrinkerEnum(); @NonNull @Override Collection<File> getProguardFiles(@NonNull ProguardFileType type);  }### Answer:
@Test public void testDefaultObject_NonEmptyList() { File file1 = mock(File.class); File file2 = mock(File.class); List<File> files = ImmutableList.of(file1, file2); PostProcessingBlock options = new PostProcessingBlock(mockProject, files); assertThat(options.getProguardFiles(EXPLICIT)).containsExactly(file1, file2); }