/* * ************************************************************************************* * 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.view; import java.util.HashMap; import java.util.Map; import junit.framework.TestCase; import com.espertech.esper.support.view.SupportViewSpecFactory; import com.espertech.esper.epl.spec.ViewSpec; public class TestViewSpec extends TestCase { public void testEquals() throws Exception { final Class[] c_0 = new Class[] { String.class} ; final String[] s_0_0 = new String[] { "\"symbol\"" }; final String[] s_0_1 = new String[] { "\"price\"" }; final Class[] c_1 = new Class[] { String.class, Long.class} ; final String[] s_1_0 = new String[] { "\"symbol\"", "1" }; final String[] s_1_1 = new String[] { "\"price\"", "1" }; final String[] s_1_2 = new String[] { "\"price\"", "2" }; final String[] s_1_3 = new String[] { "\"price\"", "1" }; final Class[] c_2 = new Class[] { Boolean.class, String.class, Long.class} ; final String[] s_2_0 = new String[] { "true", "\"symbol\"", "1" }; final String[] s_2_1 = new String[] { "true", "\"price\"", "1" }; final String[] s_2_2 = new String[] { "true", "\"price\"", "2" }; final String[] s_2_3 = new String[] { "false", "\"price\"", "1" }; Map<Integer, ViewSpec> specs = new HashMap<Integer, ViewSpec>(); specs.put(1, SupportViewSpecFactory.makeSpec("ext", "sort", null, null)); specs.put(2, SupportViewSpecFactory.makeSpec("std", "sum", null, null)); specs.put(3, SupportViewSpecFactory.makeSpec("ext", "sort", null, null)); specs.put(4, SupportViewSpecFactory.makeSpec("ext", "sort", c_0, s_0_0)); specs.put(5, SupportViewSpecFactory.makeSpec("ext", "sort", c_0, s_0_0)); specs.put(6, SupportViewSpecFactory.makeSpec("ext", "sort", c_0, s_0_1)); specs.put(7, SupportViewSpecFactory.makeSpec("ext", "sort", c_1, s_1_0)); specs.put(8, SupportViewSpecFactory.makeSpec("ext", "sort", c_1, s_1_1)); specs.put(9, SupportViewSpecFactory.makeSpec("ext", "sort", c_1, s_1_2)); specs.put(10, SupportViewSpecFactory.makeSpec("ext", "sort", c_1, s_1_3)); specs.put(11, SupportViewSpecFactory.makeSpec("ext", "sort", c_2, s_2_0)); specs.put(12, SupportViewSpecFactory.makeSpec("ext", "sort", c_2, s_2_1)); specs.put(13, SupportViewSpecFactory.makeSpec("ext", "sort", c_2, s_2_2)); specs.put(14, SupportViewSpecFactory.makeSpec("ext", "sort", c_2, s_2_3)); Map<Integer, Integer> matches = new HashMap<Integer, Integer>(); matches.put(1,3); matches.put(3,1); matches.put(4,5); matches.put(5,4); matches.put(8,10); matches.put(10,8); // Compare each against each for (Map.Entry<Integer, ViewSpec> entryOut : specs.entrySet()) { for (Map.Entry<Integer, ViewSpec> entryIn : specs.entrySet()) { boolean result = entryOut.getValue().equals(entryIn.getValue()); if (entryOut == entryIn) { assertTrue(result); continue; } String message = "Comparing " + entryIn.getKey() + "=" + entryIn.getValue() + " and " + entryOut.getKey() + "=" + entryOut.getValue(); if ( (matches.containsKey(entryOut.getKey())) && (matches.get(entryOut.getKey()) == entryIn.getKey()) ) { assertTrue(message, result); } else { assertFalse(message, result); } } } } }