/* * ************************************************************************************* * Copyright (C) 2008 EsperTech, Inc. All rights reserved. * * http://esper.codehaus.org * * http://www.espertech.com * * ---------------------------------------------------------------------------------- * * The software in this package is published under the terms of the GPL license * * a copy of which has been included with this distribution in the license.txt file. * * ************************************************************************************* */ package com.espertech.esper.event; import com.espertech.esper.client.EventBean; import com.espertech.esper.client.EventType; import com.espertech.esper.support.bean.SupportBeanCombinedProps; import com.espertech.esper.support.bean.SupportBeanSimple; import com.espertech.esper.support.event.SupportEventAdapterService; import junit.framework.TestCase; import java.util.HashMap; import java.util.Map; public class TestWrapperEventBean extends TestCase { private EventBean eventBeanSimple; private EventBean eventBeanCombined; private Map<String, Object> properties; private EventType eventTypeSimple; private EventType eventTypeCombined; private EventAdapterService eventService; protected void setUp() { eventService = SupportEventAdapterService.getService(); EventType underlyingEventTypeSimple = eventService.addBeanType("underlyingSimpleBean", SupportBeanSimple.class, true, true, true); EventType underlyingEventTypeCombined = eventService.addBeanType("underlyingCombinedBean", SupportBeanCombinedProps.class,true, true, true); Map<String, Object> typeMap = new HashMap<String, Object>(); typeMap.put("string", String.class); typeMap.put("int", Integer.class); EventTypeMetadata meta = EventTypeMetadata.createWrapper("test", true, false, false); eventTypeSimple = new WrapperEventType(meta, "mytype", 1, underlyingEventTypeSimple, typeMap, eventService); eventTypeCombined = new WrapperEventType(meta, "mytype", 1, underlyingEventTypeCombined, typeMap, eventService); properties = new HashMap<String, Object>(); properties.put("string", "xx"); properties.put("int", 11); EventBean wrappedSimple = eventService.adapterForBean(new SupportBeanSimple("eventString", 0)); eventBeanSimple = eventService.adapterForTypedWrapper(wrappedSimple, properties, eventTypeSimple); EventBean wrappedCombined = eventService.adapterForBean(SupportBeanCombinedProps.makeDefaultBean()); eventBeanCombined = eventService.adapterForTypedWrapper(wrappedCombined, properties, eventTypeCombined); } public void testGetSimple() { assertEquals("eventString", eventBeanSimple.get("myString")); assertEquals(0, eventBeanSimple.get("myInt")); assertMap(eventBeanSimple); } public void testGetCombined() { assertEquals("0ma0", eventBeanCombined.get("indexed[0].mapped('0ma').value")); assertEquals("0ma1", eventBeanCombined.get("indexed[0].mapped('0mb').value")); assertEquals("1ma0", eventBeanCombined.get("indexed[1].mapped('1ma').value")); assertEquals("1ma1", eventBeanCombined.get("indexed[1].mapped('1mb').value")); assertEquals("0ma0", eventBeanCombined.get("array[0].mapped('0ma').value")); assertEquals("1ma1", eventBeanCombined.get("array[1].mapped('1mb').value")); assertMap(eventBeanCombined); } private void assertMap(EventBean eventBean) { assertEquals("xx", eventBean.get("string")); assertEquals(11, eventBean.get("int")); } }