use of org.apache.directory.api.ldap.model.schema.MutableAttributeType in project directory-ldap-api by apache.
the class TestEntryUtils method getBytesAttributeType.
/* No protection */
static AttributeType getBytesAttributeType() {
MutableAttributeType attributeType = new MutableAttributeType("1.2");
LdapSyntax syntax = new LdapSyntax("1.2.1", "", true);
syntax.setSyntaxChecker(new SyntaxChecker("1.2.1") {
/**
* The mandatory serialVersionUID field
*/
public static final long serialVersionUID = 1L;
public boolean isValidSyntax(Object value) {
return (value == null) || (((byte[]) value).length < 5);
}
});
MutableMatchingRule matchingRule = new MutableMatchingRule("1.2.2");
matchingRule.setSyntax(syntax);
matchingRule.setLdapComparator(new ByteArrayComparator("1.2.2"));
matchingRule.setNormalizer(new Normalizer("1.1.1") {
/**
* The mandatory serialVersionUID field
*/
public static final long serialVersionUID = 1L;
public String normalize(String value) throws LdapException {
return normalize(value, AssertionType.ATTRIBUTE_VALUE);
}
public String normalize(String value, PrepareString.AssertionType assertionType) throws LdapException {
byte[] val = Strings.getBytesUtf8(value);
// each byte will be changed to be > 0, and spaces will be trimmed
byte[] newVal = new byte[val.length];
int i = 0;
for (byte b : val) {
newVal[i++] = (byte) (b & 0x007F);
}
return Strings.utf8ToString(Strings.trim(newVal));
}
});
attributeType.setEquality(matchingRule);
attributeType.setSyntax(syntax);
return attributeType;
}
use of org.apache.directory.api.ldap.model.schema.MutableAttributeType in project directory-ldap-api by apache.
the class TestEntryUtils method getIA5StringAttributeType.
/* no protection*/
static AttributeType getIA5StringAttributeType() {
MutableAttributeType attributeType = new MutableAttributeType("1.1");
attributeType.addName("1.1");
LdapSyntax syntax = new LdapSyntax("1.1.1", "", true);
syntax.setSyntaxChecker(new SyntaxChecker("1.1.2") {
/**
* The mandatory serialVersionUID field
*/
public static final long serialVersionUID = 1L;
public boolean isValidSyntax(Object value) {
String trimmedValue = Strings.deepTrim((String) value);
return (trimmedValue == null) || (trimmedValue.length() < 7);
}
});
MutableMatchingRule matchingRule = new MutableMatchingRule("1.1.2");
matchingRule.setSyntax(syntax);
matchingRule.setLdapComparator(new LdapComparator<String>(matchingRule.getOid()) {
/**
* The mandatory serialVersionUID field
*/
public static final long serialVersionUID = 1L;
public int compare(String o1, String o2) {
return ((o1 == null) ? (o2 == null ? 0 : -1) : (o2 == null ? 1 : o1.compareTo(o2)));
}
});
matchingRule.setNormalizer(new DeepTrimToLowerNormalizer(matchingRule.getOid()));
attributeType.setEquality(matchingRule);
attributeType.setSyntax(syntax);
return attributeType;
}
use of org.apache.directory.api.ldap.model.schema.MutableAttributeType in project directory-ldap-api by apache.
the class SchemaManagerAddTest method testAddAttributeTypeSupBadSup.
/**
* Try to inject an AttributeType with a bad superior
*/
@Test
public void testAddAttributeTypeSupBadSup() throws Exception {
SchemaManager schemaManager = loadSystem();
int atrSize = schemaManager.getAttributeTypeRegistry().size();
int goidSize = schemaManager.getGlobalOidRegistry().size();
MutableAttributeType attributeType = new MutableAttributeType("1.1.0");
attributeType.setEqualityOid(null);
attributeType.setOrderingOid(null);
attributeType.setSubstringOid(null);
attributeType.setSuperiorOid("0.0");
attributeType.setUsage(UsageEnum.DISTRIBUTED_OPERATION);
// It should fail
assertFalse(schemaManager.add(attributeType));
List<Throwable> errors = schemaManager.getErrors();
assertEquals(1, errors.size());
Throwable error = errors.get(0);
assertTrue(error instanceof LdapSchemaException);
assertFalse(isATPresent(schemaManager, "1.1.0"));
assertEquals(atrSize, schemaManager.getAttributeTypeRegistry().size());
assertEquals(goidSize, schemaManager.getGlobalOidRegistry().size());
}
use of org.apache.directory.api.ldap.model.schema.MutableAttributeType in project directory-ldap-api by apache.
the class SchemaManagerAddTest method testAddAttributeTypeNoSupCollectiveUser.
/**
* Try to inject an AttributeType which is Collective, and userApplication AT
*/
@Test
public void testAddAttributeTypeNoSupCollectiveUser() throws Exception {
SchemaManager schemaManager = loadSystem();
int atrSize = schemaManager.getAttributeTypeRegistry().size();
int goidSize = schemaManager.getGlobalOidRegistry().size();
MutableAttributeType attributeType = new MutableAttributeType("1.1.0");
attributeType.setEqualityOid("2.5.13.1");
attributeType.setOrderingOid(null);
attributeType.setSubstringOid(null);
attributeType.setSyntaxOid("1.3.6.1.4.1.1466.115.121.1.26");
attributeType.setUsage(UsageEnum.USER_APPLICATIONS);
attributeType.setCollective(true);
// It should not fail
assertTrue(schemaManager.add(attributeType));
assertTrue(isATPresent(schemaManager, "1.1.0"));
assertEquals(atrSize + 1, schemaManager.getAttributeTypeRegistry().size());
assertEquals(goidSize + 1, schemaManager.getGlobalOidRegistry().size());
}
use of org.apache.directory.api.ldap.model.schema.MutableAttributeType in project directory-ldap-api by apache.
the class SchemaManagerAddTest method testAddAttributeTypeSupNoSyntaxNoSuperior.
// -------------------------------------------------------------------------
// Then, with a superior
// -------------------------------------------------------------------------
/**
* Try to inject an AttributeType with a superior and no Syntax : it should
* take its superior' syntax and MR
*/
@Test
public void testAddAttributeTypeSupNoSyntaxNoSuperior() throws Exception {
SchemaManager schemaManager = loadSystem();
int atrSize = schemaManager.getAttributeTypeRegistry().size();
int goidSize = schemaManager.getGlobalOidRegistry().size();
MutableAttributeType attributeType = new MutableAttributeType("1.1.0");
attributeType.setEqualityOid(null);
attributeType.setOrderingOid(null);
attributeType.setSubstringOid(null);
attributeType.setSuperiorOid("2.5.18.4");
attributeType.setUsage(UsageEnum.DIRECTORY_OPERATION);
// It should not fail
assertTrue(schemaManager.add(attributeType));
AttributeType result = schemaManager.lookupAttributeTypeRegistry("1.1.0");
assertEquals("1.3.6.1.4.1.1466.115.121.1.12", result.getSyntaxOid());
assertEquals("2.5.13.1", result.getEqualityOid());
assertEquals(atrSize + 1, schemaManager.getAttributeTypeRegistry().size());
assertEquals(goidSize + 1, schemaManager.getGlobalOidRegistry().size());
}
Aggregations