@Test
void propertyDescriptorTest()
{

    assertNull(this.beanDescriptor.getProperty("hiddenProperty"));
    PropertyDescriptor lowerPropertyDescriptor = this.beanDescriptor.getProperty("lowerprop");
    assertNotNull(lowerPropertyDescriptor);
    assertEquals("lowerprop", lowerPropertyDescriptor.getId());
    assertEquals("lowerprop", lowerPropertyDescriptor.getName());
    assertEquals("lowerprop", lowerPropertyDescriptor.getDescription());
    assertSame(String.class, lowerPropertyDescriptor.getPropertyClass());
    assertNull(lowerPropertyDescriptor.getDefaultValue());
    assertFalse(lowerPropertyDescriptor.isMandatory());
    assertNotNull(lowerPropertyDescriptor.getWriteMethod());
    assertNotNull(lowerPropertyDescriptor.getReadMethod());
    assertNull(lowerPropertyDescriptor.getField());
    PropertyDescriptor prop1Descriptor = this.beanDescriptor.getProperty("prop1");
    assertEquals("defaultprop1", prop1Descriptor.getDefaultValue());
    assertEquals("feature1", prop1Descriptor.getGroupDescriptor().getFeature());
    PropertyDescriptor deprecatedDescriptor = this.beanDescriptor.getProperty("deprecatedParameter");
    assertTrue(deprecatedDescriptor.isDeprecated());
    assertEquals("test1", deprecatedDescriptor.getGroupDescriptor().getGroup().get(0));
    assertEquals("test2", deprecatedDescriptor.getGroupDescriptor().getGroup().get(1));
    assertEquals("feature2", deprecatedDescriptor.getGroupDescriptor().getFeature());
    PropertyDescriptor advancedDescriptor = this.beanDescriptor.getProperty("advancedParameter");
    assertTrue(advancedDescriptor.isAdvanced());
    assertEquals("test1", advancedDescriptor.getGroupDescriptor().getGroup().get(0));
    assertEquals("test2", advancedDescriptor.getGroupDescriptor().getGroup().get(1));
    assertEquals("feature2", advancedDescriptor.getGroupDescriptor().getFeature());
    PropertyDescriptor displayTypeDescriptor = this.beanDescriptor.getProperty("displayTypeParameter");
    assertEquals(new DefaultParameterizedType(null, Triple.class, Boolean.class, String.class, Long.class),
            displayTypeDescriptor.getDisplayType());
    PropertyDescriptor displayTypeDescriptor2 = this.beanDescriptor.getProperty("displayTypeParameter2");
    assertEquals(Boolean.class, displayTypeDescriptor2.getDisplayType());
    PropertyDescriptor displayHiddenDescriptor = this.beanDescriptor.getProperty("displayHiddenParameter");
    assertTrue(displayHiddenDescriptor.isDisplayHidden());
}