/* *************************************************************************************** * Copyright (C) 2006 EsperTech, Inc. All rights reserved. * * http://www.espertech.com/esper * * 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.epl.view; import com.espertech.esper.client.EventBean; import com.espertech.esper.supportunit.epl.SupportExprEvaluator; import com.espertech.esper.supportunit.epl.SupportExprNode; import com.espertech.esper.supportunit.event.SupportEventBeanFactory; import com.espertech.esper.supportunit.view.SupportMapView; import junit.framework.TestCase; public class TestFilterExprView extends TestCase { private FilterExprView filterExprViewAdapter; private SupportMapView childView; public void setUp() { filterExprViewAdapter = new FilterExprView(new SupportExprNode(null), new SupportExprEvaluator(), null); childView = new SupportMapView(); filterExprViewAdapter.addView(childView); } public void testUpdate() { // Test all evaluate to true (ie. all pass the filter) EventBean[] oldEvents = SupportEventBeanFactory.makeEvents(new boolean[]{true, true}); EventBean[] newEvents = SupportEventBeanFactory.makeEvents(new boolean[]{true, true}); filterExprViewAdapter.update(newEvents, oldEvents); assertEquals(newEvents, childView.getLastNewData()); assertEquals(oldEvents, childView.getLastOldData()); childView.reset(); // Test all evaluate to false (ie. none pass the filter) oldEvents = SupportEventBeanFactory.makeEvents(new boolean[]{false, false}); newEvents = SupportEventBeanFactory.makeEvents(new boolean[]{false, false}); filterExprViewAdapter.update(newEvents, oldEvents); assertFalse(childView.getAndClearIsInvoked()); // Should not be invoked if no events assertNull(childView.getLastNewData()); assertNull(childView.getLastOldData()); // Test some pass through the filter oldEvents = SupportEventBeanFactory.makeEvents(new boolean[]{false, true, false}); newEvents = SupportEventBeanFactory.makeEvents(new boolean[]{true, false, true}); filterExprViewAdapter.update(newEvents, oldEvents); assertEquals(2, childView.getLastNewData().length); assertSame(newEvents[0], childView.getLastNewData()[0]); assertSame(newEvents[2], childView.getLastNewData()[1]); assertEquals(1, childView.getLastOldData().length); assertSame(oldEvents[1], childView.getLastOldData()[0]); } }