/* *************************************************************************************** * 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.view; import com.espertech.esper.client.ConfigurationException; import com.espertech.esper.client.ConfigurationPlugInView; import com.espertech.esper.client.ConfigurationPlugInVirtualDataWindow; import com.espertech.esper.core.support.SupportEngineImportServiceFactory; import com.espertech.esper.epl.spec.PluggableObjectCollection; import com.espertech.esper.epl.spec.PluggableObjectRegistryImpl; import com.espertech.esper.supportunit.view.SupportViewFactoryOne; import com.espertech.esper.supportunit.view.SupportViewFactoryTwo; import com.espertech.esper.view.stat.UnivariateStatisticsViewFactory; import junit.framework.TestCase; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Collections; import java.util.LinkedList; import java.util.List; public class TestViewResolutionService extends TestCase { private ViewResolutionService service; public void setUp() { PluggableObjectRegistryImpl registry = new PluggableObjectRegistryImpl(new PluggableObjectCollection[]{ViewEnumHelper.getBuiltinViews()}); service = new ViewResolutionServiceImpl(registry, null, null); } public void testInitializeFromConfig() throws Exception { service = createService(new String[]{"a", "b"}, new String[]{"v1", "v2"}, new String[]{SupportViewFactoryOne.class.getName(), SupportViewFactoryTwo.class.getName()}); ViewFactory factory = service.create("a", "v1"); assertTrue(factory instanceof SupportViewFactoryOne); factory = service.create("b", "v2"); assertTrue(factory instanceof SupportViewFactoryTwo); tryInvalid("a", "v3"); tryInvalid("c", "v1"); try { service = createService(new String[]{"a"}, new String[]{"v1"}, new String[]{"abc"}); fail(); } catch (ConfigurationException ex) { // expected } } private void tryInvalid(String namespace, String name) { try { service.create(namespace, name); fail(); } catch (ViewProcessingException ex) { // expected } } public void testCreate() throws Exception { ViewFactory viewFactory = service.create(ViewEnum.UNIVARIATE_STATISTICS.getNamespace(), ViewEnum.UNIVARIATE_STATISTICS.getName()); assertTrue(viewFactory instanceof UnivariateStatisticsViewFactory); } public void testInvalidViewName() { try { service.create("dummy", "bumblebee"); assertFalse(true); } catch (ViewProcessingException ex) { log.debug(".testInvalidViewName Expected exception caught, msg=" + ex.getMessage()); } } private ViewResolutionService createService(String[] namespaces, String[] names, String[] classNames) { List<ConfigurationPlugInView> configs = new LinkedList<ConfigurationPlugInView>(); for (int i = 0; i < namespaces.length; i++) { ConfigurationPlugInView config = new ConfigurationPlugInView(); config.setNamespace(namespaces[i]); config.setName(names[i]); config.setFactoryClassName(classNames[i]); configs.add(config); } PluggableObjectCollection desc = new PluggableObjectCollection(); desc.addViews(configs, Collections.<ConfigurationPlugInVirtualDataWindow>emptyList(), SupportEngineImportServiceFactory.make()); PluggableObjectRegistryImpl registry = new PluggableObjectRegistryImpl(new PluggableObjectCollection[]{desc}); return new ViewResolutionServiceImpl(registry, null, null); } private static final Logger log = LoggerFactory.getLogger(TestViewResolutionService.class); }