Search in sources :

Example 66 with Control

use of org.apache.directory.api.ldap.model.message.Control in project directory-ldap-api by apache.

the class SearchResultEntryTest method testResponseWith1ControlEmptyValue.

/**
 * Test parsing of a response with a (optional) Control element with empty value
 */
@Test
public void testResponseWith1ControlEmptyValue() {
    Dsmlv2ResponseParser parser = null;
    try {
        parser = new Dsmlv2ResponseParser(getCodec());
        parser.setInput(SearchResultEntryTest.class.getResource("response_with_1_control_empty_value.xml").openStream(), "UTF-8");
        parser.parse();
    } catch (Exception e) {
        fail(e.getMessage());
    }
    SearchResponse searchResponse = (SearchResponse) parser.getBatchResponse().getCurrentResponse().getDecorated();
    SearchResultEntry searchResultEntry = searchResponse.getCurrentSearchResultEntry();
    Map<String, Control> controls = searchResultEntry.getControls();
    assertEquals(1, searchResultEntry.getControls().size());
    Control control = controls.get("1.2.840.113556.1.4.643");
    assertNotNull(control);
    assertTrue(control.isCritical());
    assertEquals("1.2.840.113556.1.4.643", control.getOid());
    assertFalse(((DsmlControl<?>) control).hasValue());
}
Also used : Dsmlv2ResponseParser(org.apache.directory.api.dsmlv2.Dsmlv2ResponseParser) DsmlControl(org.apache.directory.api.dsmlv2.DsmlControl) Control(org.apache.directory.api.ldap.model.message.Control) SearchResponse(org.apache.directory.api.dsmlv2.response.SearchResponse) SearchResultEntry(org.apache.directory.api.ldap.model.message.SearchResultEntry) Test(org.junit.Test) AbstractResponseTest(org.apache.directory.api.dsmlv2.AbstractResponseTest)

Example 67 with Control

use of org.apache.directory.api.ldap.model.message.Control in project directory-ldap-api by apache.

the class SearchResultReferenceTest method testResponseWith2Controls.

/**
 * Test parsing of a response with 2 (optional) Control elements
 */
@Test
public void testResponseWith2Controls() {
    Dsmlv2ResponseParser parser = null;
    try {
        parser = new Dsmlv2ResponseParser(getCodec());
        parser.setInput(SearchResultReferenceTest.class.getResource("response_with_2_controls.xml").openStream(), "UTF-8");
        parser.parse();
    } catch (Exception e) {
        fail(e.getMessage());
    }
    SearchResultReference searchResultReference = ((SearchResponse) parser.getBatchResponse().getCurrentResponse().getDecorated()).getCurrentSearchResultReference();
    Map<String, Control> controls = searchResultReference.getControls();
    assertEquals(2, searchResultReference.getControls().size());
    Control control = controls.get("1.2.840.113556.1.4.789");
    assertNotNull(control);
    assertEquals("1.2.840.113556.1.4.789", control.getOid());
    assertEquals("Some other text", Strings.utf8ToString(((DsmlControl<?>) control).getValue()));
}
Also used : DsmlControl(org.apache.directory.api.dsmlv2.DsmlControl) Dsmlv2ResponseParser(org.apache.directory.api.dsmlv2.Dsmlv2ResponseParser) DsmlControl(org.apache.directory.api.dsmlv2.DsmlControl) Control(org.apache.directory.api.ldap.model.message.Control) SearchResultReference(org.apache.directory.api.ldap.model.message.SearchResultReference) LdapURLEncodingException(org.apache.directory.api.ldap.model.exception.LdapURLEncodingException) SearchResponse(org.apache.directory.api.dsmlv2.response.SearchResponse) Test(org.junit.Test) AbstractResponseTest(org.apache.directory.api.dsmlv2.AbstractResponseTest)

Example 68 with Control

use of org.apache.directory.api.ldap.model.message.Control in project directory-ldap-api by apache.

the class SearchResultReferenceTest method testResponseWith1Control.

/**
 * Test parsing of a response with a (optional) Control element
 */
@Test
public void testResponseWith1Control() {
    Dsmlv2ResponseParser parser = null;
    try {
        parser = new Dsmlv2ResponseParser(getCodec());
        parser.setInput(SearchResultReferenceTest.class.getResource("response_with_1_control.xml").openStream(), "UTF-8");
        parser.parse();
    } catch (Exception e) {
        fail(e.getMessage());
    }
    SearchResultReference searchResultReference = ((SearchResponse) parser.getBatchResponse().getCurrentResponse().getDecorated()).getCurrentSearchResultReference();
    Map<String, Control> controls = searchResultReference.getControls();
    assertEquals(1, searchResultReference.getControls().size());
    Control control = controls.get("1.2.840.113556.1.4.643");
    assertNotNull(control);
    assertTrue(control.isCritical());
    assertEquals("1.2.840.113556.1.4.643", control.getOid());
    assertEquals("Some text", Strings.utf8ToString(((DsmlControl<?>) control).getValue()));
}
Also used : DsmlControl(org.apache.directory.api.dsmlv2.DsmlControl) Dsmlv2ResponseParser(org.apache.directory.api.dsmlv2.Dsmlv2ResponseParser) DsmlControl(org.apache.directory.api.dsmlv2.DsmlControl) Control(org.apache.directory.api.ldap.model.message.Control) SearchResultReference(org.apache.directory.api.ldap.model.message.SearchResultReference) LdapURLEncodingException(org.apache.directory.api.ldap.model.exception.LdapURLEncodingException) SearchResponse(org.apache.directory.api.dsmlv2.response.SearchResponse) Test(org.junit.Test) AbstractResponseTest(org.apache.directory.api.dsmlv2.AbstractResponseTest)

