/*
***************************************************************************************
* 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.esperio.socket;
import com.espertech.esper.client.Configuration;
import com.espertech.esper.client.EPServiceProvider;
import com.espertech.esper.client.EPServiceProviderManager;
import com.espertech.esper.client.EPStatement;
import com.espertech.esper.client.scopetest.EPAssertionUtil;
import com.espertech.esper.client.scopetest.SupportUpdateListener;
import com.espertech.esperio.socket.config.ConfigurationSocketAdapter;
import com.espertech.esperio.socket.config.DataType;
import com.espertech.esperio.socket.config.SocketConfig;
import junit.framework.TestCase;
public class TestSocketAdapterCSV extends TestCase {
public static String newline = System.getProperty("line.separator");
private SupportUpdateListener listener;
public void setUp() throws Exception {
listener = new SupportUpdateListener();
}
public void testSendCSV() throws Exception {
ConfigurationSocketAdapter adapterConfig = new ConfigurationSocketAdapter();
int port = 6801;
String engineURI = "TestSocketAdapterCSV";
SocketConfig socket = new SocketConfig();
socket.setDataType(DataType.CSV);
socket.setPort(port);
socket.setUnescape(true);
adapterConfig.getSockets().put("SocketService", socket);
EsperIOSocketAdapter adapter = new EsperIOSocketAdapter(adapterConfig, engineURI);
Configuration engineConfig = new Configuration();
engineConfig.addEventType("SupportBean", SupportBean.class);
EPServiceProvider provider = EPServiceProviderManager.getProvider(engineURI, engineConfig);
adapter.start();
ConfigurationSocketAdapter adapterConfigTwo = new ConfigurationSocketAdapter();
SocketConfig socketConfigTwo = new SocketConfig();
socketConfigTwo.setDataType(DataType.CSV);
socketConfigTwo.setPort(6802);
socketConfigTwo.setUnescape(true);
adapterConfigTwo.getSockets().put("SocketServiceTwo", socketConfigTwo);
EsperIOSocketAdapter adapterTwo = new EsperIOSocketAdapter(adapterConfigTwo, engineURI);
adapterTwo.start();
EPStatement stmt = provider.getEPAdministrator().createEPL("select * from SupportBean");
stmt.addListener(listener);
String[] fields = "stringProp,intProp".split(",");
SupportSocketClientCSV client = new SupportSocketClientCSV(port);
client.send("stream=SupportBean,stringProp=E1,intProp=20" + newline);
Thread.sleep(200);
EPAssertionUtil.assertProps(listener.assertOneGetNewAndReset(), fields, new Object[]{"E1", 20});
client.send("stream=SupportBean,stringProp=E\\u002C2,intProp=20,xxxx,x=msdjdjdj,intProp=21" + newline);
Thread.sleep(200);
EPAssertionUtil.assertProps(listener.assertOneGetNewAndReset(), fields, new Object[]{"E,2", 21});
client.close();
adapter.destroy();
provider.destroy();
}
}