/** Unit test for the adapter. */
  @SuppressWarnings("nls")
  @Test
  public void testExecute_withNested() {

    String[] properties = {
      "nested", "nested.field1", "nested.field1", "nested.field2", "nested.field2"
    };
    Object[] values = {null, null, StringConstants.EMPTY, null, 0};
    String[] messages = new String[properties.length];
    for (int i = 0; i < messages.length; i++) {
      messages[i] = properties[i] + " is " + StringUtils.toString(values[i]);
    }

    PropertyValuesChecker<BeanWithNestedBean> checker =
        new PropertyValuesChecker<BeanWithNestedBean>(properties, values, messages);

    BeanWithNestedBean bean = new BeanWithNestedBean(null, null);
    bean.setNested(null);

    /*
     * Expecting that list contains message only for nested.
     */
    List<String> list1 = checker.execute(bean);
    Assert.assertEquals(1, list1.size());
    Assert.assertTrue(list1.contains(messages[0]));
  }
  /** Unit test for the adapter. */
  @SuppressWarnings("nls")
  @Test
  public void testExecute() {
    String s1 = "some string"; // $NON-NLS-1$
    Integer i1 = null;
    Integer i2 = 6;

    String[] properties = {"property1", "nested.field1"};
    Object[] values = {i1, s1};
    String[] messages = new String[properties.length];
    for (int i = 0; i < messages.length; i++) {
      messages[i] = properties[i] + " is " + StringUtils.toString(values[i]);
    }

    PropertyValuesChecker<BeanWithNestedBean> checker =
        new PropertyValuesChecker<BeanWithNestedBean>(properties, values, messages);

    BeanWithNestedBean bean = new BeanWithNestedBean(s1, i2);

    /*
     * Expecting that list contains both messages.
     */
    bean.setProperty1(i1);
    List<String> list1 = checker.execute(bean);
    for (int i = 0; i < messages.length; i++) {
      Assert.assertTrue(list1.contains(messages[i]));
    }

    /*
     * Expecting that list contains only message for nested.field
     */
    bean.setProperty1(2);
    List<String> list2 = checker.execute(bean);
    Assert.assertFalse(list2.contains(messages[0]));
    Assert.assertTrue(list2.contains(messages[1]));

    /*
     * Expecting an empty list
     */
    bean.getNested().setField1(null);
    List<String> list3 = checker.execute(bean);
    Assert.assertTrue(list3.isEmpty());
  }