### Question:
PropertiesFileConfigurationProvider extends
    AbstractConfigurationProvider { @Override public FlumeConfiguration getFlumeConfiguration() { BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(file)); Properties properties = new Properties(); properties.load(reader); return new FlumeConfiguration(toMap(properties)); } catch (IOException ex) { LOGGER.error("Unable to load file:" + file + " (I/O failure) - Exception follows.", ex); } finally { if (reader != null) { try { reader.close(); } catch (IOException ex) { LOGGER.warn( "Unable to close file reader for file: " + file, ex); } } } return new FlumeConfiguration(new HashMap<String, String>()); } PropertiesFileConfigurationProvider(String agentName, File file); @Override FlumeConfiguration getFlumeConfiguration();  }### Answer:
@Test public void testPropertyRead() throws Exception { FlumeConfiguration configuration = provider.getFlumeConfiguration(); Assert.assertNotNull(configuration); List<String> expected = Lists.newArrayList(); expected.add("host5 CONFIG_ERROR"); expected.add("host5 INVALID_PROPERTY"); expected.add("host4 CONFIG_ERROR"); expected.add("host4 CONFIG_ERROR"); expected.add("host4 PROPERTY_VALUE_NULL"); expected.add("host4 PROPERTY_VALUE_NULL"); expected.add("host4 PROPERTY_VALUE_NULL"); expected.add("host4 AGENT_CONFIGURATION_INVALID"); expected.add("ch2 ATTRS_MISSING"); expected.add("host3 CONFIG_ERROR"); expected.add("host3 PROPERTY_VALUE_NULL"); expected.add("host3 AGENT_CONFIGURATION_INVALID"); expected.add("host2 PROPERTY_VALUE_NULL"); expected.add("host2 AGENT_CONFIGURATION_INVALID"); List<String> actual = Lists.newArrayList(); for(FlumeConfigurationError error : configuration.getConfigurationErrors()) { actual.add(error.getComponentName() + " " + error.getErrorType().toString()); } Collections.sort(expected); Collections.sort(actual); Assert.assertEquals(expected, actual); AgentConfiguration agentConfiguration = configuration.getConfigurationFor("host1"); Assert.assertNotNull(agentConfiguration); LOGGER.info(agentConfiguration.getPrevalidationConfig()); LOGGER.info(agentConfiguration.getPostvalidationConfig()); Set<String> sources = Sets.newHashSet("source1"); Set<String> sinks = Sets.newHashSet("sink1"); Set<String> channels = Sets.newHashSet("channel1"); Assert.assertEquals(sources, agentConfiguration.getSourceSet()); Assert.assertEquals(sinks, agentConfiguration.getSinkSet()); Assert.assertEquals(channels, agentConfiguration.getChannelSet()); }