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