@CheckForNull
  public String value(String key) {
    String value = properties.getProperty(key);
    if (value != null && encryption.isEncrypted(value)) {
      value = encryption.decrypt(value);
    }
    return value;
  }
@Test
  @UseDataProvider("beforeAndAfterBlanks")
  public void value(String blankBefore, String blankAfter) {
    Properties p = new Properties();
    p.setProperty(blankBefore + "foo" + blankAfter, blankBefore + "bar" + blankAfter);
    p.setProperty("blank", blankBefore + blankAfter);
    Props props = new Props(p);

    assertThat(props.value("foo")).isEqualTo("bar");
    assertThat(props.value("foo", "default value")).isEqualTo("bar");
    assertThat(props.value("blank")).isEmpty();
    assertThat(props.value("blank", "default value")).isEmpty();
    assertThat(props.value("unknown")).isNull();
    assertThat(props.value("unknown", "default value")).isEqualTo("default value");
  }