diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jDimension.java b/src/org/olap4j/driver/xmla/XmlaOlap4jDimension.java index c77a3ec..8473419 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jDimension.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jDimension.java @@ -63,7 +63,7 @@ public Hierarchy getDefaultHierarchy() { return hierarchies.get(0); } - public boolean equeals(Object obj) { + public boolean equals(Object obj) { return (obj instanceof XmlaOlap4jDimension) && this.uniqueName.equals( ((XmlaOlap4jDimension)obj).getUniqueName()); diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jElement.java b/src/org/olap4j/driver/xmla/XmlaOlap4jElement.java index 2a85ea4..844bc4a 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jElement.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jElement.java @@ -70,7 +70,7 @@ public int hashCode() { // Keep this declaration abstract as a reminder to // overriding classes. - abstract public boolean equeals(Object obj); + abstract public boolean equals(Object obj); } // End XmlaOlap4jElement.java diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jHierarchy.java b/src/org/olap4j/driver/xmla/XmlaOlap4jHierarchy.java index 898fa3a..b49004a 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jHierarchy.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jHierarchy.java @@ -79,7 +79,7 @@ public NamedList getRootMembers() throws OlapException { return Olap4jUtil.cast(list); } - public boolean equeals(Object obj) { + public boolean equals(Object obj) { return (obj instanceof XmlaOlap4jHierarchy) && this.uniqueName.equals( ((XmlaOlap4jHierarchy)obj).getUniqueName()); diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jLevel.java b/src/org/olap4j/driver/xmla/XmlaOlap4jLevel.java index 7970f84..bb16d59 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jLevel.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jLevel.java @@ -137,7 +137,7 @@ public int getCardinality() { return cardinality; } - public boolean equeals(Object obj) { + public boolean equals(Object obj) { return (obj instanceof XmlaOlap4jLevel) && this.uniqueName.equals( ((XmlaOlap4jLevel)obj).getUniqueName()); diff --git a/src/org/olap4j/driver/xmla/XmlaOlap4jProperty.java b/src/org/olap4j/driver/xmla/XmlaOlap4jProperty.java index 340a539..67a9c9c 100644 --- a/src/org/olap4j/driver/xmla/XmlaOlap4jProperty.java +++ b/src/org/olap4j/driver/xmla/XmlaOlap4jProperty.java @@ -63,7 +63,7 @@ public ContentType getContentType() { return contentType; } - public boolean equeals(Object obj) { + public boolean equals(Object obj) { return (obj instanceof XmlaOlap4jProperty) && this.uniqueName.equals( ((XmlaOlap4jProperty)obj).getUniqueName()); diff --git a/testsrc/org/olap4j/OlapTreeTest.java b/testsrc/org/olap4j/OlapTreeTest.java new file mode 100644 index 0000000..a302031 --- /dev/null +++ b/testsrc/org/olap4j/OlapTreeTest.java @@ -0,0 +1,77 @@ +/* +// $Id:$ +// This software is subject to the terms of the Eclipse Public License v1.0 +// Agreement, available at the following URL: +// http://www.eclipse.org/legal/epl-v10.html. +// Copyright (C) 2007-2009 Julian Hyde +// All Rights Reserved. +// You must accept the terms of that agreement to use this software. +*/ +package org.olap4j; + +import java.sql.Connection; +import java.util.HashMap; +import java.util.Map; + +import org.olap4j.metadata.Cube; +import org.olap4j.metadata.Dimension; +import org.olap4j.metadata.Hierarchy; +import org.olap4j.metadata.Schema; +import org.olap4j.test.TestContext; + +import junit.framework.TestCase; + +/** + * Tests some particularities of the OLAP tree objects. + * @author Luc Boudreau + */ +public class OlapTreeTest extends TestCase { + + private final TestContext.Tester tester = + TestContext.instance().getTester(); + + /** + * Simple strategy to prevent connection leaks: each test that needs a + * connection assigns it to this field, and {@link #tearDown()} closes it + * if it is not already closed. + */ + private Connection connection; + + protected void tearDown() throws Exception { + // Simple strategy to prevent connection leaks + if (connection != null + && !connection.isClosed()) + { + connection.close(); + connection = null; + } + } + + /** + * Tests if olap objects can be included in collections and + * retrieved properly. + */ + public void testHashCompatibility() throws Exception { + connection = tester.createConnection(); + OlapConnection olapConnection = + tester.getWrapper().unwrap(connection, OlapConnection.class); + Schema schema = olapConnection.getSchema(); + Cube cube = schema.getCubes().get("Sales"); + + Map dimensionMap = + new HashMap(); + Dimension dim1 = cube.getDimensions().get("Promotion Media"); + dimensionMap.put(dim1, "Test1"); + assertTrue(dimensionMap.containsKey(dim1)); + assertEquals("Test1", dimensionMap.get(dim1)); + + Map hierarchyMap = + new HashMap(); + Hierarchy hchy1 = dim1.getDefaultHierarchy(); + hierarchyMap.put(hchy1, "Test2"); + assertTrue(hierarchyMap.containsKey(hchy1)); + assertEquals("Test2", hierarchyMap.get(hchy1)); + assertTrue(dimensionMap.containsKey(hchy1.getDimension())); + } +} +// End OlapTreeTest.java \ No newline at end of file