@Test
public void checkConfigurationOptionKeysCorrespondToAnnotationMethods() throws NoSuchMethodException, SecurityException
{

	Class<VALJOConfigure> configureAnnotation = VALJOConfigure.class;
	Class<VALJOGenerate> generateAnnotation = VALJOGenerate.class;
	Set<String> configureAnnotationMethodsString = concat(Arrays.stream(configureAnnotation.getMethods())
																.filter(m -> m.getDeclaringClass().equals(configureAnnotation))
			                                                    .map(m -> m.getName()),
			                                              Arrays.stream(generateAnnotation.getMethods())
			                                              		.filter(m -> m.getDeclaringClass().equals(generateAnnotation))
			                                                    .map(m -> m.getName()))
			                                              .collect(toSet());
	for (Field f : ConfigurationOptionKeys.class.getFields())
	{
		String optionName = f.getName();
		boolean optionOnly = optionName.toUpperCase().endsWith(optionName); // All upper-case named options are not applicable as annotations.
		if (!optionOnly) {
			boolean found = (configureAnnotationMethodsString.contains(optionName));
			Assert.assertTrue("Option ConfigurationOptionKeys."+optionName+" must correspond with attribute method on either "+configureAnnotation.getSimpleName()+" or "+generateAnnotation.getSimpleName(), found);
		}
	}
}