Example 69 with Control

use of org.apache.directory.api.ldap.model.message.Control in project directory-ldap-api by apache.

the class LdifReaderTest method testLdifParserRFC2849Sample7NoValueNoCritical.

@Test
public void testLdifParserRFC2849Sample7NoValueNoCritical() throws Exception, Exception {
    String ldif = "version: 1\n" + "# Delete an entry. The operation will attach the LDAPv3\n" + "# Tree Delete Control defined in [9]. The criticality\n" + "# field is \"true\" and the controlValue field is\n" + "# absent, as required by [9].\n" + "dn: ou=Product Development, dc=airius, dc=com\n" + "control: 1.2.840.113556.1.4.805\n" + "changetype: delete\n";
    LdifReader reader = new LdifReader();
    List<LdifEntry> entries = reader.parseLdif(ldif);
    reader.close();
    LdifEntry entry = entries.get(0);
    assertEquals("ou=Product Development, dc=airius, dc=com", entry.getDn().getName());
    assertTrue(entry.isChangeDelete());
    // Check the control
    Control control = entry.getControl("1.2.840.113556.1.4.805");
    assertEquals("1.2.840.113556.1.4.805", control.getOid());
    assertFalse(control.isCritical());
}
Also used : Control(org.apache.directory.api.ldap.model.message.Control) Test(org.junit.Test)

Example 70 with Control

use of org.apache.directory.api.ldap.model.message.Control in project directory-ldap-api by apache.

the class LdifReaderTest method testLdifParserRFC2849Sample7.

@Test
public void testLdifParserRFC2849Sample7() throws Exception, Exception {
    String ldif = "version: 1\n" + "# Delete an entry. The operation will attach the LDAPv3\n" + "# Tree Delete Control defined in [9]. The criticality\n" + "# field is \"true\" and the controlValue field is\n" + "# absent, as required by [9].\n" + "dn: ou=Product Development, dc=airius, dc=com\n" + "control: 1.2.840.113556.1.4.805 true\n" + "changetype: delete\n";
    LdifReader reader = new LdifReader();
    List<LdifEntry> entries = reader.parseLdif(ldif);
    reader.close();
    LdifEntry entry = entries.get(0);
    assertEquals("ou=Product Development, dc=airius, dc=com", entry.getDn().getName());
    assertTrue(entry.isChangeDelete());
    // Check the control
    Control control = entry.getControl("1.2.840.113556.1.4.805");
    assertEquals("1.2.840.113556.1.4.805", control.getOid());
    assertTrue(control.isCritical());
}
Also used : Control(org.apache.directory.api.ldap.model.message.Control) Test(org.junit.Test)

Aggregations

Control (org.apache.directory.api.ldap.model.message.Control)145 Test (org.junit.Test)124 DsmlControl (org.apache.directory.api.dsmlv2.DsmlControl)85 DecoderException (org.apache.directory.api.asn1.DecoderException)45 AbstractTest (org.apache.directory.api.dsmlv2.AbstractTest)45 Dsmlv2Parser (org.apache.directory.api.dsmlv2.Dsmlv2Parser)45 AbstractResponseTest (org.apache.directory.api.dsmlv2.AbstractResponseTest)40 Dsmlv2ResponseParser (org.apache.directory.api.dsmlv2.Dsmlv2ResponseParser)40 ByteBuffer (java.nio.ByteBuffer)39 CodecControl (org.apache.directory.api.ldap.codec.api.CodecControl)38 EncoderException (org.apache.directory.api.asn1.EncoderException)37 Asn1Decoder (org.apache.directory.api.asn1.ber.Asn1Decoder)37 AbstractCodecServiceTest (org.apache.directory.api.ldap.codec.osgi.AbstractCodecServiceTest)36 LdapURLEncodingException (org.apache.directory.api.ldap.model.exception.LdapURLEncodingException)36 LdapMessageContainer (org.apache.directory.api.ldap.codec.api.LdapMessageContainer)35 SearchResponse (org.apache.directory.api.dsmlv2.response.SearchResponse)12 LdapException (org.apache.directory.api.ldap.model.exception.LdapException)12 BindRequest (org.apache.directory.api.ldap.model.message.BindRequest)11 AbandonRequest (org.apache.directory.api.ldap.model.message.AbandonRequest)9 SearchRequest (org.apache.directory.api.ldap.model.message.SearchRequest)9