OptionsHelper implements Customizable { public boolean hasOption(String name) { Map<Environment, List<String>> values = options.get(name); if (values == null) return false; Collection<Environment> environments = values.keySet(); return environments.contains(environment) || environments.contains(Environment.Any); }  void setOption(String name, String value); void setOption(String name, String value, Environment environment); void removeOption(String name); boolean hasOption(String name); String[] getOptionNames(); String getOptionValue(String name); String getOptionValue(String name, String defaultValue); String[] getOptionValues(String name); Map<String, Map<Environment, List<String>>> getOptions(); static OptionsHelper fromXml(Node config); void setEnvironment(Environment environment); static OptionsHelper fromXml(Node config, XPath xpathProcessor); static void fromXml(Node config, Customizable customizable,
      XPath xpathProcessor); String toXml();  }
@Test public void testHasOption() { assertTrue(options.hasOption(optionKey)); assertTrue(options.hasOption(multiOptionKey)); assertFalse(options.hasOption("test")); options.setEnvironment(Environment.Staging); assertTrue(options.hasOption(optionKey)); assertTrue(options.hasOption(multiOptionKey)); assertFalse(options.hasOption(environmentKey)); options.setEnvironment(Environment.Production); assertTrue(options.hasOption(optionKey)); assertTrue(options.hasOption(multiOptionKey)); assertTrue(options.hasOption(environmentKey)); options.setEnvironment(Environment.Development); assertTrue(options.hasOption(optionKey)); assertTrue(options.hasOption(multiOptionKey)); assertTrue(options.hasOption(environmentKey)); }