List<StepOption> retrieveOptions() {
    return Arrays.asList(
      new StepOption( KEEP_ALIVE_INTERVAL, getString( PKG, "MQTTDialog.Options.KEEP_ALIVE_INTERVAL" ),
        keepAliveInterval ),
      new StepOption( MAX_INFLIGHT, getString( PKG, "MQTTDialog.Options.MAX_INFLIGHT" ), maxInflight ),
      new StepOption( CONNECTION_TIMEOUT, getString( PKG, "MQTTDialog.Options.CONNECTION_TIMEOUT" ),
        connectionTimeout ),
      new StepOption( CLEAN_SESSION, getString( PKG, "MQTTDialog.Options.CLEAN_SESSION" ),
        cleanSession ),
      new StepOption( STORAGE_LEVEL, getString( PKG, "MQTTDialog.Options.STORAGE_LEVEL" ),
        storageLevel ),
      new StepOption( SERVER_URIS, getString( PKG, "MQTTDialog.Options.SERVER_URIS" ), serverUris ),
      new StepOption( MQTT_VERSION, getString( PKG, "MQTTDialog.Options.MQTT_VERSION" ), mqttVersion ),
      new StepOption( AUTOMATIC_RECONNECT, getString( PKG, "MQTTDialog.Options.AUTOMATIC_RECONNECT" ),
        automaticReconnect )
    );
  }
@Test
  public void testRetrieveOptions() {
    List<String> keys = Arrays
      .asList( KEEP_ALIVE_INTERVAL, MAX_INFLIGHT, CONNECTION_TIMEOUT, CLEAN_SESSION, STORAGE_LEVEL, SERVER_URIS,
        MQTT_VERSION, AUTOMATIC_RECONNECT );

    MQTTConsumerMeta meta = new MQTTConsumerMeta();
    meta.setDefault();
    List<StepOption> options = meta.retrieveOptions();
    assertEquals( 8, options.size() );
    for ( StepOption option : options ) {
      assertEquals( "", option.getValue() );
      assertNotNull( option.getText() );
      Assert.assertTrue( keys.contains( option.getKey() ) );
    }
  }