bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * CDDL HEADER START
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * The contents of this file are subject to the terms of the
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Common Development and Distribution License, Version 1.0 only
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * (the "License"). You may not use this file except in compliance
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * with the License.
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * or http://forgerock.org/license/CDDLv1.0.html.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * See the License for the specific language governing permissions
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * and limitations under the License.
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * When distributing Covered Code, include this CDDL HEADER in each
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * file and include the License file at legal-notices/CDDLv1_0.txt.
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * If applicable, add the following below this CDDL HEADER, with the
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * fields enclosed by brackets "[]" replaced with your own identifying
3437829f938dbb44527d91fbbc5f430a1243c5a5JnRouvignac * information:
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Portions Copyright [yyyy] [name of copyright owner]
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * CDDL HEADER END
65e99be301d5a19db33f25841f671756e8dbb9b5ludovicp * Copyright 2008 Sun Microsystems, Inc.
378c66c5d12cbe2aefbbffcf5f6d287febc186c2matthew_swiftimport org.opends.server.admin.std.meta.RootCfgDefn;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * IntegerPropertyDefinition Tester.
24d6db06810f2ea747f6dff60d483e4fca3aaa13davidelypublic class IntegerPropertyDefinitionTest extends DirectoryServerTestCase {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests creation of builder succeeds
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests setting/getting of lower limit as long
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Creates data for testing string-based limit values
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @return data
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift return new Object[][]{
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift // { null, 0 }
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Creates data for testing limit values
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @return data
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift return new Object[][]{
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests setting/getting of lower limit as String
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param limit unit limit
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param expectedValue to compare
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public void testLowerLimit2(int limit, int expectedValue) {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests setting/getting of lower limit as long
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests setting/getting of lower limit as String
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param limit upper limit
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param expectedValue to compare
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public void testUpperLimit2(int limit, int expectedValue) {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift assert spd.getUpperLimit().equals(expectedValue);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests setting/getting of lower limit as String
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param upper upper limit
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param lower lower limit
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param lowerFirst when true sets the lower limit property first
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift @Test(dataProvider = "illegalLimitData", expectedExceptions = IllegalArgumentException.class)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public void testIllegalLimits(int lower, int upper, boolean lowerFirst) {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests the allowUnlimited property
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests the allowUnlimited property
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift @Test(expectedExceptions = IllegalPropertyValueStringException.class)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests the allowUnlimited property
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift @Test(expectedExceptions = IllegalPropertyValueException.class)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Creates illegal data for validate value
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @return data
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift return new Object[][]{
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests that validateValue works
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param value to validate
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param allowUnlimited when true allows unlimited
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param high upper limit
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param low lower limit
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public void testValidateValue1(Integer low, Integer high, boolean allowUnlimited, Integer value) {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Creates illegal data for validate value
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @return data
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift @DataProvider(name = "illegalValidateValueData")
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public Object[][] createIllegalValidateValueData() {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift return new Object[][]{
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests that validateValue throws exceptions
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param value to validate
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param low lower limit
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param high upper limit
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param allowUnlimited when true allows unlimited
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift @Test(dataProvider = "illegalValidateValueData",
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift expectedExceptions = {AssertionError.class,NullPointerException.class,IllegalPropertyValueException.class})
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public void testValidateValue2(Integer low, Integer high, boolean allowUnlimited, Integer value) {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Creates encode test data
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @return data
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift return new Object[][]{
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Tests encode value
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param value to encode
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * @param expectedValue to compare
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public void testEncodeValue(Integer value, String expectedValue) {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift assertEquals(spd.encodeValue(value), expectedValue);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Test that accept doesn't throw and exception
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
4a622c45ad6426287954754f34fc3ab8a4b9c2c5matthew_swift PropertyDefinitionVisitor<Boolean, Void> v = new PropertyDefinitionVisitor<Boolean, Void>() {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public Boolean visitInteger(IntegerPropertyDefinition d,
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public Boolean visitUnknown(PropertyDefinition d, Void o)
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift return false;
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift assertEquals((boolean) spd.accept(v, null), true);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift * Make sure toString doesn't barf
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition spd = buildTestDefinition(builder);
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public void testSetDefaultBehaviorProvider() {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift builder.setDefaultBehaviorProvider(new DefaultBehaviorProvider<Integer>() {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift public <R, P> R accept(DefaultBehaviorProviderVisitor<Integer, R, P> v, P p) {
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift IntegerPropertyDefinition.Builder builder = createTestBuilder();
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift private IntegerPropertyDefinition.Builder createTestBuilder() {
378c66c5d12cbe2aefbbffcf5f6d287febc186c2matthew_swift return IntegerPropertyDefinition.createBuilder(RootCfgDefn.getInstance(), "test-property-name");
bb8874d71cdd8e5288297b9727703437c6dfcfedmatthew_swift private IntegerPropertyDefinition buildTestDefinition(IntegerPropertyDefinition.Builder builder) {