@Test
public void testFeatureServiceFactoryProperties() {
BeanDefinition beanDefinition = context.getBeanDefinition("featureServiceFactory");
// Test ContextProviders setup
PropertyValue contextProvidersProperty = beanDefinition.getPropertyValues().getPropertyValue("contextProviders");
assertNotNull(contextProvidersProperty);
assertTrue(contextProvidersProperty.getValue() instanceof List);
List contextProvidersList = ((List)contextProvidersProperty.getValue());
assertEquals(2, contextProvidersList.size());
assertTrue(contextProvidersList.get(0) instanceof BeanDefinitionHolder);
assertEquals(SystemPropertiesContextProvider.class.getName(), ((BeanDefinitionHolder)contextProvidersList.get(0)).getBeanDefinition().getBeanClassName());
assertTrue(contextProvidersList.get(1) instanceof BeanReference);
assertEquals("contextProviderBean", ((BeanReference)contextProvidersList.get(1)).getBeanName());
// Test PropertyReaders setup
PropertyValue propertyReadersProperty = beanDefinition.getPropertyValues().getPropertyValue("propertyReaders");
assertNotNull(propertyReadersProperty);
assertTrue(propertyReadersProperty.getValue() instanceof List);
List propertyReadersList = ((List)propertyReadersProperty.getValue());
assertEquals(2, propertyReadersList.size());
assertTrue(propertyReadersList.get(0) instanceof BeanDefinitionHolder);
assertEquals(XmlPropertyReader.class.getName(), ((BeanDefinitionHolder)propertyReadersList.get(0)).getBeanDefinition().getBeanClassName());
assertTrue(propertyReadersList.get(1) instanceof BeanReference);
assertEquals("propertyReaderBean", ((BeanReference)propertyReadersList.get(1)).getBeanName());
// Test properties setup
PropertyValue propertiesProperty = beanDefinition.getPropertyValues().getPropertyValue("properties");
assertNotNull(propertiesProperty);
assertTrue(propertiesProperty.getValue() instanceof Properties);
Properties properties = ((Properties)propertiesProperty.getValue());
assertEquals(1, properties.size());
for(Map.Entry entry : properties.entrySet()) {
assertEquals("aa", ((TypedStringValue)entry.getKey()).getValue());
assertEquals("bb", ((TypedStringValue)entry.getValue()).getValue());