Break the Equality Matching rule tests in subclasses.
Add some tests for more Equality matching rules
18 files added
1 files modified
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.opends.server.config.ConfigEntry; |
| | | import org.opends.server.core.DirectoryServer; |
| | | import org.opends.server.extensions.SaltedMD5PasswordStorageScheme; |
| | | import org.opends.server.protocols.asn1.ASN1OctetString; |
| | | import org.opends.server.types.ByteString; |
| | | import org.opends.server.types.DN; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | import static org.opends.server.extensions.ExtensionsConstants.*; |
| | | |
| | | /** |
| | | * Test the AuthPasswordEqualityMatchingRule. |
| | | */ |
| | | public class AuthPasswordEqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"password", "password", true}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] {}; |
| | | } |
| | | |
| | | private Object[] generateValues(String password) throws Exception |
| | | { |
| | | ByteString bytePassword = new ASN1OctetString(password); |
| | | SaltedMD5PasswordStorageScheme scheme = new SaltedMD5PasswordStorageScheme(); |
| | | |
| | | ConfigEntry configEntry = |
| | | DirectoryServer.getConfigEntry(DN.decode("cn=Salted MD5,cn=Password Storage Schemes,cn=config")); |
| | | scheme.initializePasswordStorageScheme(configEntry); |
| | | |
| | | ByteString encodedAuthPassword = scheme.encodeAuthPassword(bytePassword); |
| | | StringBuilder[] authPWComponents = |
| | | AuthPasswordSyntax.decodeAuthPassword( |
| | | encodedAuthPassword.stringValue()); |
| | | |
| | | return new Object[] { |
| | | AUTH_PASSWORD_SCHEME_NAME_SALTED_MD5 + "$" |
| | | + authPWComponents[1].toString() |
| | | + "$"+ authPWComponents[2].toString(), |
| | | password, true}; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="valuesMatch") |
| | | public Object[][] createValuesMatch() |
| | | { |
| | | try |
| | | { |
| | | return new Object[][] { |
| | | generateValues("password"), |
| | | {"password", "something else", false}, |
| | | {"password", AUTH_PASSWORD_SCHEME_NAME_SALTED_MD5+"$something$else", |
| | | false}, |
| | | {"password", "scheme$something$else", false} |
| | | }; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return new Object[][] {}; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new AuthPasswordEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the BitStringEqualityMatchingRule. |
| | | */ |
| | | public class BitStringEqualityMatchingRuleTest extends EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] { |
| | | {"\'a\'B"}, |
| | | {"0"}, |
| | | {"010101"}, |
| | | {"\'10101"}, |
| | | {"\'1010\'A"}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"\'0\'B", "\'0\'B", true}, |
| | | {"\'1\'B", "\'1\'B", true}, |
| | | {"\'0\'B", "\'1\'B", false}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new BitStringEqualityMatchingRule(); |
| | | } |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.opends.server.schema.BooleanEqualityMatchingRuleTest; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the BooleanEqualityMatchingRule. |
| | | */ |
| | | public class BooleanEqualityMatchingRuleTest extends EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name= "equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"TRUE", "true", true}, |
| | | {"YES", "true", true}, |
| | | {"ON", "true", true}, |
| | | {"1", "true", true}, |
| | | {"FALSE", "false", true}, |
| | | {"NO", "false", true}, |
| | | {"OFF", "false", true}, |
| | | {"0", "false", true}, |
| | | {"TRUE", "false", false}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name= "equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] { |
| | | {"garbage"}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new BooleanEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the CaseExactEqualityMatchingRule. |
| | | */ |
| | | public class CaseExactEqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] { }; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"12345678", "12345678", true}, |
| | | {"12345678\u2163", "12345678\u2163", true}, |
| | | {"ABC45678", "ABC45678", true}, |
| | | {" ABC45678 ", "ABC45678", true}, |
| | | {"ABC 45678", "ABC 45678", true}, |
| | | {" ", " ", true}, |
| | | {"", "", true}, |
| | | {"ABC45678", "abc45678", false}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new CaseExactEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the CaseExactIA5EqualityMatchingRule. |
| | | */ |
| | | public class CaseExactIA5EqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] { |
| | | {"12345678\u2163"}, |
| | | }; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"12345678", "12345678", true}, |
| | | {"ABC45678", "ABC45678", true}, |
| | | {"ABC45678", "abc45678", false}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new CaseExactIA5EqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the CaseIgnoreEqualityMatchingRule. |
| | | */ |
| | | public class CaseIgnoreEqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] {}; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {" string ", "string", true}, |
| | | {"string ", "string", true}, |
| | | {" string", "string", true}, |
| | | {" ", " ", true}, |
| | | {"Z", "z", true}, |
| | | {"ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", |
| | | "abcdefghijklmnopqrstuvwxyz1234567890", true}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new CaseIgnoreEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the CaseExactIA5EqualityMatchingRule. |
| | | */ |
| | | public class CaseIgnoreIA5EqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] { |
| | | {"12345678\u2163"}, |
| | | }; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"12345678", "12345678", true}, |
| | | {"ABC45678", "ABC45678", true}, |
| | | {"ABC45678", "abc45678", true}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new CaseIgnoreIA5EqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the DirectoryStringFirstComponentEqualityMatchingRule. |
| | | */ |
| | | public class DirectoryStringFirstComponentEqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name= "equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"(1.2.8.5 NAME 'testtype' DESC 'full type')", "1.2.8.5", true}, |
| | | {"(1.2.8.5 NAME 'testtype' DESC 'full type')", "something", false}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name= "equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] {}; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new DirectoryStringFirstComponentEqualityMatchingRule(); |
| | | } |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the DistinguishedNameEqualityMatchingRule. |
| | | */ |
| | | public class DistinguishedNameEqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] { |
| | | |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | /* |
| | | * DistinguishedNameEqualityMatchingRule rely on DN for the |
| | | * DN with correct syntax, just do a few such tests and then |
| | | * do more tests with invalid DNs |
| | | */ |
| | | |
| | | return new Object[][] { |
| | | // valid DNs |
| | | { "", "" , true}, |
| | | { " ", "", true }, |
| | | { "dc=com", "dc=com" , true}, |
| | | { "DC=COM", "dc=com" , true}, |
| | | { "dc = com", "dc=com" , true}, |
| | | { " dc = com ", "dc=com" , true}, |
| | | { "dc=example,dc=com", "dc=example,dc=com" , true}, |
| | | { "dc=example, dc=com", "dc=example,dc=com", true }, |
| | | { "dc=example ,dc=com", "dc=example,dc=com", true }, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="warnmodeEqualityMatchingRule") |
| | | public Object[][] createWarnmodeEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | // invalid DNs |
| | | { "example", "example", true }, |
| | | { " example ", " example ", true }, |
| | | { "invalid dn", "invalid dn", true }, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new DistinguishedNameEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.opends.server.core.DirectoryException; |
| | | import org.opends.server.core.DirectoryServer; |
| | | import org.opends.server.protocols.asn1.ASN1OctetString; |
| | | import org.opends.server.types.AcceptRejectWarn; |
| | | import org.opends.server.types.ByteString; |
| | | import org.opends.server.types.ConditionResult; |
| | | import org.testng.annotations.DataProvider; |
| | | import org.testng.annotations.Test; |
| | | |
| | | import static org.opends.server.schema.SchemaConstants.SYNTAX_IA5_STRING_OID; |
| | | import static org.testng.Assert.*; |
| | | |
| | | /** |
| | | * Test The equality matching rules and the equality matching rule api. |
| | | */ |
| | | public class EqualityMatchingRuleTest extends SchemaTestCase |
| | | public abstract class EqualityMatchingRuleTest extends SchemaTestCase |
| | | { |
| | | /** |
| | | * Generate data for the EqualityMatching Rule test. |
| | | * |
| | | * @return the data for the equality matching rule test. |
| | | */ |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"WordEqualityMatchingRule", "first word", "first", true}, |
| | | {"WordEqualityMatchingRule", "first,word", "first", true}, |
| | | {"WordEqualityMatchingRule", "first word", "first", true}, |
| | | {"WordEqualityMatchingRule", "first#word", "first", true}, |
| | | {"WordEqualityMatchingRule", "first.word", "first", true}, |
| | | {"WordEqualityMatchingRule", "first/word", "first", true}, |
| | | {"WordEqualityMatchingRule", "first$word", "first", true}, |
| | | {"WordEqualityMatchingRule", "first+word", "first", true}, |
| | | {"WordEqualityMatchingRule", "first-word", "first", true}, |
| | | {"WordEqualityMatchingRule", "first=word", "first", true}, |
| | | {"WordEqualityMatchingRule", "word", "first", false}, |
| | | {"WordEqualityMatchingRule", "", "empty", false}, |
| | | {"WordEqualityMatchingRule", "", "", true}, |
| | | |
| | | {"DirectoryStringFirstComponentEqualityMatchingRule", |
| | | "(1.2.8.5 NAME 'testtype' DESC 'full type')", |
| | | "1.2.8.5", true}, |
| | | {"DirectoryStringFirstComponentEqualityMatchingRule", |
| | | "(1.2.8.5 NAME 'testtype' DESC 'full type')", |
| | | "something", false}, |
| | | |
| | | {"BooleanEqualityMatchingRule", "TRUE", "true", true}, |
| | | {"BooleanEqualityMatchingRule", "YES", "true", true}, |
| | | {"BooleanEqualityMatchingRule", "ON", "true", true}, |
| | | {"BooleanEqualityMatchingRule", "1", "true", true}, |
| | | {"BooleanEqualityMatchingRule", "FALSE", "false", true}, |
| | | {"BooleanEqualityMatchingRule", "NO", "false", true}, |
| | | {"BooleanEqualityMatchingRule", "OFF", "false", true}, |
| | | {"BooleanEqualityMatchingRule", "0", "false", true}, |
| | | {"BooleanEqualityMatchingRule", "TRUE", "false", false}, |
| | | public abstract Object[][] createEqualityMatchingRuleTest(); |
| | | |
| | | {"CaseIgnoreEqualityMatchingRule", " string ", "string", true}, |
| | | {"CaseIgnoreEqualityMatchingRule", "string ", "string", true}, |
| | | {"CaseIgnoreEqualityMatchingRule", " string", "string", true}, |
| | | {"CaseIgnoreEqualityMatchingRule", " ", " ", true}, |
| | | {"CaseIgnoreEqualityMatchingRule", "Z", "z", true}, |
| | | {"CaseIgnoreEqualityMatchingRule", |
| | | "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890", |
| | | "abcdefghijklmnopqrstuvwxyz1234567890", true}, |
| | | /** |
| | | * Generate invalid data for the EqualityMatching Rule test. |
| | | * |
| | | * @return the data for the EqualityMatchingRulesInvalidValuestest. |
| | | */ |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public abstract Object[][] createEqualityMatchingRuleInvalidValues(); |
| | | |
| | | {"IntegerEqualityMatchingRule", "1234567890", "1234567890", true}, |
| | | {"IntegerEqualityMatchingRule", "-1", "-1", true}, |
| | | {"IntegerEqualityMatchingRule", "-9876543210", "-9876543210", true}, |
| | | {"IntegerEqualityMatchingRule", "1", "-1", false}, |
| | | |
| | | {"GeneralizedTimeEqualityMatchingRule","2006090613Z", |
| | | "20060906130000.000Z", true}, |
| | | {"GeneralizedTimeEqualityMatchingRule","200609061350Z", |
| | | "20060906135000.000Z", true}, |
| | | {"GeneralizedTimeEqualityMatchingRule","200609061351Z", |
| | | "20060906135000.000Z", false}, |
| | | {"GeneralizedTimeEqualityMatchingRule","20060906135030Z", |
| | | "20060906135030.000Z", true}, |
| | | {"GeneralizedTimeEqualityMatchingRule","20060906135030.3Z", |
| | | "20060906135030.300Z", true}, |
| | | {"GeneralizedTimeEqualityMatchingRule","20060906135030.30Z", |
| | | "20060906135030.300Z", true}, |
| | | {"GeneralizedTimeEqualityMatchingRule","20060906135030.Z", |
| | | "20060906135030.000Z", true}, |
| | | {"GeneralizedTimeEqualityMatchingRule","20060906135030.0118Z", |
| | | "20060906135030.012Z", true}, |
| | | {"GeneralizedTimeEqualityMatchingRule","20060906135030+01", |
| | | "20060906125030.000Z", true}, |
| | | {"GeneralizedTimeEqualityMatchingRule","20060906135030+0101", |
| | | "20060906124930.000Z", true}, |
| | | |
| | | {"UUIDEqualityMatchingRule", |
| | | "12345678-9ABC-DEF0-1234-1234567890ab", |
| | | "12345678-9abc-def0-1234-1234567890ab", true}, |
| | | {"UUIDEqualityMatchingRule", |
| | | "12345678-9abc-def0-1234-1234567890ab", |
| | | "12345678-9abc-def0-1234-1234567890ab", true}, |
| | | {"UUIDEqualityMatchingRule", |
| | | "02345678-9abc-def0-1234-1234567890ab", |
| | | "12345678-9abc-def0-1234-1234567890ab", false}, |
| | | |
| | | {"BitStringEqualityMatchingRule", "\'0\'B", "\'0\'B", true}, |
| | | {"BitStringEqualityMatchingRule", "\'1\'B", "\'1\'B", true}, |
| | | {"BitStringEqualityMatchingRule", "\'0\'B", "\'1\'B", false}, |
| | | |
| | | {"CaseExactIA5EqualityMatchingRule", "12345678", |
| | | "12345678", true}, |
| | | {"CaseExactIA5EqualityMatchingRule", "ABC45678", |
| | | "ABC45678", true}, |
| | | {"CaseExactIA5EqualityMatchingRule", "ABC45678", |
| | | "abc45678", false}, |
| | | |
| | | {"CaseIgnoreIA5EqualityMatchingRule", "12345678", |
| | | "12345678", true}, |
| | | {"CaseIgnoreIA5EqualityMatchingRule", "ABC45678", |
| | | "ABC45678", true}, |
| | | {"CaseIgnoreIA5EqualityMatchingRule", "ABC45678", |
| | | "abc45678", true}, |
| | | |
| | | {"UniqueMemberEqualityMatchingRule", |
| | | "1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'0101'B", |
| | | "1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'0101'B", true}, |
| | | {"UniqueMemberEqualityMatchingRule", |
| | | "1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'0101'B", |
| | | "1.3.6.1.4.1.1466.0=#04024869,o=Test,C=GB#'0101'B", true}, |
| | | |
| | | }; |
| | | |
| | | } |
| | | /** |
| | | * Get an instance of the matching rule. |
| | | * |
| | | * @return An instance of the matching rule to test. |
| | | */ |
| | | public abstract EqualityMatchingRule getRule(); |
| | | |
| | | /** |
| | | * Test the normalization and the comparison of valid values. |
| | | */ |
| | | @Test(dataProvider= "equalitymatchingrules") |
| | | public void EqualityMatchingRules(String ruleClassName, String value1, |
| | | public void equalityMatchingRules(String value1, |
| | | String value2, Boolean result) throws Exception |
| | | { |
| | | // load the mathing rule code |
| | | Class rule = Class.forName("org.opends.server.schema."+ruleClassName); |
| | | |
| | | // Make sure that the specified class can be instantiated as a task. |
| | | EqualityMatchingRule ruleInstance = |
| | | (EqualityMatchingRule) rule.newInstance(); |
| | | |
| | | // we should call initializeMatchingRule but they all seem empty at the |
| | | // moment. |
| | | // ruleInstance.initializeMatchingRule(configEntry); |
| | | EqualityMatchingRule rule = getRule(); |
| | | |
| | | // normalize the 2 provided values and check that they are equals |
| | | ByteString normalizedValue1 = |
| | | ruleInstance.normalizeValue(new ASN1OctetString(value1)); |
| | | rule.normalizeValue(new ASN1OctetString(value1)); |
| | | ByteString normalizedValue2 = |
| | | ruleInstance.normalizeValue(new ASN1OctetString(value2)); |
| | | rule.normalizeValue(new ASN1OctetString(value2)); |
| | | |
| | | Boolean liveResult = ruleInstance.areEqual(normalizedValue1, |
| | | normalizedValue2); |
| | | Boolean liveResult = rule.areEqual(normalizedValue1, normalizedValue2); |
| | | assertEquals(result, liveResult); |
| | | } |
| | | |
| | | @DataProvider(name="equalityMathchingRuleInvalidValues") |
| | | public Object[][] createEqualityMathchingRuleInvalidValues() |
| | | |
| | | /** |
| | | * Generate data for the EqualityMatching Rule test in warn mode. |
| | | * |
| | | * @return the data for the equality matching rule test in warn mode. |
| | | */ |
| | | @DataProvider(name="warnmodeEqualityMatchingRule") |
| | | public Object[][] createWarnmodeEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"IntegerEqualityMatchingRule", "01"}, |
| | | {"IntegerEqualityMatchingRule", "00"}, |
| | | {"IntegerEqualityMatchingRule", "-01"}, |
| | | {"IntegerEqualityMatchingRule", "1-2"}, |
| | | {"IntegerEqualityMatchingRule", "b2"}, |
| | | {"IntegerEqualityMatchingRule", "-"}, |
| | | {"IntegerEqualityMatchingRule", ""}, |
| | | |
| | | {"GeneralizedTimeEqualityMatchingRule","2006september061Z"}, |
| | | {"GeneralizedTimeEqualityMatchingRule","2006"}, |
| | | {"GeneralizedTimeEqualityMatchingRule","200609061Z"}, |
| | | {"GeneralizedTimeEqualityMatchingRule","20060906135Z"}, |
| | | {"GeneralizedTimeEqualityMatchingRule","200609061350G"}, |
| | | {"GeneralizedTimeEqualityMatchingRule","2006090613mmZ"}, |
| | | {"GeneralizedTimeEqualityMatchingRule","20060906135030.011"}, |
| | | {"GeneralizedTimeEqualityMatchingRule","20060906135030Zx"}, |
| | | |
| | | {"UUIDEqualityMatchingRule", "G2345678-9abc-def0-1234-1234567890ab"}, |
| | | {"UUIDEqualityMatchingRule", "g2345678-9abc-def0-1234-1234567890ab"}, |
| | | {"UUIDEqualityMatchingRule", "12345678/9abc/def0/1234/1234567890ab"}, |
| | | {"UUIDEqualityMatchingRule", "12345678-9abc-def0-1234-1234567890a"}, |
| | | |
| | | {"BitStringEqualityMatchingRule", "\'a\'B"}, |
| | | {"BitStringEqualityMatchingRule", "0"}, |
| | | {"BitStringEqualityMatchingRule", "010101"}, |
| | | {"BitStringEqualityMatchingRule", "\'10101"}, |
| | | {"BitStringEqualityMatchingRule", "\'1010\'A"}, |
| | | |
| | | {"CaseExactIA5EqualityMatchingRule", "12345678\u2163"}, |
| | | |
| | | {"CaseIgnoreIA5EqualityMatchingRule", "12345678\u2163"}, |
| | | |
| | | {"UniqueMemberEqualityMatchingRule", |
| | | "1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'123'B"}, |
| | | {"UniqueMemberEqualityMatchingRule", "1.3.6.1.4.1.1466.01"} |
| | | |
| | | }; |
| | | return new Object[][] {}; |
| | | } |
| | | |
| | | /** |
| | | * Test the normalization and the comparison in the warning mode |
| | | */ |
| | | @Test(dataProvider= "warnmodeEqualityMatchingRule") |
| | | public void warnmodeEqualityMatchingRules( |
| | | String value1, String value2, Boolean result) |
| | | throws Exception |
| | | { |
| | | AcceptRejectWarn accept = DirectoryServer.getSyntaxEnforcementPolicy(); |
| | | DirectoryServer.setSyntaxEnforcementPolicy(AcceptRejectWarn.WARN); |
| | | try |
| | | { |
| | | equalityMatchingRules(value1, value2, result); |
| | | } |
| | | finally |
| | | { |
| | | DirectoryServer.setSyntaxEnforcementPolicy(accept); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Test that invalid values are rejected. |
| | | */ |
| | | @Test(dataProvider= "equalityMathchingRuleInvalidValues") |
| | | public void EqualityMatchingRulesInvalidValues(String ruleClassName, |
| | | String value) throws Exception |
| | | @Test(dataProvider= "equalityMatchingRuleInvalidValues") |
| | | public void equalityMatchingRulesInvalidValues(String value) throws Exception |
| | | { |
| | | |
| | | // load the matching rule code |
| | | Class rule = Class.forName("org.opends.server.schema."+ruleClassName); |
| | | |
| | | // Make sure that the specified class can be instantiated as a task. |
| | | EqualityMatchingRule ruleInstance = |
| | | (EqualityMatchingRule) rule.newInstance(); |
| | | |
| | | // we should call initializeMatchingRule but they all seem empty at the |
| | | // moment. |
| | | // ruleInstance.initializeMatchingRule(configEntry); |
| | | // Get the instance of the rule to be tested. |
| | | EqualityMatchingRule rule = getRule(); |
| | | |
| | | // normalize the 2 provided values |
| | | boolean success = false; |
| | | try |
| | | { |
| | | ruleInstance.normalizeValue(new ASN1OctetString(value)); |
| | | rule.normalizeValue(new ASN1OctetString(value)); |
| | | } catch (DirectoryException e) { |
| | | success = true; |
| | | } |
| | | // if we get there with false value for success then the tested |
| | | // matching rule did not raised the Exception. |
| | | |
| | | assertTrue(success); |
| | | if (!success) |
| | | { |
| | | fail("The matching rule : " + rule.getName() + |
| | | " should detect that value \"" + value + "\" is invalid"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * Generate data for the EqualityMatching Rule test. |
| | | * |
| | | * @return the data for the equality matching rule test. |
| | | */ |
| | | @DataProvider(name="valuesMatch") |
| | | public Object[][] createValuesMatch() |
| | | { |
| | | return new Object[][] {}; |
| | | } |
| | | |
| | | /** |
| | | * Test the valuesMatch method used for extensible filters. |
| | | */ |
| | | @Test(dataProvider= "valuesMatch") |
| | | public void testValuesMatch(String value1, |
| | | String value2, Boolean result) throws Exception |
| | | { |
| | | EqualityMatchingRule rule = getRule(); |
| | | |
| | | // normalize the 2 provided values and check that they are equals |
| | | ByteString normalizedValue1 = |
| | | rule.normalizeValue(new ASN1OctetString(value1)); |
| | | ByteString normalizedValue2 = |
| | | rule.normalizeValue(new ASN1OctetString(value2)); |
| | | |
| | | ConditionResult liveResult = |
| | | rule.valuesMatch(normalizedValue1, normalizedValue2); |
| | | if (result == true) |
| | | assertEquals(ConditionResult.TRUE, liveResult); |
| | | else |
| | | assertEquals(ConditionResult.FALSE, liveResult); |
| | | |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the GeneralizedTimeEqualityMatchingRule. |
| | | */ |
| | | public class GeneralizedTimeEqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object [][] { |
| | | {"2006september061Z"}, |
| | | {"2006"}, |
| | | {"200609061Z"}, |
| | | {"20060906135Z"}, |
| | | {"200609061350G"}, |
| | | {"2006090613mmZ"}, |
| | | {"20060906135030.011"}, |
| | | {"20060906135030Zx"}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object [][] { |
| | | {"2006090613Z", "20060906130000.000Z", true}, |
| | | {"200609061350Z", "20060906135000.000Z", true}, |
| | | {"200609061351Z", "20060906135000.000Z", false}, |
| | | {"20060906135030Z", "20060906135030.000Z", true}, |
| | | {"20060906135030.3Z", "20060906135030.300Z", true}, |
| | | {"20060906135030.30Z", "20060906135030.300Z", true}, |
| | | {"20060906135030.Z", "20060906135030.000Z", true}, |
| | | {"20060906135030.0118Z", "20060906135030.012Z", true}, |
| | | {"20060906135030+01", "20060906125030.000Z", true}, |
| | | {"20060906135030+0101", "20060906124930.000Z", true}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new GeneralizedTimeEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the IntegerEqualityMatchingRule. |
| | | */ |
| | | public class IntegerEqualityMatchingRuleTest extends EqualityMatchingRuleTest |
| | | { |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] { |
| | | {"01"}, |
| | | {"00"}, |
| | | {"-01"}, |
| | | {"1-2"}, |
| | | {"b2"}, |
| | | {"-"}, |
| | | {""}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"1234567890", "1234567890", true}, |
| | | {"-1", "-1", true}, |
| | | {"-9876543210", "-9876543210", true}, |
| | | {"1", "-1", false}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new IntegerEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the NumericStringEqualityMatchingRule. |
| | | */ |
| | | public class NumericStringEqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] { |
| | | {"A2B1"} |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"1234567890", "1234567890", true }, |
| | | {" 1234567890 ", "1234567890", true }, |
| | | /* disabled because it is currently failing |
| | | * see issue : 707 |
| | | {" 123 4567890 ", "1234567890", false }, |
| | | */ |
| | | {"1234", "5678", false }, |
| | | }; |
| | | |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new NumericStringEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the PresentationAddressEqualityMatchingRule. |
| | | * This matching rule is deprecated, tests are very basic... |
| | | */ |
| | | public class PresentationAddressEqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] {}; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {" ", " ", true}, |
| | | {"string", "string", true}, |
| | | {"STRING", "string", true}, |
| | | {"some string", "some other string", false}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new PresentationAddressEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the ProtocolInformationEqualityMatchingRule. |
| | | * This matching rule is deprecated, tests are very basic... |
| | | */ |
| | | public class ProtocolInformationEqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] {}; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {" ", " ", true}, |
| | | {"string", "string", true}, |
| | | {"STRING", "string", true}, |
| | | {"some string", "some other string", false}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new ProtocolInformationEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | |
| | | /** |
| | | * Test the UUIDEqualityMatchingRule. |
| | | */ |
| | | public class UUIDEqualityMatchingRuleTest extends EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] { |
| | | {"G2345678-9abc-def0-1234-1234567890ab"}, |
| | | {"g2345678-9abc-def0-1234-1234567890ab"}, |
| | | {"12345678/9abc/def0/1234/1234567890ab"}, |
| | | {"12345678-9abc-def0-1234-1234567890a"}, |
| | | }; |
| | | |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"12345678-9ABC-DEF0-1234-1234567890ab", |
| | | "12345678-9abc-def0-1234-1234567890ab", true}, |
| | | {"12345678-9abc-def0-1234-1234567890ab", |
| | | "12345678-9abc-def0-1234-1234567890ab", true}, |
| | | {"02345678-9abc-def0-1234-1234567890ab", |
| | | "12345678-9abc-def0-1234-1234567890ab", false}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new UUIDEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * test the UniqueMemberEqualityMatchingRule. |
| | | */ |
| | | public class UniqueMemberEqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] { |
| | | {"1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'123'B"}, |
| | | {"1.3.6.1.4.1.1466.01"} |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object [][] { |
| | | {"1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'0101'B", |
| | | "1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'0101'B", true}, |
| | | {"1.3.6.1.4.1.1466.0=#04024869,O=Test,C=GB#'0101'B", |
| | | "1.3.6.1.4.1.1466.0=#04024869,o=Test,C=GB#'0101'B", true}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new UniqueMemberEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.opends.server.config.ConfigEntry; |
| | | import org.opends.server.core.DirectoryServer; |
| | | import org.opends.server.extensions.SaltedMD5PasswordStorageScheme; |
| | | import org.opends.server.protocols.asn1.ASN1OctetString; |
| | | import org.opends.server.types.ByteString; |
| | | import org.opends.server.types.DN; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | |
| | | /** |
| | | * Test the AuthPasswordEqualityMatchingRule. |
| | | */ |
| | | public class UserPasswordEqualityMatchingRuleTest extends |
| | | EqualityMatchingRuleTest |
| | | { |
| | | |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"password", "password", true}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | return new Object[][] {}; |
| | | } |
| | | |
| | | private Object[] generateValues(String password) throws Exception |
| | | { |
| | | ByteString bytePassword = new ASN1OctetString(password); |
| | | SaltedMD5PasswordStorageScheme scheme = new SaltedMD5PasswordStorageScheme(); |
| | | |
| | | ConfigEntry configEntry = |
| | | DirectoryServer.getConfigEntry( |
| | | DN.decode("cn=Salted MD5,cn=Password Storage Schemes,cn=config")); |
| | | scheme.initializePasswordStorageScheme(configEntry); |
| | | |
| | | ByteString encodedAuthPassword = |
| | | scheme.encodePasswordWithScheme(bytePassword); |
| | | |
| | | return new Object[] { |
| | | encodedAuthPassword.toString(), password, true}; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="valuesMatch") |
| | | public Object[][] createValuesMatch() |
| | | { |
| | | try |
| | | { |
| | | return new Object[][] { |
| | | generateValues("password"), |
| | | {"password", "something else", false}, |
| | | {"password", "{wong}password", false}, |
| | | {"password", "{SMD5}wrong", false} |
| | | }; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return new Object[][] {}; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new UserPasswordEqualityMatchingRule(); |
| | | } |
| | | |
| | | } |
| New file |
| | |
| | | /* |
| | | * CDDL HEADER START |
| | | * |
| | | * The contents of this file are subject to the terms of the |
| | | * Common Development and Distribution License, Version 1.0 only |
| | | * (the "License"). You may not use this file except in compliance |
| | | * with the License. |
| | | * |
| | | * You can obtain a copy of the license at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE |
| | | * or https://OpenDS.dev.java.net/OpenDS.LICENSE. |
| | | * See the License for the specific language governing permissions |
| | | * and limitations under the License. |
| | | * |
| | | * When distributing Covered Code, include this CDDL HEADER in each |
| | | * file and include the License file at |
| | | * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, |
| | | * add the following below this CDDL HEADER, with the fields enclosed |
| | | * by brackets "[]" replaced with your own identifying * information: |
| | | * Portions Copyright [yyyy] [name of copyright owner] |
| | | * |
| | | * CDDL HEADER END |
| | | * |
| | | * |
| | | * Portions Copyright 2006 Sun Microsystems, Inc. |
| | | */ |
| | | package org.opends.server.schema; |
| | | |
| | | import org.opends.server.api.EqualityMatchingRule; |
| | | import org.testng.annotations.DataProvider; |
| | | |
| | | /** |
| | | * Test the Word Equality Matching Rule |
| | | */ |
| | | public class WordEqualityMatchingRuleTest extends EqualityMatchingRuleTest |
| | | { |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | public EqualityMatchingRule getRule() |
| | | { |
| | | return new WordEqualityMatchingRule(); |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @DataProvider(name="equalitymatchingrules") |
| | | public Object[][] createEqualityMatchingRuleTest() |
| | | { |
| | | return new Object[][] { |
| | | {"first word", "first", true}, |
| | | {"first,word", "first", true}, |
| | | {"first word", "first", true}, |
| | | {"first#word", "first", true}, |
| | | {"first.word", "first", true}, |
| | | {"first/word", "first", true}, |
| | | {"first$word", "first", true}, |
| | | {"first+word", "first", true}, |
| | | {"first-word", "first", true}, |
| | | {"first=word", "first", true}, |
| | | {"word", "first", false}, |
| | | {"", "empty", false}, |
| | | {"", "", true}, |
| | | }; |
| | | } |
| | | |
| | | /** |
| | | * {@inheritDoc} |
| | | */ |
| | | @Override |
| | | @DataProvider(name="equalityMatchingRuleInvalidValues") |
| | | public Object[][] createEqualityMatchingRuleInvalidValues() |
| | | { |
| | | // all values are valid, return an empty table. |
| | | return new Object[][] {}; |
| | | } |
| | | } |