blob: 36c1ebb5f0a03218caaa2a6ea4db07945f7e82e2 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*/
package org.apache.directory.studio.openldap.syncrepl;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/**
* @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
*/
public class SyncReplParserTest
{
@Test
public void testEmpty() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser.parse( "" );
assertNull( syncRepl );
}
@Test
public void testUnknownOption() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser.parse( "unknownOption" );
assertNull( syncRepl );
}
@Test
public void testUnknownOptionWithValue() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser.parse( "unknownOption=someValue" );
assertNull( syncRepl );
}
@Test
public void testRidOkOneDigit() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser.parse( "rid=1" );
assertNotNull( syncRepl );
assertEquals( "1", syncRepl.getRid() );
}
@Test
public void testRidOkTwoDigit() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser.parse( "rid=12" );
assertNotNull( syncRepl );
assertEquals( "12", syncRepl.getRid() );
}
@Test
public void testRidOkThreeDigit() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser.parse( "rid=123" );
assertNotNull( syncRepl );
assertEquals( "123", syncRepl.getRid() );
}
@Test
public void testRidOkThreeDigitWithWhiteSpaces() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser.parse( " rid = 123 " );
assertNotNull( syncRepl );
assertEquals( "123", syncRepl.getRid() );
}
@Test
public void testProvider() throws Exception
{
SyncReplParser parser = new SyncReplParser();
parser.parse( "provider=ldap://localhost:10389" );
}
@Test
public void testProviderWithWhiteSpaces() throws Exception
{
SyncReplParser parser = new SyncReplParser();
parser.parse( " provider = ldap://localhost:10389" );
}
@Test
public void testSymasDoc1SingleLine() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser
.parse( "rid=0 " +
"provider=ldap://ldapmaster.symas.com:389 " +
"bindmethod=simple " +
"binddn=\"cn=replicator,dc=symas,dc=com\" " +
"credentials=secret " +
"searchbase=\"dc=symas,dc=com\" " +
"logbase=\"cn=accesslog\" " +
"logfilter=\"(&(objectClass=auditWriteObject)(reqResult=0))\" " +
"schemachecking=on " +
"type=refreshAndPersist " +
"retry=\"60 +\" " +
"syncdata=accesslog" );
assertNotNull( syncRepl );
assertEquals( "0", syncRepl.getRid() );
Provider provider = syncRepl.getProvider();
assertNotNull( provider );
assertFalse( provider.isLdaps() );
assertEquals( "ldapmaster.symas.com", provider.getHost() );
assertEquals( 389, provider.getPort() );
assertEquals( BindMethod.SIMPLE, syncRepl.getBindMethod() );
assertEquals( "cn=replicator,dc=symas,dc=com", syncRepl.getBindDn() );
assertEquals( "secret", syncRepl.getCredentials() );
assertEquals( "dc=symas,dc=com", syncRepl.getSearchBase() );
assertEquals( "cn=accesslog", syncRepl.getLogBase() );
assertEquals( "(&(objectClass=auditWriteObject)(reqResult=0))", syncRepl.getLogFilter() );
assertEquals( SchemaChecking.ON, syncRepl.getSchemaChecking() );
assertEquals( Type.REFRESH_AND_PERSIST, syncRepl.getType() );
Retry retry = syncRepl.getRetry();
assertNotNull( retry );
assertEquals( 1, retry.size() );
RetryPair retryPair = retry.getPairs()[0];
assertNotNull( retryPair );
assertEquals( 60, retryPair.getInterval() );
assertEquals( RetryPair.PLUS, retryPair.getRetries() );
assertEquals( SyncData.ACCESSLOG, syncRepl.getSyncData() );
}
@Test
public void testSymasDoc1WithSpacesMultilines() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser
.parse( "rid=0 \n" +
"provider=ldap://ldapmaster.symas.com:389 \n" +
"bindmethod=simple \n" +
"binddn=\"cn=replicator,dc=symas,dc=com\" \n" +
"credentials=secret \n" +
"searchbase=\"dc=symas,dc=com\" \n" +
"logbase=\"cn=accesslog\" \n" +
"logfilter=\"(&(objectClass=auditWriteObject)(reqResult=0))\" \n" +
"schemachecking=on \n" +
"type=refreshAndPersist \n" +
"retry=\"60 +\" \n" +
"syncdata=accesslog" );
assertNotNull( syncRepl );
assertEquals( "0", syncRepl.getRid() );
Provider provider = syncRepl.getProvider();
assertNotNull( provider );
assertFalse( provider.isLdaps() );
assertEquals( "ldapmaster.symas.com", provider.getHost() );
assertEquals( 389, provider.getPort() );
assertEquals( BindMethod.SIMPLE, syncRepl.getBindMethod() );
assertEquals( "cn=replicator,dc=symas,dc=com", syncRepl.getBindDn() );
assertEquals( "secret", syncRepl.getCredentials() );
assertEquals( "dc=symas,dc=com", syncRepl.getSearchBase() );
assertEquals( "cn=accesslog", syncRepl.getLogBase() );
assertEquals( "(&(objectClass=auditWriteObject)(reqResult=0))", syncRepl.getLogFilter() );
assertEquals( SchemaChecking.ON, syncRepl.getSchemaChecking() );
assertEquals( Type.REFRESH_AND_PERSIST, syncRepl.getType() );
Retry retry = syncRepl.getRetry();
assertNotNull( retry );
assertEquals( 1, retry.size() );
RetryPair retryPair = retry.getPairs()[0];
assertNotNull( retryPair );
assertEquals( 60, retryPair.getInterval() );
assertEquals( RetryPair.PLUS, retryPair.getRetries() );
assertEquals( SyncData.ACCESSLOG, syncRepl.getSyncData() );
}
@Test
public void testSymasDoc1WithoutSpacesMultilines() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser
.parse( "rid=0\n" +
"provider=ldap://ldapmaster.symas.com:389\n" +
"bindmethod=simple\n" +
"binddn=\"cn=replicator,dc=symas,dc=com\"\n" +
"credentials=secret\n" +
"searchbase=\"dc=symas,dc=com\"\n" +
"logbase=\"cn=accesslog\"\n" +
"logfilter=\"(&(objectClass=auditWriteObject)(reqResult=0))\"\n" +
"schemachecking=on\n" +
"type=refreshAndPersist\n" +
"retry=\"60 +\"\n" +
"syncdata=accesslog" );
assertNotNull( syncRepl );
assertEquals( "0", syncRepl.getRid() );
Provider provider = syncRepl.getProvider();
assertNotNull( provider );
assertFalse( provider.isLdaps() );
assertEquals( "ldapmaster.symas.com", provider.getHost() );
assertEquals( 389, provider.getPort() );
assertEquals( BindMethod.SIMPLE, syncRepl.getBindMethod() );
assertEquals( "cn=replicator,dc=symas,dc=com", syncRepl.getBindDn() );
assertEquals( "secret", syncRepl.getCredentials() );
assertEquals( "dc=symas,dc=com", syncRepl.getSearchBase() );
assertEquals( "cn=accesslog", syncRepl.getLogBase() );
assertEquals( "(&(objectClass=auditWriteObject)(reqResult=0))", syncRepl.getLogFilter() );
assertEquals( SchemaChecking.ON, syncRepl.getSchemaChecking() );
assertEquals( Type.REFRESH_AND_PERSIST, syncRepl.getType() );
Retry retry = syncRepl.getRetry();
assertNotNull( retry );
assertEquals( 1, retry.size() );
RetryPair retryPair = retry.getPairs()[0];
assertNotNull( retryPair );
assertEquals( 60, retryPair.getInterval() );
assertEquals( RetryPair.PLUS, retryPair.getRetries() );
assertEquals( SyncData.ACCESSLOG, syncRepl.getSyncData() );
}
@Test
public void testSymasDoc2SingleLine() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser
.parse( "rid=001\n provider=ldaps://ldapmaster.symas.com:389 binddn=\"cn=config\" bindmethod=simple credentials=secret searchbase=\"cn=config\" type=refreshAndPersist retry=\"5 5 300 5\" timeout=1" );
assertNotNull( syncRepl );
assertEquals( "001", syncRepl.getRid() );
Provider provider = syncRepl.getProvider();
assertNotNull( provider );
assertTrue( provider.isLdaps() );
assertEquals( "ldapmaster.symas.com", provider.getHost() );
assertEquals( 389, provider.getPort() );
assertEquals( BindMethod.SIMPLE, syncRepl.getBindMethod() );
assertEquals( "cn=config", syncRepl.getBindDn() );
assertEquals( "secret", syncRepl.getCredentials() );
assertEquals( "cn=config", syncRepl.getSearchBase() );
Retry retry = syncRepl.getRetry();
assertNotNull( retry );
assertEquals( 2, retry.size() );
RetryPair retryPair1 = retry.getPairs()[0];
assertNotNull( retryPair1 );
assertEquals( 5, retryPair1.getInterval() );
assertEquals( 5, retryPair1.getRetries() );
RetryPair retryPair2 = retry.getPairs()[1];
assertNotNull( retryPair2 );
assertEquals( 300, retryPair2.getInterval() );
assertEquals( 5, retryPair2.getRetries() );
assertEquals( Type.REFRESH_AND_PERSIST, syncRepl.getType() );
assertEquals( 1, syncRepl.getTimeout() );
}
@Test
public void testSymasDoc2WithSpacesMultilines() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser
.parse( "rid=001\n " +
"provider=ldaps://ldapmaster.symas.com:389\n " +
"binddn=\"cn=config\"\n " +
"bindmethod=simple\n " +
"credentials=secret\n " +
"searchbase=\"cn=config\"\n " +
"type=refreshAndPersist\n " +
"retry=\"5 5 300 5\"\n " +
"timeout=1" );
assertNotNull( syncRepl );
assertEquals( "001", syncRepl.getRid() );
Provider provider = syncRepl.getProvider();
assertNotNull( provider );
assertTrue( provider.isLdaps() );
assertEquals( "ldapmaster.symas.com", provider.getHost() );
assertEquals( 389, provider.getPort() );
assertEquals( BindMethod.SIMPLE, syncRepl.getBindMethod() );
assertEquals( "cn=config", syncRepl.getBindDn() );
assertEquals( "secret", syncRepl.getCredentials() );
assertEquals( "cn=config", syncRepl.getSearchBase() );
Retry retry = syncRepl.getRetry();
assertNotNull( retry );
assertEquals( 2, retry.size() );
RetryPair retryPair1 = retry.getPairs()[0];
assertNotNull( retryPair1 );
assertEquals( 5, retryPair1.getInterval() );
assertEquals( 5, retryPair1.getRetries() );
RetryPair retryPair2 = retry.getPairs()[1];
assertNotNull( retryPair2 );
assertEquals( 300, retryPair2.getInterval() );
assertEquals( 5, retryPair2.getRetries() );
assertEquals( Type.REFRESH_AND_PERSIST, syncRepl.getType() );
assertEquals( 1, syncRepl.getTimeout() );
}
@Test
public void testSymasDoc2WithoutSpacesMultilines() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser
.parse( "rid=001\n" +
"provider=ldaps://ldapmaster.symas.com:389\n" +
"binddn=\"cn=config\"\n" +
"bindmethod=simple\n" +
"credentials=secret\n" +
"searchbase=\"cn=config\"\n" +
"type=refreshAndPersist\n" +
"retry=\"5 5 300 5\"\n" +
"timeout=1" );
assertNotNull( syncRepl );
assertEquals( "001", syncRepl.getRid() );
Provider provider = syncRepl.getProvider();
assertNotNull( provider );
assertTrue( provider.isLdaps() );
assertEquals( "ldapmaster.symas.com", provider.getHost() );
assertEquals( 389, provider.getPort() );
assertEquals( BindMethod.SIMPLE, syncRepl.getBindMethod() );
assertEquals( "cn=config", syncRepl.getBindDn() );
assertEquals( "secret", syncRepl.getCredentials() );
assertEquals( "cn=config", syncRepl.getSearchBase() );
Retry retry = syncRepl.getRetry();
assertNotNull( retry );
assertEquals( 2, retry.size() );
RetryPair retryPair1 = retry.getPairs()[0];
assertNotNull( retryPair1 );
assertEquals( 5, retryPair1.getInterval() );
assertEquals( 5, retryPair1.getRetries() );
RetryPair retryPair2 = retry.getPairs()[1];
assertNotNull( retryPair2 );
assertEquals( 300, retryPair2.getInterval() );
assertEquals( 5, retryPair2.getRetries() );
assertEquals( Type.REFRESH_AND_PERSIST, syncRepl.getType() );
assertEquals( 1, syncRepl.getTimeout() );
}
@Test
public void testSymasDoc3SingleLine() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser
.parse( "rid=123 " +
"provider=ldap://provider.example.com:389 " +
"type=refreshOnly " +
"interval=01:00:00:00 " +
"searchbase=\"dc=example,dc=com\" " +
"filter=\"(objectClass=organizationalPerson)\" " +
"scope=sub " +
"attrs=\"cn,sn,ou,telephoneNumber,title,l\" " +
"schemachecking=off " +
"bindmethod=simple " +
"binddn=\"cn=syncuser,dc=example,dc=com\" " +
"credentials=secret" );
assertNotNull( syncRepl );
assertEquals( "123", syncRepl.getRid() );
Provider provider = syncRepl.getProvider();
assertNotNull( provider );
assertFalse( provider.isLdaps() );
assertEquals( "provider.example.com", provider.getHost() );
assertEquals( 389, provider.getPort() );
assertEquals( Type.REFRESH_ONLY, syncRepl.getType() );
Interval interval = syncRepl.getInterval();
assertNotNull( interval );
assertEquals( 1, interval.getDays() );
assertEquals( 0, interval.getHours() );
assertEquals( 0, interval.getMinutes() );
assertEquals( 0, interval.getSeconds() );
assertEquals( "dc=example,dc=com", syncRepl.getSearchBase() );
assertEquals( "(objectClass=organizationalPerson)", syncRepl.getFilter() );
assertEquals( Scope.SUB, syncRepl.getScope() );
String[] attributes = syncRepl.getAttributes();
assertNotNull( attributes );
assertEquals( 6, attributes.length );
assertEquals( "cn", attributes[0] );
assertEquals( "sn", attributes[1] );
assertEquals( "ou", attributes[2] );
assertEquals( "telephoneNumber", attributes[3] );
assertEquals( "title", attributes[4] );
assertEquals( "l", attributes[5] );
assertEquals( SchemaChecking.OFF, syncRepl.getSchemaChecking() );
assertEquals( BindMethod.SIMPLE, syncRepl.getBindMethod() );
assertEquals( "cn=syncuser,dc=example,dc=com", syncRepl.getBindDn() );
assertEquals( "secret", syncRepl.getCredentials() );
}
@Test
public void testSymasDoc3WithoutSpacesMultilines() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser
.parse( "rid=123\n" +
"provider=ldap://provider.example.com:389\n" +
"type=refreshOnly\n" +
"interval=01:00:00:00\n" +
"searchbase=\"dc=example,dc=com\"\n" +
"filter=\"(objectClass=organizationalPerson)\"\n" +
"scope=sub\n" +
"attrs=\"cn,sn,ou,telephoneNumber,title,l\"\n" +
"schemachecking=off\n" +
"bindmethod=simple\n" +
"binddn=\"cn=syncuser,dc=example,dc=com\"\n" +
"credentials=secret" );
assertNotNull( syncRepl );
assertEquals( "123", syncRepl.getRid() );
Provider provider = syncRepl.getProvider();
assertNotNull( provider );
assertFalse( provider.isLdaps() );
assertEquals( "provider.example.com", provider.getHost() );
assertEquals( 389, provider.getPort() );
assertEquals( Type.REFRESH_ONLY, syncRepl.getType() );
Interval interval = syncRepl.getInterval();
assertNotNull( interval );
assertEquals( 1, interval.getDays() );
assertEquals( 0, interval.getHours() );
assertEquals( 0, interval.getMinutes() );
assertEquals( 0, interval.getSeconds() );
assertEquals( "dc=example,dc=com", syncRepl.getSearchBase() );
assertEquals( "(objectClass=organizationalPerson)", syncRepl.getFilter() );
assertEquals( Scope.SUB, syncRepl.getScope() );
String[] attributes = syncRepl.getAttributes();
assertNotNull( attributes );
assertEquals( 6, attributes.length );
assertEquals( "cn", attributes[0] );
assertEquals( "sn", attributes[1] );
assertEquals( "ou", attributes[2] );
assertEquals( "telephoneNumber", attributes[3] );
assertEquals( "title", attributes[4] );
assertEquals( "l", attributes[5] );
assertEquals( SchemaChecking.OFF, syncRepl.getSchemaChecking() );
assertEquals( BindMethod.SIMPLE, syncRepl.getBindMethod() );
assertEquals( "cn=syncuser,dc=example,dc=com", syncRepl.getBindDn() );
assertEquals( "secret", syncRepl.getCredentials() );
}
@Test
public void testSymasDoc3WithSpacesMultilines() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser
.parse( "rid=123 \n" +
"provider=ldap://provider.example.com:389 \n" +
"type=refreshOnly \n" +
"interval=01:00:00:00 \n" +
"searchbase=\"dc=example,dc=com\" \n" +
"filter=\"(objectClass=organizationalPerson)\" \n" +
"scope=sub \n" +
"attrs=\"cn,sn,ou,telephoneNumber,title,l\" \n" +
"schemachecking=off \n" +
"bindmethod=simple \n" +
"binddn=\"cn=syncuser,dc=example,dc=com\" \n" +
"credentials=secret" );
assertNotNull( syncRepl );
assertEquals( "123", syncRepl.getRid() );
Provider provider = syncRepl.getProvider();
assertNotNull( provider );
assertFalse( provider.isLdaps() );
assertEquals( "provider.example.com", provider.getHost() );
assertEquals( 389, provider.getPort() );
assertEquals( Type.REFRESH_ONLY, syncRepl.getType() );
Interval interval = syncRepl.getInterval();
assertNotNull( interval );
assertEquals( 1, interval.getDays() );
assertEquals( 0, interval.getHours() );
assertEquals( 0, interval.getMinutes() );
assertEquals( 0, interval.getSeconds() );
assertEquals( "dc=example,dc=com", syncRepl.getSearchBase() );
assertEquals( "(objectClass=organizationalPerson)", syncRepl.getFilter() );
assertEquals( Scope.SUB, syncRepl.getScope() );
String[] attributes = syncRepl.getAttributes();
assertNotNull( attributes );
assertEquals( 6, attributes.length );
assertEquals( "cn", attributes[0] );
assertEquals( "sn", attributes[1] );
assertEquals( "ou", attributes[2] );
assertEquals( "telephoneNumber", attributes[3] );
assertEquals( "title", attributes[4] );
assertEquals( "l", attributes[5] );
assertEquals( SchemaChecking.OFF, syncRepl.getSchemaChecking() );
assertEquals( BindMethod.SIMPLE, syncRepl.getBindMethod() );
assertEquals( "cn=syncuser,dc=example,dc=com", syncRepl.getBindDn() );
assertEquals( "secret", syncRepl.getCredentials() );
}
@Test
public void testSymasDoc3WithSpacesMultilinesAllQuoted() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser
.parse( "rid=\"123\" \n" +
"provider=\"ldap://provider.example.com:389\" \n" +
"type=\"refreshOnly\" \n" +
"interval=\"01:00:00:00\" \n" +
"searchbase=\"dc=example,dc=com\" \n" +
"filter=\"(objectClass=organizationalPerson)\" \n" +
"scope=\"sub\" \n" +
"attrs=\"cn,sn,ou,telephoneNumber,title,l\" \n" +
"schemachecking=\"off\" \n" +
"bindmethod=\"simple\" \n" +
"binddn=\"cn=syncuser,dc=example,dc=com\" \n" +
"credentials=\"secret\"" );
assertNotNull( syncRepl );
assertEquals( "123", syncRepl.getRid() );
Provider provider = syncRepl.getProvider();
assertNotNull( provider );
assertFalse( provider.isLdaps() );
assertEquals( "provider.example.com", provider.getHost() );
assertEquals( 389, provider.getPort() );
assertEquals( Type.REFRESH_ONLY, syncRepl.getType() );
Interval interval = syncRepl.getInterval();
assertNotNull( interval );
assertEquals( 1, interval.getDays() );
assertEquals( 0, interval.getHours() );
assertEquals( 0, interval.getMinutes() );
assertEquals( 0, interval.getSeconds() );
assertEquals( "dc=example,dc=com", syncRepl.getSearchBase() );
assertEquals( "(objectClass=organizationalPerson)", syncRepl.getFilter() );
assertEquals( Scope.SUB, syncRepl.getScope() );
String[] attributes = syncRepl.getAttributes();
assertNotNull( attributes );
assertEquals( 6, attributes.length );
assertEquals( "cn", attributes[0] );
assertEquals( "sn", attributes[1] );
assertEquals( "ou", attributes[2] );
assertEquals( "telephoneNumber", attributes[3] );
assertEquals( "title", attributes[4] );
assertEquals( "l", attributes[5] );
assertEquals( SchemaChecking.OFF, syncRepl.getSchemaChecking() );
assertEquals( BindMethod.SIMPLE, syncRepl.getBindMethod() );
assertEquals( "cn=syncuser,dc=example,dc=com", syncRepl.getBindDn() );
assertEquals( "secret", syncRepl.getCredentials() );
}
@Test
public void testSymasDoc3WithSpacesMultilinesAllNotQuoted() throws Exception
{
SyncReplParser parser = new SyncReplParser();
SyncRepl syncRepl = parser
.parse( "rid=123 \n" +
"provider=ldap://provider.example.com:389 \n" +
"type=refreshOnly \n" +
"interval=01:00:00:00 \n" +
"searchbase=dc=example,dc=com \n" +
"filter=(objectClass=organizationalPerson) \n" +
"scope=sub \n" +
"attrs=cn,sn,ou,telephoneNumber,title,l \n" +
"schemachecking=off \n" +
"bindmethod=simple \n" +
"binddn=cn=syncuser,dc=example,dc=com \n" +
"credentials=secret" );
assertNotNull( syncRepl );
assertEquals( "123", syncRepl.getRid() );
Provider provider = syncRepl.getProvider();
assertNotNull( provider );
assertFalse( provider.isLdaps() );
assertEquals( "provider.example.com", provider.getHost() );
assertEquals( 389, provider.getPort() );
assertEquals( Type.REFRESH_ONLY, syncRepl.getType() );
Interval interval = syncRepl.getInterval();
assertNotNull( interval );
assertEquals( 1, interval.getDays() );
assertEquals( 0, interval.getHours() );
assertEquals( 0, interval.getMinutes() );
assertEquals( 0, interval.getSeconds() );
assertEquals( "dc=example,dc=com", syncRepl.getSearchBase() );
assertEquals( "(objectClass=organizationalPerson)", syncRepl.getFilter() );
assertEquals( Scope.SUB, syncRepl.getScope() );
String[] attributes = syncRepl.getAttributes();
assertNotNull( attributes );
assertEquals( 6, attributes.length );
assertEquals( "cn", attributes[0] );
assertEquals( "sn", attributes[1] );
assertEquals( "ou", attributes[2] );
assertEquals( "telephoneNumber", attributes[3] );
assertEquals( "title", attributes[4] );
assertEquals( "l", attributes[5] );
assertEquals( SchemaChecking.OFF, syncRepl.getSchemaChecking() );
assertEquals( BindMethod.SIMPLE, syncRepl.getBindMethod() );
assertEquals( "cn=syncuser,dc=example,dc=com", syncRepl.getBindDn() );
assertEquals( "secret", syncRepl.getCredentials() );
}
}