/*
* 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 legal-notices/CDDLv1_0.txt
* or http://forgerock.org/license/CDDLv1.0.html.
* 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 legal-notices/CDDLv1_0.txt.
* 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
*
*
* Copyright 2013 ForgeRock AS.
*/
package org.forgerock.opendj.config;
import static org.fest.assertions.Assertions.assertThat;
import static org.forgerock.opendj.config.ConfigurationMock.mockCfg;
import static org.mockito.Mockito.*;
import org.forgerock.opendj.ldap.DN;
import org.forgerock.opendj.ldap.schema.Schema;
import org.forgerock.opendj.server.config.meta.PluginCfgDefn.PluginType;
import org.forgerock.opendj.server.config.server.AttributeCleanupPluginCfg;
import org.forgerock.opendj.server.config.server.CollectiveAttributeSubentriesVirtualAttributeCfg;
import org.forgerock.opendj.server.config.server.CoreSchemaCfg;
import org.forgerock.opendj.server.config.server.GoverningStructureRuleVirtualAttributeCfg;
import org.forgerock.opendj.server.config.server.LDAPConnectionHandlerCfg;
import org.testng.annotations.Test;
/**
* Test case to ensure that ConfigurationMock class is correct.
*/
@SuppressWarnings("javadoc")
public class ConfigurationMockTest extends ConfigTestCase {
@Test
public void testPropertyWithStringReturnValue() {
GoverningStructureRuleVirtualAttributeCfg mock = mockCfg(GoverningStructureRuleVirtualAttributeCfg.class);
assertThat(mock.getJavaClass()).
isEqualTo("org.opends.server.extensions.GoverningSturctureRuleVirtualAttributeProvider");
}
@Test
public void testPropertyWithLongReturnValue() throws Exception {
LDAPConnectionHandlerCfg mock = mockCfg(LDAPConnectionHandlerCfg.class);
assertThat(mock.getMaxRequestSize()).isEqualTo(5 * 1000 * 1000);
}
@Test
public void testPropertyWithEnumReturnValue() throws Exception {
AttributeCleanupPluginCfg mock = mockCfg(AttributeCleanupPluginCfg.class);
assertThat(mock.getPluginType()).containsOnly(PluginType.PREPARSEADD, PluginType.PREPARSEMODIFY);
}
@Test
public void testPropertyWithAttributeTypeReturnValue() throws Exception {
CollectiveAttributeSubentriesVirtualAttributeCfg mock =
mockCfg(CollectiveAttributeSubentriesVirtualAttributeCfg.class);
assertThat(mock.getAttributeType()).isEqualTo(
Schema.getDefaultSchema().getAttributeType("collectiveAttributeSubentries"));
}
@Test
public void testPropertyWithNoDefaultBooleanReturnValue() throws Exception {
CollectiveAttributeSubentriesVirtualAttributeCfg mock =
mockCfg(CollectiveAttributeSubentriesVirtualAttributeCfg.class);
// should use default mockito behavior
assertThat(mock.isEnabled()).isEqualTo(false);
}
@Test
public void testPropertyWithDefaultBooleanReturnValue() throws Exception {
CoreSchemaCfg mock = mockCfg(CoreSchemaCfg.class);
assertThat(mock.isStrictFormatCountryString()).isEqualTo(true);
}
@Test
public void testNonPropertyMethod() throws Exception {
CoreSchemaCfg mock = mockCfg(CoreSchemaCfg.class);
assertThat(mock.dn()).isNull();
// Ensure we can add behavior to the mock
when(mock.dn()).thenReturn(DN.rootDN());
assertThat(mock.dn()).isNotNull();
assertThat(mock.dn().toString()).isEqualTo(DN.rootDN().toString());
}
}