Path: blob/master/test/jdk/javax/management/ObjectName/ApplyWildcardTest.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 471680726* @summary Test the ObjectName.apply(ObjectName) method27* with wildcards in the key properties value part.28* @author Luis-Miguel Alventosa29*30* @run clean ApplyWildcardTest31* @run build ApplyWildcardTest32* @run main ApplyWildcardTest33*/3435import javax.management.ObjectName;3637public class ApplyWildcardTest {3839private static final String positiveTests[][] = {40{ "d:k=*", "d:k=\"\"" },4142{ "d:k=*", "d:k=" },43{ "d:k=*", "d:k=v" },44{ "d:k=a*b", "d:k=axyzb" },45{ "d:k=a*b,*", "d:k=axyzb,k2=v2" },46{ "d:*,k=a*b", "d:k=axyzb,k2=v2" },47{ "d:k=?", "d:k=v" },48{ "d:k=a?b", "d:k=axb" },49{ "d:k=a?b,*", "d:k=axb,k2=v2" },50{ "d:*,k=a?b", "d:k=axb,k2=v2" },51{ "d:k=?*", "d:k=axyzb" },52{ "d:k=a?bc*d", "d:k=axbcyzd" },53{ "d:k=a?bc*d,*", "d:k=axbcyzd,k2=v2" },54{ "d:*,k=a?bc*d", "d:k=axbcyzd,k2=v2" },55{ "d:k1=?,k2=*", "d:k1=a,k2=ab" },56{ "d:k1=a?b,k2=c*d", "d:k1=axb,k2=cyzd" },57{ "d:k1=a?b,k2=c*d,*", "d:k1=axb,k2=cyzd,k3=v3" },58{ "d:*,k1=a?b,k2=c*d", "d:k1=axb,k2=cyzd,k3=v3" },5960{ "d:k=\"*\"", "d:k=\"\"" },61{ "d:k=\"*\"", "d:k=\"v\"" },62{ "d:k=\"a*b\"", "d:k=\"axyzb\"" },63{ "d:k=\"a*b\",*", "d:k=\"axyzb\",k2=\"v2\"" },64{ "d:*,k=\"a*b\"", "d:k=\"axyzb\",k2=\"v2\"" },65{ "d:k=\"?\"", "d:k=\"v\"" },66{ "d:k=\"a?b\"", "d:k=\"axb\"" },67{ "d:k=\"a?b\",*", "d:k=\"axb\",k2=\"v2\"" },68{ "d:*,k=\"a?b\"", "d:k=\"axb\",k2=\"v2\"" },69{ "d:k=\"?*\"", "d:k=\"axyzb\"" },70{ "d:k=\"a?bc*d\"", "d:k=\"axbcyzd\"" },71{ "d:k=\"a?bc*d\",*", "d:k=\"axbcyzd\",k2=\"v2\"" },72{ "d:*,k=\"a?bc*d\"", "d:k=\"axbcyzd\",k2=\"v2\"" },73{ "d:k1=\"?\",k2=\"*\"", "d:k1=\"a\",k2=\"ab\"" },74{ "d:k1=\"a?b\",k2=\"c*d\"", "d:k1=\"axb\",k2=\"cyzd\"" },75{ "d:k1=\"a?b\",k2=\"c*d\",*", "d:k1=\"axb\",k2=\"cyzd\",k3=\"v3\"" },76{ "d:*,k1=\"a?b\",k2=\"c*d\"", "d:k1=\"axb\",k2=\"cyzd\",k3=\"v3\"" },77};7879private static final String negativeTests[][] = {80{ "d:k=\"*\"", "d:k=" },8182{ "d:k=*", "d:k=,k2=" },83{ "d:k=*", "d:k=v,k2=v2" },84{ "d:k=a*b", "d:k=axyzbc" },85{ "d:k=a*b,*", "d:k=axyzbc,k2=v2" },86{ "d:*,k=a*b", "d:k=axyzbc,k2=v2" },87{ "d:k=?", "d:k=xyz" },88{ "d:k=a?b", "d:k=ab" },89{ "d:k=a?b,*", "d:k=ab,k2=v2" },90{ "d:*,k=a?b", "d:k=ab,k2=v2" },91{ "d:k=?*", "d:k=axyzb,k2=v2" },92{ "d:k=a?bc*d", "d:k=abcd" },93{ "d:k=a?bc*d,*", "d:k=abcd,k2=v2" },94{ "d:*,k=a?bc*d", "d:k=abcd,k2=v2" },95{ "d:k1=?,k2=*", "d:k1=ab,k2=ab" },96{ "d:k1=a?b,k2=c*d", "d:k1=ab,k2=cd" },97{ "d:k1=a?b,k2=c*d,*", "d:k1=ab,k2=cd,k3=v3" },98{ "d:*,k1=a?b,k2=c*d", "d:k1=ab,k2=cd,k3=v3" },99100{ "d:k=\"*\"", "d:k=\"\",k2=\"\"" },101{ "d:k=\"*\"", "d:k=\"v\",k2=\"v2\"" },102{ "d:k=\"a*b\"", "d:k=\"axyzbc\"" },103{ "d:k=\"a*b\",*", "d:k=\"axyzbc\",k2=\"v2\"" },104{ "d:*,k=\"a*b\"", "d:k=\"axyzbc\",k2=\"v2\"" },105{ "d:k=\"?\"", "d:k=\"xyz\"" },106{ "d:k=\"a?b\"", "d:k=\"ab\"" },107{ "d:k=\"a?b\",*", "d:k=\"ab\",k2=\"v2\"" },108{ "d:*,k=\"a?b\"", "d:k=\"ab\",k2=\"v2\"" },109{ "d:k=\"?*\"", "d:k=\"axyzb\",k2=\"v2\"" },110{ "d:k=\"a?bc*d\"", "d:k=\"abcd\"" },111{ "d:k=\"a?bc*d\",*", "d:k=\"abcd\",k2=\"v2\"" },112{ "d:*,k=\"a?bc*d\"", "d:k=\"abcd\",k2=\"v2\"" },113{ "d:k1=\"?\",k2=\"*\"", "d:k1=\"ab\",k2=\"ab\"" },114{ "d:k1=\"a?b\",k2=\"c*d\"", "d:k1=\"ab\",k2=\"cd\"" },115{ "d:k1=\"a?b\",k2=\"c*d\",*", "d:k1=\"ab\",k2=\"cd\",k3=\"v3\"" },116{ "d:*,k1=\"a?b\",k2=\"c*d\"", "d:k1=\"ab\",k2=\"cd\",k3=\"v3\"" },117};118119private static int runPositiveTests() {120int error = 0;121for (int i = 0; i < positiveTests.length; i++) {122System.out.println("----------------------------------------------");123try {124ObjectName on1 = ObjectName.getInstance(positiveTests[i][0]);125ObjectName on2 = ObjectName.getInstance(positiveTests[i][1]);126System.out.println("\"" + on1 + "\".apply(\"" + on2 + "\")");127boolean result = on1.apply(on2);128System.out.println("Result = " + result);129if (result == false) {130error++;131System.out.println("Test failed!");132} else {133System.out.println("Test passed!");134}135} catch (Exception e) {136error++;137System.out.println("Got Unexpected Exception = " + e.toString());138System.out.println("Test failed!");139}140System.out.println("----------------------------------------------");141}142return error;143}144145private static int runNegativeTests() {146int error = 0;147for (int i = 0; i < negativeTests.length; i++) {148System.out.println("----------------------------------------------");149try {150ObjectName on1 = ObjectName.getInstance(negativeTests[i][0]);151ObjectName on2 = ObjectName.getInstance(negativeTests[i][1]);152System.out.println("\"" + on1 + "\".apply(\"" + on2 + "\")");153boolean result = on1.apply(on2);154System.out.println("Result = " + result);155if (result == true) {156error++;157System.out.println("Test failed!");158} else {159System.out.println("Test passed!");160}161} catch (Exception e) {162error++;163System.out.println("Got Unexpected Exception = " + e.toString());164System.out.println("Test failed!");165}166System.out.println("----------------------------------------------");167}168return error;169}170171public static void main(String[] args) throws Exception {172173int error = 0;174175// Check null values176//177System.out.println("----------------------------------------------");178System.out.println("Test ObjectName.apply(null)");179try {180new ObjectName("d:k=v").apply(null);181error++;182System.out.println("Didn't get expected NullPointerException!");183System.out.println("Test failed!");184} catch (NullPointerException e) {185System.out.println("Got expected exception '" + e.toString() + "'");186System.out.println("Test passed!");187} catch (Exception e) {188error++;189System.out.println("Got unexpected exception '" + e.toString() + "'");190System.out.println("Test failed!");191}192System.out.println("----------------------------------------------");193194// Check domain pattern values195//196System.out.println("----------------------------------------------");197System.out.println("Test ObjectName.apply(domain_pattern)");198try {199if (new ObjectName("d:k=v").apply(new ObjectName("*:k=v"))) {200error++;201System.out.println("Got 'true' expecting 'false'");202System.out.println("Test failed!");203} else {204System.out.println("Got expected return value 'false'");205System.out.println("Test passed!");206}207} catch (Exception e) {208error++;209System.out.println("Got unexpected exception = " + e.toString());210System.out.println("Test failed!");211}212System.out.println("----------------------------------------------");213214// Check key property list pattern values215//216System.out.println("----------------------------------------------");217System.out.println("Test ObjectName.apply(key_property_list_pattern)");218try {219if (new ObjectName("d:k=v").apply(new ObjectName("d:k=v,*"))) {220error++;221System.out.println("Got 'true' expecting 'false'");222System.out.println("Test failed!");223} else {224System.out.println("Got expected return value 'false'");225System.out.println("Test passed!");226}227} catch (Exception e) {228error++;229System.out.println("Got unexpected exception = " + e.toString());230System.out.println("Test failed!");231}232System.out.println("----------------------------------------------");233234// Check key property value pattern values235//236System.out.println("----------------------------------------------");237System.out.println("Test ObjectName.apply(key_property_value_pattern)");238try {239if (new ObjectName("d:k=v").apply(new ObjectName("d:k=*"))) {240error++;241System.out.println("Got 'true' expecting 'false'");242System.out.println("Test failed!");243} else {244System.out.println("Got expected return value 'false'");245System.out.println("Test passed!");246}247} catch (Exception e) {248error++;249System.out.println("Got unexpected exception = " + e.toString());250System.out.println("Test failed!");251}252System.out.println("----------------------------------------------");253254error += runPositiveTests();255error += runNegativeTests();256257if (error > 0) {258final String msg = "Test FAILED! Got " + error + " error(s)";259System.out.println(msg);260throw new IllegalArgumentException(msg);261} else {262System.out.println("Test PASSED!");263}264}265}266267268