@Test public void testGetWithSelectField() { ExtendedObjectClassDefinition extendedObjectClassDefinition = mock(ExtendedObjectClassDefinition.class); ExtendedAttributeDefinition extendedAttributeDefinition = mock(ExtendedAttributeDefinition.class); whenGetAttributeDefinitions( extendedObjectClassDefinition, new ExtendedAttributeDefinition[] {extendedAttributeDefinition}, ExtendedObjectClassDefinition.REQUIRED); whenGetCardinality(extendedAttributeDefinition, 0); whenGetID(extendedAttributeDefinition, "Select"); whenGetType(extendedAttributeDefinition, ExtendedAttributeDefinition.STRING); whenGetOptionLabels(extendedAttributeDefinition, new String[] {"Label 1", "Label 2"}); whenGetOptionValues(extendedAttributeDefinition, new String[] {"Value 1", "Value 2"}); ConfigurationModel configurationModel = new ConfigurationModel(extendedObjectClassDefinition, null, null, null, false); ConfigurationModelToDDMFormConverter configurationModelToDDMFormConverter = new ConfigurationModelToDDMFormConverter( configurationModel, _enLocale, new EmptyResourceBundle()); DDMForm ddmForm = configurationModelToDDMFormConverter.getDDMForm(); Map<String, DDMFormField> ddmFormFieldsMap = ddmForm.getDDMFormFieldsMap(false); DDMFormField ddmFormField = ddmFormFieldsMap.get("Select"); Assert.assertNotNull(ddmFormField); Assert.assertEquals(DDMFormFieldType.SELECT, ddmFormField.getType()); Assert.assertEquals("string", ddmFormField.getDataType()); Assert.assertFalse(ddmFormField.isRepeatable()); Assert.assertTrue(ddmFormField.isRequired()); DDMFormFieldOptions ddmFormFieldOptions = ddmFormField.getDDMFormFieldOptions(); Assert.assertEquals(_enLocale, ddmFormFieldOptions.getDefaultLocale()); Set<String> optionValues = ddmFormFieldOptions.getOptionsValues(); Assert.assertTrue(optionValues.contains("Value 1")); Assert.assertTrue(optionValues.contains("Value 2")); LocalizedValue value1Labels = ddmFormFieldOptions.getOptionLabels("Value 1"); Assert.assertEquals(_enLocale, value1Labels.getDefaultLocale()); Assert.assertEquals("Label 1", value1Labels.getString(_enLocale)); LocalizedValue value2Labels = ddmFormFieldOptions.getOptionLabels("Value 2"); Assert.assertEquals(_enLocale, value2Labels.getDefaultLocale()); Assert.assertEquals("Label 2", value2Labels.getString(_enLocale)); }
protected void validateDDMFormFieldPropertyValue( String fieldName, String propertyName, LocalizedValue propertyValue, Set<Locale> ddmFormAvailableLocales, Locale ddmFormDefaultLocale) throws DDMFormValidationException { if (!ddmFormDefaultLocale.equals(propertyValue.getDefaultLocale())) { throw new MustSetValidDefaultLocaleForProperty(fieldName, propertyName); } if (!ddmFormAvailableLocales.equals(propertyValue.getAvailableLocales())) { throw new MustSetValidAvailableLocalesForProperty(fieldName, propertyName); } }
@Test public void testGetWithIntegerField() { ExtendedObjectClassDefinition extendedObjectClassDefinition = mock(ExtendedObjectClassDefinition.class); ExtendedAttributeDefinition extendedAttributeDefinition = mock(ExtendedAttributeDefinition.class); whenGetAttributeDefinitions( extendedObjectClassDefinition, new ExtendedAttributeDefinition[] {extendedAttributeDefinition}, ExtendedObjectClassDefinition.REQUIRED); whenGetCardinality(extendedAttributeDefinition, 0); whenGetID(extendedAttributeDefinition, "Integer"); whenGetType(extendedAttributeDefinition, ExtendedAttributeDefinition.INTEGER); ConfigurationModel configurationModel = new ConfigurationModel(extendedObjectClassDefinition, null, null, null, false); ConfigurationModelToDDMFormConverter configurationModelToDDMFormConverter = new ConfigurationModelToDDMFormConverter( configurationModel, _enLocale, new EmptyResourceBundle()); DDMForm ddmForm = configurationModelToDDMFormConverter.getDDMForm(); Map<String, DDMFormField> ddmFormFieldsMap = ddmForm.getDDMFormFieldsMap(false); DDMFormField ddmFormField = ddmFormFieldsMap.get("Integer"); Assert.assertNotNull(ddmFormField); Assert.assertEquals(DDMFormFieldType.TEXT, ddmFormField.getType()); Assert.assertEquals("integer", ddmFormField.getDataType()); Assert.assertFalse(ddmFormField.isRepeatable()); Assert.assertTrue(ddmFormField.isRequired()); LocalizedValue predefinedValue = ddmFormField.getPredefinedValue(); Assert.assertEquals(_enLocale, predefinedValue.getDefaultLocale()); Assert.assertEquals("0", predefinedValue.getString(_enLocale)); }