@Test public void testGetOrderedOptionsWithDummyPlugin() { List<TransferPluginOption> orderedOptions = TransferPluginOptions.getOrderedOptions(DummyTransferSettings.class); assertEquals(6, orderedOptions.size()); assertEquals("foo", orderedOptions.get(0).getName()); assertEquals("number", orderedOptions.get(1).getName()); assertEquals("baz", orderedOptions.get(2).getName()); assertEquals("nest", orderedOptions.get(3).getName()); assertEquals("nest2", orderedOptions.get(4).getName()); assertEquals("enumField", orderedOptions.get(5).getName()); }
private void askNormalPluginSettings(TransferSettings settings, TransferPluginOption option, Map<String, String> knownPluginSettings, String nestPrefix) throws StorageException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { TransferPluginOptionCallback optionCallback = createOptionCallback(settings, option.getCallback()); TransferPluginOptionConverter optionConverter = createOptionConverter(settings, option.getConverter()); if (!isInteractive && !knownPluginSettings.containsKey(nestPrefix + option.getName())) { throw new IllegalArgumentException("Missing plugin option (" + nestPrefix + option.getName() + ") in non-interactive mode."); } else if (knownPluginSettings.containsKey(nestPrefix + option.getName())) { settings.setField(option.getField().getName(), knownPluginSettings.get(nestPrefix + option.getName())); } else if (!option.isVisible()) { // Do nothing. Invisible option! } else { callAndPrintPreQueryCallback(optionCallback); String optionValue = askPluginOption(settings, option); if (optionConverter != null) { optionValue = optionConverter.convert(optionValue); } settings.setField(option.getField().getName(), optionValue); callAndPrintPostQueryCallback(optionCallback, optionValue); } }
@Test public void testGetOrderedOptionsWithAnotherDummyPlugin() { List<TransferPluginOption> orderedOptions = TransferPluginOptions.getOrderedOptions(AnotherDummyTransferSettings.class); assertEquals(4, orderedOptions.size()); assertEquals("noSetupAnnotation", orderedOptions.get(0).getName()); assertEquals("singularNonVisible", orderedOptions.get(1).getName()); assertEquals("someCallback", orderedOptions.get(2).getName()); assertEquals("someInvalidCallback", orderedOptions.get(3).getName()); }
childPlugin = initPlugin(knownPluginSettings.get(nestPrefix + option.getName() + GENERIC_PLUGIN_TYPE_IDENTIFIER)); throw new IllegalArgumentException("Missing nested plugin type (" + nestPrefix + option.getName() + GENERIC_PLUGIN_TYPE_IDENTIFIER + ") in non-interactive mode."); nestPrefix = nestPrefix + option.getName() + NESTED_OPTIONS_SEPARATOR;