// validate properties:
List<FormField> formFields = taskFormData.getFormFields();
// validate string field
FormField stringField = formFields.get(0);
assertNotNull(stringField);
assertEquals("string", stringField.getTypeName());
assertNotNull(stringField.getType());
assertEquals("someString", stringField.getDefaultValue());
// validate long field
FormField longField = formFields.get(1);
assertNotNull(longField);
assertEquals("long", longField.getTypeName());
assertNotNull(longField.getType());
assertEquals(Long.valueOf(1l), longField.getDefaultValue());
// validate boolean field
FormField booleanField = formFields.get(2);
assertNotNull(booleanField);
assertEquals("boolean", booleanField.getTypeName());
assertNotNull(booleanField.getType());
assertEquals(Boolean.valueOf(true), booleanField.getDefaultValue());
// validate date field
FormField dateField = formFields.get(3);
assertNotNull(dateField);
assertEquals("date", dateField.getTypeName());
assertNotNull(dateField.getType());
Date dateValue = (Date) dateField.getDefaultValue();
Calendar calendar = Calendar.getInstance();
calendar.setTime(dateValue);
assertEquals(10, calendar.get(Calendar.DAY_OF_MONTH));
assertEquals(Calendar.JANUARY, calendar.get(Calendar.MONTH));
assertEquals(2013, calendar.get(Calendar.YEAR));
// validate enum field
FormField enumField = formFields.get(4);
assertNotNull(enumField);
assertEquals("enum", enumField.getTypeName());
assertNotNull(enumField.getType());
EnumFormType enumFormType = (EnumFormType) enumField.getType();
Map<String, String> values = enumFormType.getValues();
assertEquals("A", values.get("a"));
assertEquals("B", values.get("b"));
assertEquals("C", values.get("c"));