use of org.apache.heron.eco.definition.BeanReference in project heron by twitter.
the class EcoParserTest method testParseFromInputStream_VerifyComponents_MapsAsExpected.
@Test
public void testParseFromInputStream_VerifyComponents_MapsAsExpected() throws Exception {
InputStream inputStream = new ByteArrayInputStream(YAML_STR_1.getBytes());
FileInputStream mockPropsStream = PowerMockito.mock(FileInputStream.class);
EcoTopologyDefinition topologyDefinition = subject.parseFromInputStream(inputStream, mockPropsStream, false);
List<BeanDefinition> components = topologyDefinition.getComponents();
assertEquals("kafka-topology", topologyDefinition.getName());
assertEquals("heron", topologyDefinition.getType());
assertEquals(4, components.size());
BeanDefinition stringSchemeComponent = components.get(0);
assertEquals("stringScheme", stringSchemeComponent.getId());
assertEquals("org.apache.storm.kafka.StringScheme", stringSchemeComponent.getClassName());
BeanDefinition stringMultiSchemeComponent = components.get(1);
assertEquals("stringMultiScheme", stringMultiSchemeComponent.getId());
assertEquals("org.apache.storm.spout.SchemeAsMultiScheme", stringMultiSchemeComponent.getClassName());
assertEquals(1, stringMultiSchemeComponent.getConstructorArgs().size());
BeanReference multiStringReference = (BeanReference) stringMultiSchemeComponent.getConstructorArgs().get(0);
assertEquals("stringScheme", multiStringReference.getId());
BeanDefinition zkHostsComponent = components.get(2);
assertEquals("zkHosts", zkHostsComponent.getId());
assertEquals("org.apache.storm.kafka.ZkHosts", zkHostsComponent.getClassName());
assertEquals(1, zkHostsComponent.getConstructorArgs().size());
assertEquals("localhost:2181", zkHostsComponent.getConstructorArgs().get(0));
BeanDefinition spoutConfigComponent = components.get(3);
List<Object> spoutConstructArgs = spoutConfigComponent.getConstructorArgs();
assertEquals("spoutConfig", spoutConfigComponent.getId());
assertEquals("org.apache.storm.kafka.SpoutConfig", spoutConfigComponent.getClassName());
BeanReference spoutBrokerHostComponent = (BeanReference) spoutConstructArgs.get(0);
assertEquals("zkHosts", spoutBrokerHostComponent.getId());
assertEquals("myKafkaTopic", spoutConstructArgs.get(1));
assertEquals("/kafkaSpout", spoutConstructArgs.get(2));
List<PropertyDefinition> properties = spoutConfigComponent.getProperties();
assertEquals("ignoreZkOffsets", properties.get(0).getName());
assertEquals(true, properties.get(0).getValue());
assertEquals("scheme", properties.get(1).getName());
assertEquals(true, properties.get(1).isReference());
assertEquals("stringMultiScheme", properties.get(1).getRef());
}
use of org.apache.heron.eco.definition.BeanReference in project heron by twitter.
the class BuilderUtilityTest method applyProperties_SetterFound_BehavesAsExpected.
@Test
public void applyProperties_SetterFound_BehavesAsExpected() throws IllegalAccessException, NoSuchFieldException, InvocationTargetException {
final String id = "id";
final String ref = "ref";
final String fakeComponent = "component";
BeanReference beanReference = new BeanReference(id);
List<PropertyDefinition> propertyDefinitions = new ArrayList<>();
PropertyDefinition propertyDefinition = new PropertyDefinition();
propertyDefinition.setRef(ref);
propertyDefinition.setName(id);
propertyDefinitions.add(propertyDefinition);
when(mockObjectDefinition.getProperties()).thenReturn(propertyDefinitions);
when(mockContext.getComponent(eq(ref))).thenReturn(fakeComponent);
subject.applyProperties(mockObjectDefinition, beanReference, mockContext);
verify(mockContext).getComponent(same(ref));
verify(mockObjectDefinition).getProperties();
}
Aggregations