Path: blob/master/test/jdk/javax/management/openmbean/EqualsTest.java
41149 views
/*1* Copyright (c) 2005, 2015, Oracle and/or its affiliates. All rights reserved.2* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.3*4* This code is free software; you can redistribute it and/or modify it5* under the terms of the GNU General Public License version 2 only, as6* published by the Free Software Foundation.7*8* This code is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License11* version 2 for more details (a copy is included in the LICENSE file that12* accompanied this code).13*14* You should have received a copy of the GNU General Public License version15* 2 along with this work; if not, write to the Free Software Foundation,16* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/*24* @test25* @bug 507217426* @summary Test CompositeDataSupport.equals with ArrayType27* @author Shanliang JIANG28*29* @run clean EqualsTest30* @run build EqualsTest31* @run main EqualsTest32*/3334import javax.management.ObjectName;35import javax.management.openmbean.*;3637public class EqualsTest {3839/*40* Print message41*/42private static void echo(String message) {43System.out.println(message);44}4546/**47* Main48*/49public static void main(String[] args) throws Exception {50echo("=-=-= Test CompositeDataSupport.equals() with ArrayType =-=-=");5152echo(">>> Two SimpleTypes with different descriptions");53CompositeType ct1 = new CompositeType(54"MyType",55"for test",56new String[] {"a", "b"},57new String[] {"a_desc", "b_desc"},58new OpenType[] {SimpleType.BOOLEAN,SimpleType.STRING});5960CompositeType ct2 = new CompositeType(61"MyType",62"for test",63new String[] {"a", "b"},64new String[] {"aa_desc", "bb_desc"},65new OpenType[] {SimpleType.BOOLEAN, SimpleType.STRING});6667if (!ct1.equals(ct2)) {68throw new RuntimeException("CompositeType.equals fails!");69}70if (ct1.hashCode() != ct2.hashCode()) {71throw new RuntimeException("CompositeType.hashCode fails!");72}7374echo(">>> Two SimpleTypes with equal values");75CompositeData compositeData0 = new CompositeDataSupport(76ct1,77new String[] {"a", "b"},78new Object[] {new Boolean(true), ""});7980CompositeData compositeData1 = new CompositeDataSupport(81ct2,82new String[] {"a", "b"},83new Object[] {new Boolean(true), ""});8485if (!compositeData0.equals(compositeData1)) {86throw new RuntimeException("CompositeDataSupport.equals fails!");87}88if (compositeData0.hashCode() != compositeData1.hashCode()) {89throw new RuntimeException("CompositeDataSupport.hashCode fails!");90}9192echo(">>> Two ArrayTypes with different references");93CompositeType ct3 = new CompositeType(94"MyType",95"for test",96new String[] {"a"},97new String[] {"a_desc"},98new OpenType[] {new ArrayType(1, SimpleType.STRING)});99100CompositeData compositeData2 = new CompositeDataSupport(101ct3,102new String[] {"a"},103new Object[] {new String[] {"x", "y"}});104105CompositeData compositeData3 = new CompositeDataSupport(106ct3,107new String[] {"a"},108new Object[] {new String[] {"x", "y"}});109110if (!compositeData2.equals(compositeData3)) {111throw new RuntimeException("CompositeDataSupport.equals fails!");112}113if (compositeData2.hashCode() != compositeData3.hashCode()) {114throw new RuntimeException("CompositeDataSupport.hashCode fails!");115}116117echo(">>> Two ArrayTypes with different values");118CompositeData compositeData4 = new CompositeDataSupport(119ct3,120new String[] {"a"},121new Object[] {new String[] {"x", "y", "x"}});122123if (compositeData2.equals(compositeData4)) {124throw new RuntimeException("CompositeDataSupport.equals fails!");125}126127echo(">>> Two 2-dimension ArrayTypes with equal values");128CompositeType ct4 = new CompositeType(129"MyType",130"for test",131new String[] {"a"},132new String[] {"a_desc"},133new OpenType[] {new ArrayType(2, SimpleType.OBJECTNAME)});134135final String s = "t:t=t";136CompositeData compositeData5 = new CompositeDataSupport(137ct4,138new String[] {"a"},139new Object[] {140new ObjectName[][] {141new ObjectName[] {142new ObjectName(s), new ObjectName(s)143},144new ObjectName[] {145new ObjectName(s), new ObjectName(s)146}147}148});149150CompositeData compositeData6 = new CompositeDataSupport(151ct4,152new String[] {"a"},153new Object[] {154new ObjectName[][] {155new ObjectName[] {156new ObjectName(s), new ObjectName(s)157},158new ObjectName[] {159new ObjectName(s), new ObjectName(s)160}161}162});163164if (!compositeData5.equals(compositeData6)) {165throw new RuntimeException("CompositeDataSupport.equals fails!");166}167if (compositeData5.hashCode() != compositeData6.hashCode()) {168throw new RuntimeException("CompositeDataSupport.hashCode fails!");169}170171echo(">>> Two primitive ArrayTypes with different descriptions");172CompositeType ct5 = new CompositeType(173"MyType",174"for test",175new String[] {"a", "b"},176new String[] {"a_desc", "b_desc"},177new OpenType[] {178SimpleType.BOOLEAN,179ArrayType.getPrimitiveArrayType(short[].class)180});181182CompositeType ct6 = new CompositeType(183"MyType",184"for test",185new String[] {"a", "b"},186new String[] {"aa_desc", "bb_desc"},187new OpenType[] {188SimpleType.BOOLEAN,189ArrayType.getPrimitiveArrayType(short[].class)190});191192if (!ct5.equals(ct6)) {193throw new RuntimeException("CompositeType.equals fails!");194}195if (ct5.hashCode() != ct6.hashCode()) {196throw new RuntimeException("CompositeType.hashCode fails!");197}198199echo(">>> Two primitive ArrayTypes with different references");200CompositeType ct7 = new CompositeType(201"MyType",202"for test",203new String[] {"a"},204new String[] {"a_desc"},205new OpenType[] {206ArrayType.getPrimitiveArrayType(int[].class)207});208209CompositeData compositeData7 = new CompositeDataSupport(210ct7,211new String[] {"a"},212new Object[] {new int[] {1, 2}});213214CompositeData compositeData8 = new CompositeDataSupport(215ct7,216new String[] {"a"},217new Object[] {new int[] {1, 2}});218219if (!compositeData7.equals(compositeData8)) {220throw new RuntimeException("CompositeDataSupport.equals fails!");221}222if (compositeData7.hashCode() != compositeData8.hashCode()) {223throw new RuntimeException("CompositeDataSupport.hashCode fails!");224}225226echo(">>> Two primitive ArrayTypes with different values");227CompositeData compositeData9 = new CompositeDataSupport(228ct7,229new String[] {"a"},230new Object[] {new int[] {1, 2, 3}});231232if (compositeData7.equals(compositeData9)) {233throw new RuntimeException("CompositeDataSupport.equals fails!");234}235236echo(">>> Two 2-dimension primitive ArrayTypes with equal values");237CompositeType ct8 = new CompositeType(238"MyType",239"for test",240new String[] {"a"},241new String[] {"a_desc"},242new OpenType[] {243ArrayType.getPrimitiveArrayType(boolean[][].class)244});245246CompositeData compositeData10 = new CompositeDataSupport(247ct8,248new String[] {"a"},249new Object[] {new boolean[][]250{new boolean[] {true, true},251new boolean[] {true, true}}});252253CompositeData compositeData11 = new CompositeDataSupport(254ct8,255new String[] {"a"},256new Object[] {new boolean[][]257{new boolean[] {true, true},258new boolean[] {true, true}}});259260if (!compositeData10.equals(compositeData11)) {261throw new RuntimeException("CompositeDataSupport.equals fails!");262}263if (compositeData10.hashCode() != compositeData11.hashCode()) {264throw new RuntimeException("CompositeDataSupport.hashCode fails!");265}266}267}268269270