@Test
public void testObjectPropertyCanWrapOptionalProperty() {

  Person person1 = new Person("John Doe", 25);
  Person person2 = new Person("Jane Doe", 21);
  OptionalProperty<Person> optionalPersonProperty = new OptionalValueProperty<>(person1);
  ObjectProperty<Person> personProperty = ObjectProperty.wrap(optionalPersonProperty);
  assertThat(personProperty.get()).isEqualTo(person1);
  personProperty.set(person2);
  assertThat(optionalPersonProperty.getValue()).isEqualTo(person2);
  optionalPersonProperty.clear();
  try {
    personProperty.get();
    Assert.fail();
  }
  catch (Exception expected) {
  }
}