| /* |
| * 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() ); |
| } |
| } |