/* * Copyright (c) 2005-2010, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * WSO2 Inc. licenses this file to you under the Apache License, * Version 2.0 (the "License"); you may not use this file except * in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package org.wso2.carbon.databridge.commons; import com.google.gson.Gson; import junit.framework.Assert; import org.junit.BeforeClass; import org.junit.Test; import org.wso2.carbon.databridge.commons.exception.MalformedStreamDefinitionException; import org.wso2.carbon.databridge.commons.utils.EventDefinitionConverterUtils; import java.util.ArrayList; import java.util.List; public class DefinitionConversionTest { private static Gson gson; @BeforeClass public static void init() { gson = new Gson(); } @Test public void testDefinitionConversion() throws MalformedStreamDefinitionException { String definition = "{" + " 'name':'org.wso2.esb.MediatorStatistics'," + " 'version':'2.3.0'," + " 'nickName': 'Stock Quote Information'," + " 'description': 'Some Desc'," + " 'tags':['foo', 'bar']," + " 'metaData':[" + " {'name':'ipAdd','type':'STRING'}" + " ]," + " 'payloadData':[" + " {'name':'symbol','type':'string'}," + " {'name':'price','type':'double'}," + " {'name':'volume','type':'int'}," + " {'name':'maxTemp','type':'double'}," + " {'name':'minTemp','type':'double'}" + " ]" + "}"; StreamDefinition streamDefinition1 = EventDefinitionConverterUtils.convertFromJson(definition); Assert.assertTrue(null != streamDefinition1.getStreamId()); // System.out.println(gson.toJson(streamDefinition1)); StreamDefinition streamDefinition2 = new StreamDefinition("org.wso2.esb.MediatorStatistics", "2.3.0"); List<Attribute> meta = new ArrayList<Attribute>(1); meta.add(new Attribute("ipAdd", AttributeType.STRING)); streamDefinition2.setMetaData(meta); List<Attribute> payload = new ArrayList<Attribute>(5); payload.add(new Attribute("symbol", AttributeType.STRING)); payload.add(new Attribute("price", AttributeType.DOUBLE)); payload.add(new Attribute("volume", AttributeType.INT)); payload.add(new Attribute("maxTemp", AttributeType.DOUBLE)); payload.add(new Attribute("minTemp", AttributeType.DOUBLE)); streamDefinition2.setPayloadData(payload); Assert.assertEquals(streamDefinition1, streamDefinition2); } @Test public void testDefinitionConversionWithoutVersion() throws MalformedStreamDefinitionException { String definition = "{" + " 'name':'org.wso2.esb.MediatorStatistics'," + // " 'version':'2.3.0'," + " 'nickName': 'Stock Quote Information'," + " 'description': 'Some Desc'," + " 'tags':['foo', 'bar']," + " 'metaData':[" + " {'name':'ipAdd','type':'STRING'}" + " ]," + " 'payloadData':[" + " {'name':'symbol','type':'string'}," + " {'name':'price','type':'double'}," + " {'name':'volume','type':'int'}," + " {'name':'max','type':'double'}," + " {'name':'min','type':'double'}" + " ]" + "}"; StreamDefinition streamDefinition1 = EventDefinitionConverterUtils.convertFromJson(definition); Assert.assertTrue(null != streamDefinition1.getStreamId()); // System.out.println(gson.toJson(streamDefinition1)); StreamDefinition streamDefinition2 = new StreamDefinition("org.wso2.esb.MediatorStatistics", "1.0.0"); List<Attribute> meta = new ArrayList<Attribute>(1); meta.add(new Attribute("ipAdd", AttributeType.STRING)); streamDefinition2.setMetaData(meta); List<Attribute> payload = new ArrayList<Attribute>(5); payload.add(new Attribute("symbol", AttributeType.STRING)); payload.add(new Attribute("price", AttributeType.DOUBLE)); payload.add(new Attribute("volume", AttributeType.INT)); payload.add(new Attribute("max", AttributeType.DOUBLE)); payload.add(new Attribute("min", AttributeType.DOUBLE)); streamDefinition2.setPayloadData(payload); Assert.assertEquals(streamDefinition1, streamDefinition2); } }