/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 4716807
* @summary Test the ObjectName.apply(ObjectName) method
* with wildcards in the key properties value part.
* @author Luis-Miguel Alventosa
* @run clean ApplyWildcardTest
* @run build ApplyWildcardTest
* @run main ApplyWildcardTest
*/
public class ApplyWildcardTest {
{ "d:k=*", "d:k=\"\"" },
{ "d:k=*", "d:k=" },
{ "d:k=*", "d:k=v" },
{ "d:k=a*b", "d:k=axyzb" },
{ "d:k=a*b,*", "d:k=axyzb,k2=v2" },
{ "d:*,k=a*b", "d:k=axyzb,k2=v2" },
{ "d:k=?", "d:k=v" },
{ "d:k=a?b", "d:k=axb" },
{ "d:k=a?b,*", "d:k=axb,k2=v2" },
{ "d:*,k=a?b", "d:k=axb,k2=v2" },
{ "d:k=?*", "d:k=axyzb" },
{ "d:k=a?bc*d", "d:k=axbcyzd" },
{ "d:k=a?bc*d,*", "d:k=axbcyzd,k2=v2" },
{ "d:*,k=a?bc*d", "d:k=axbcyzd,k2=v2" },
{ "d:k1=?,k2=*", "d:k1=a,k2=ab" },
{ "d:k1=a?b,k2=c*d", "d:k1=axb,k2=cyzd" },
{ "d:k1=a?b,k2=c*d,*", "d:k1=axb,k2=cyzd,k3=v3" },
{ "d:*,k1=a?b,k2=c*d", "d:k1=axb,k2=cyzd,k3=v3" },
{ "d:k=\"*\"", "d:k=\"\"" },
{ "d:k=\"*\"", "d:k=\"v\"" },
{ "d:k=\"a*b\"", "d:k=\"axyzb\"" },
{ "d:k=\"a*b\",*", "d:k=\"axyzb\",k2=\"v2\"" },
{ "d:*,k=\"a*b\"", "d:k=\"axyzb\",k2=\"v2\"" },
{ "d:k=\"?\"", "d:k=\"v\"" },
{ "d:k=\"a?b\"", "d:k=\"axb\"" },
{ "d:k=\"a?b\",*", "d:k=\"axb\",k2=\"v2\"" },
{ "d:*,k=\"a?b\"", "d:k=\"axb\",k2=\"v2\"" },
{ "d:k=\"?*\"", "d:k=\"axyzb\"" },
{ "d:k=\"a?bc*d\"", "d:k=\"axbcyzd\"" },
{ "d:k=\"a?bc*d\",*", "d:k=\"axbcyzd\",k2=\"v2\"" },
{ "d:*,k=\"a?bc*d\"", "d:k=\"axbcyzd\",k2=\"v2\"" },
{ "d:k1=\"?\",k2=\"*\"", "d:k1=\"a\",k2=\"ab\"" },
{ "d:k1=\"a?b\",k2=\"c*d\"", "d:k1=\"axb\",k2=\"cyzd\"" },
{ "d:k1=\"a?b\",k2=\"c*d\",*", "d:k1=\"axb\",k2=\"cyzd\",k3=\"v3\"" },
{ "d:*,k1=\"a?b\",k2=\"c*d\"", "d:k1=\"axb\",k2=\"cyzd\",k3=\"v3\"" },
};
{ "d:k=\"*\"", "d:k=" },
{ "d:k=*", "d:k=,k2=" },
{ "d:k=*", "d:k=v,k2=v2" },
{ "d:k=a*b", "d:k=axyzbc" },
{ "d:k=a*b,*", "d:k=axyzbc,k2=v2" },
{ "d:*,k=a*b", "d:k=axyzbc,k2=v2" },
{ "d:k=?", "d:k=xyz" },
{ "d:k=a?b", "d:k=ab" },
{ "d:k=a?b,*", "d:k=ab,k2=v2" },
{ "d:*,k=a?b", "d:k=ab,k2=v2" },
{ "d:k=?*", "d:k=axyzb,k2=v2" },
{ "d:k=a?bc*d", "d:k=abcd" },
{ "d:k=a?bc*d,*", "d:k=abcd,k2=v2" },
{ "d:*,k=a?bc*d", "d:k=abcd,k2=v2" },
{ "d:k1=?,k2=*", "d:k1=ab,k2=ab" },
{ "d:k1=a?b,k2=c*d", "d:k1=ab,k2=cd" },
{ "d:k1=a?b,k2=c*d,*", "d:k1=ab,k2=cd,k3=v3" },
{ "d:*,k1=a?b,k2=c*d", "d:k1=ab,k2=cd,k3=v3" },
{ "d:k=\"*\"", "d:k=\"\",k2=\"\"" },
{ "d:k=\"*\"", "d:k=\"v\",k2=\"v2\"" },
{ "d:k=\"a*b\"", "d:k=\"axyzbc\"" },
{ "d:k=\"a*b\",*", "d:k=\"axyzbc\",k2=\"v2\"" },
{ "d:*,k=\"a*b\"", "d:k=\"axyzbc\",k2=\"v2\"" },
{ "d:k=\"?\"", "d:k=\"xyz\"" },
{ "d:k=\"a?b\"", "d:k=\"ab\"" },
{ "d:k=\"a?b\",*", "d:k=\"ab\",k2=\"v2\"" },
{ "d:*,k=\"a?b\"", "d:k=\"ab\",k2=\"v2\"" },
{ "d:k=\"?*\"", "d:k=\"axyzb\",k2=\"v2\"" },
{ "d:k=\"a?bc*d\"", "d:k=\"abcd\"" },
{ "d:k=\"a?bc*d\",*", "d:k=\"abcd\",k2=\"v2\"" },
{ "d:*,k=\"a?bc*d\"", "d:k=\"abcd\",k2=\"v2\"" },
{ "d:k1=\"?\",k2=\"*\"", "d:k1=\"ab\",k2=\"ab\"" },
{ "d:k1=\"a?b\",k2=\"c*d\"", "d:k1=\"ab\",k2=\"cd\"" },
{ "d:k1=\"a?b\",k2=\"c*d\",*", "d:k1=\"ab\",k2=\"cd\",k3=\"v3\"" },
{ "d:*,k1=\"a?b\",k2=\"c*d\"", "d:k1=\"ab\",k2=\"cd\",k3=\"v3\"" },
};
private static int runPositiveTests() {
int error = 0;
try {
if (result == false) {
error++;
} else {
}
} catch (Exception e) {
error++;
}
}
return error;
}
private static int runNegativeTests() {
int error = 0;
try {
if (result == true) {
error++;
} else {
}
} catch (Exception e) {
error++;
}
}
return error;
}
int error = 0;
// Check null values
//
try {
error++;
} catch (NullPointerException e) {
} catch (Exception e) {
error++;
}
// Check domain pattern values
//
try {
error++;
} else {
}
} catch (Exception e) {
error++;
}
// Check key property list pattern values
//
try {
error++;
} else {
}
} catch (Exception e) {
error++;
}
// Check key property value pattern values
//
try {
error++;
} else {
}
} catch (Exception e) {
error++;
}
error += runPositiveTests();
error += runNegativeTests();
if (error > 0) {
throw new IllegalArgumentException(msg);
} else {
}
}
}